5種執行程式的方法具體應用例項 帶引數

2021-04-08 14:44:41 字數 2917 閱讀 7479

public

end;

varform1: tform1;

implementation

//createprocess執行程式

procedure tform1.button3click(sender: tobject);

varstartupinfo: tstartupinfo;

processinfo: tprocessinformation;

begin

fillchar(startupinfo, sizeof(tstartupinfo), 0);

with startupinfo do

begin

cb := sizeof(tstartupinfo);

dwflags := startf_useshowwindow;

wshowwindow := sw_shownormal;

end;

createprocess(pchar(cmd),          //程式名

pchar(para),         //引數

nil,

nil,

false,

normal_priority_class,

nil,

nil,

startupinfo,

processinfo);

end;

//winexec執行程式

procedure tform1.button1click(sender: tobject);

begin

winexec(pchar(cmd+' '+para),sw_shownormal);  //命令列+引數

end;

//shellexecute執行程式,需要新增shellapi單元

procedure tform1.button2click(sender: tobject);

begin

shellexecute(handle,

'open',

pchar(cmd),    //程式名

pchar(para),   //引數

nil,           //預設資料夾

sw_shownormal);//正常顯示

end;

//createprocessasuser執行程式

procedure tform1.button4click(sender: tobject);

varhtoken:thandle;

ph:thandle;

si:startupinfo;

pi:process_information;

begin

ph:=openprocess(process_all_access ,

false,

getcurrentprocessid());

if ph<=0 then exit;

openprocesstoken( ph,token_all_access,htoken); //去當前程序token等同於取當前帳戶token

tryzeromemory( @si, sizeof( startupinfo ) );

si.cb := sizeof( startupinfo );

si.lpdesktop := pchar('winsta0/default');

si.wshowwindow:=sw_shownormal;

createprocessasuser(htoken,

pchar(cmd) ,       //程式名

pchar(para),       //引數

nil,

nil,

false,

create_default_error_mode, //normal_priority_class or

create_new_console,

nil,

nil,

si,pi );

finally

closehandle(ph);

end;

end;

stdcall;external 'advapi32.dll';

//結束定義

//createprocesswithlogonw執行程式

procedure tform1.button5click(sender: tobject);

varsi: startupinfow;

pif: process_information;

spath:array[0..max_path] of widechar;

begin

if not fileexists(cmd) then exit;

stringtowidechar(cmd+' '+para,@spath,sizeof(spath));

si.cb := sizeof(startupinfow);

si.dwflags  := startf_useshowwindow;

si.wshowwindow := sw_showdefault;

si.lpreserved := nil;

si.lpdesktop := nil;

si.lptitle := 'jjony';

createprocesswithlogonw('test',       //使用者名稱,必須是已存在的帳戶

nil,        //網域名稱,不在域中為空

'123456', //密碼,一定要和指定帳戶對應哦

logon_with_profile,

nil,        //程式名

@spath,     //命令列+' '+引數

create_default_error_mode,

nil,

nil,

si,pif);

end;

end. 

delphi刪除自身執行程式的方法

procedure deleteme varbatchfile textfile batchfilename string processinfo tprocessinformation startupinfo tstartupinfo begin batchfilename extractfile...

linux 開機執行程式的方法

開機執行程式的方法 1.在 etc rc.d rc.local檔案中加入程式路徑及程式名 或2.在 etc rc.d init.d 中新增可執行程式,然後在 etc rc.d rcn.d 中新增符號鏈結 n表示執行級別 先檢視 etc inittab檔案中當前系統設定的預設級別,再將符號連線新增到對...

Linux定時啟動執行程式的方法

參考 cron 是乙個可以用來根據時間 日期 月份 星期的組合來排程對重複任務的執行的守護程序。cron 假定系統持續執行。如果當某任務被排程時系統不在執行,該任務就不會被執行。要使用 cron 服務,你必須安裝了 vixie cron rpm 軟體包,而且必須在執行cron服務。要判定該軟體包是否...