我想在别人电脑中 开虚拟桌面 然后开程序自动运行 苦于不知道怎么利用已经找到了 开虚拟桌面的代码
///
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Timer1: TTimer;
Timer2: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
h1:thandle;
h2:thandle;
h3:thandle;
h4:thandle;
h5:thandle;
h6:thandle;
si:TStartupInfo;
sin:TStartupInfo;
pin:TProcessInformation;
s:string;
desk:thandle;
implementation{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); //创建桌面
begin
timer1.Interval:=50;
timer2.Interval:=1000;
sin.cb:=sizeof(sin);
sin.wShowWindow:=SW_SHOW;
sin.dwFlags:=STARTF_USESHOWWINDOW;if globalfindatom('mfk')=0 then
begin
globaladdatom('mfk');
h1:=GetThreadDesktop(GetCurrentThreadId()); //当前桌面s:='a';
sin.lpDesktop:=pchar(s);
h2:=CreateDesktop(pchar(s),nil,nil,DF_ALLOWOTHERACCOUNTHOOK,GENERIC_ALL,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);
//桌面1
s:='b';
sin.lpDesktop:=pchar(s);
h3:=CreateDesktop('b',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);s:='c';
sin.lpDesktop:=pchar(s);
h4:=CreateDesktop('c',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);s:='d';
sin.lpDesktop:=pchar(s);
h5:=CreateDesktop('d',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);s:='e';
sin.lpDesktop:=pchar(s);
h6:=CreateDesktop('e',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);
end
else
begin
globaladdatom('mfk');
end;end;procedure TForm1.Button1Click(Sender: TObject);//切换至桌面1
begin
desk:=OpenDesktop('default',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button2Click(Sender: TObject); //切换至桌面2
begin
desk:=OpenDesktop('a',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button4Click(Sender: TObject); //切换至桌面3
begin
desk:=OpenDesktop('b',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button5Click(Sender: TObject); //切换至桌面4
begin
desk:=OpenDesktop('c',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button6Click(Sender: TObject); //切换至桌面5
begin
desk:=OpenDesktop('d',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button7Click(Sender: TObject); //切换至桌面6
begin
desk:=OpenDesktop('e',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(112)<>0) then
begin
desk:=OpenDesktop('default',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(113)<>0) then
begin
desk:=OpenDesktop('a',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(114)<>0) then
begin
desk:=OpenDesktop('b',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(115)<>0) then
begin
desk:=OpenDesktop('c',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(116)<>0) then
begin
desk:=OpenDesktop('d',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(117)<>0) then
begin
desk:=OpenDesktop('e',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
globaldeleteatom(globalfindatom('mfk'));
end;
procedure TForm1.Timer2Timer(Sender: TObject);
beginend;end.//
这一段是 开6个虚拟桌面的的代码
我的思路是 不被肉鸡察觉的情况下 在新开的一个桌面中放入写好自动运行的程序 达到一些正常隐藏下无法完成的目标肉鸡的桌面还是 原来那个 求思路或代码
///
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Timer1: TTimer;
Timer2: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
h1:thandle;
h2:thandle;
h3:thandle;
h4:thandle;
h5:thandle;
h6:thandle;
si:TStartupInfo;
sin:TStartupInfo;
pin:TProcessInformation;
s:string;
desk:thandle;
implementation{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); //创建桌面
begin
timer1.Interval:=50;
timer2.Interval:=1000;
sin.cb:=sizeof(sin);
sin.wShowWindow:=SW_SHOW;
sin.dwFlags:=STARTF_USESHOWWINDOW;if globalfindatom('mfk')=0 then
begin
globaladdatom('mfk');
h1:=GetThreadDesktop(GetCurrentThreadId()); //当前桌面s:='a';
sin.lpDesktop:=pchar(s);
h2:=CreateDesktop(pchar(s),nil,nil,DF_ALLOWOTHERACCOUNTHOOK,GENERIC_ALL,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);
//桌面1
s:='b';
sin.lpDesktop:=pchar(s);
h3:=CreateDesktop('b',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);s:='c';
sin.lpDesktop:=pchar(s);
h4:=CreateDesktop('c',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);s:='d';
sin.lpDesktop:=pchar(s);
h5:=CreateDesktop('d',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);s:='e';
sin.lpDesktop:=pchar(s);
h6:=CreateDesktop('e',nil,nil,0,MAXIMUM_ALLOWED,nil);
CreateProcess('c:\WINDOWS\explorer.exe',nil,nil,nil,False,0,nil,nil,sin,pin);
CreateProcess(pchar(extractfilepath(application.ExeName)+'双开工具.exe'),nil,nil,nil,False,0,nil,nil,sin,pin);
end
else
begin
globaladdatom('mfk');
end;end;procedure TForm1.Button1Click(Sender: TObject);//切换至桌面1
begin
desk:=OpenDesktop('default',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button2Click(Sender: TObject); //切换至桌面2
begin
desk:=OpenDesktop('a',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button4Click(Sender: TObject); //切换至桌面3
begin
desk:=OpenDesktop('b',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button5Click(Sender: TObject); //切换至桌面4
begin
desk:=OpenDesktop('c',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button6Click(Sender: TObject); //切换至桌面5
begin
desk:=OpenDesktop('d',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Button7Click(Sender: TObject); //切换至桌面6
begin
desk:=OpenDesktop('e',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(112)<>0) then
begin
desk:=OpenDesktop('default',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(113)<>0) then
begin
desk:=OpenDesktop('a',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(114)<>0) then
begin
desk:=OpenDesktop('b',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(115)<>0) then
begin
desk:=OpenDesktop('c',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(116)<>0) then
begin
desk:=OpenDesktop('d',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end;if (getasynckeystate(VK_Control)<>0) and (getasynckeystate(117)<>0) then
begin
desk:=OpenDesktop('e',DF_ALLOWOTHERACCOUNTHOOK,False,MAXIMUM_ALLOWED);
SwitchDesktop(desk);
end
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
globaldeleteatom(globalfindatom('mfk'));
end;
procedure TForm1.Timer2Timer(Sender: TObject);
beginend;end.//
这一段是 开6个虚拟桌面的的代码
我的思路是 不被肉鸡察觉的情况下 在新开的一个桌面中放入写好自动运行的程序 达到一些正常隐藏下无法完成的目标肉鸡的桌面还是 原来那个 求思路或代码
2.CreateProcess