本文整理自网络,侵删。
{function CreateProcessWithLogonW( lpUsername, // user's name lpDomain, // user's domain lpPassword:PWideChar; // user's password dwLogonFlags:dword; // logon option lpApplicationName: PWideChar; lpCommandLine: PWideChar; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: PWideChar; const lpStartupInfo: tSTARTUPINFO; var lpProcessInformation: TProcessInformation ): BOOL; stdcall;external 'advapi32.dll'; }Function RunAsUser(const filename,username,password:string):boolean;var StartupInfo: tStartupInfo; ProcessInfo: TProcessInformation; wfilename,wusername,wpassword:pwidechar;begin FillChar (StartupInfo, SizeOf(StartupInfo), #0); StartupInfo.cb := SizeOf(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := SW_SHOWNORMAL; GetMem( wfilename, Length( filename ) * SizeOf( WideChar ) + SizeOf(WideChar ) ) ; GetMem( wusername, length(username) * SizeOf( WideChar ) + SizeOf(WideChar ) ) ; GetMem( wpassword, length(password) * SizeOf( WideChar ) + SizeOf(WideChar ) ) ; StringToWideChar( filename, wfilename, Length( filename ) * SizeOf(WideChar ) + SizeOf( WideChar ) ) ; StringToWideChar( username, wusername, Length( username ) * SizeOf(WideChar ) + SizeOf( WideChar ) ) ; StringToWideChar( password, wpassword, Length( password ) * SizeOf(WideChar ) + SizeOf( WideChar ) ) ; result:=CreateProcessWithLogonW(wusername,nil,wpassword,0, wfilename, nil,0, nil, nil,StartupInfo , ProcessInfo); freemem(wfilename); freemem(wusername); freemem(wpassword);end;
RunAsUser('D:\Program Files (x86)\7-Zip\7zFM.exe','username','pass');
相关阅读 >>
Delphi leftstr 返回字符串左边指定个数的新字符(串)
Delphi idtcpclient和idtcpserver主要属性
Delphi xe 网上获取北京时间android app 启动黑屏优化补丁
Delphi程序在win7 win8 win10下自动请求以管理员身份运行
更多相关阅读请进入《Delphi》频道 >>