delphi 系统服务运行桌面用户指定程序


本文整理自网络,侵删。

 
Function GetProcessHandleAsName(Name:String):THandle;
Var
    Hd,Hs:THandle;
    dExit:Cardinal;
    Tmp,Tmp1:String;
    Lp:TProcessEntry32;
begin
    Result:=0;
    Lp.dwSize:=sizeof(TProcessEntry32);
    Hd:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if Process32First(Hd,Lp) then
        Repeat
            Tmp:=UpperCase(Trim(Name));
            Tmp1:=Trim(UpperCase(Lp.szExeFile));
            if AnsiPos(Tmp,Tmp1)>0 then
            begin
                Result:=OpenProcess(PROCESS_ALL_ACCESS,true,Lp.th32ProcessID);
                break;
            end
        Until Process32Next(Hd,Lp)=False;
end;

procedure CreateProc;
Var
    siStartupInfo:STARTUPINFO;
    saProcess,saThread:SECURITY_ATTRIBUTES;
    piProcInfo:PROCESS_INFORMATION;
    Hd:Cardinal;
    ProcessHd:THandle;
    Hds:THandle;
    Str:String;
begin
    ProcessHd:=GetProcessHandleAsName('Explorer');
    if ProcessHd=0 then
        Exit;
    if OpenProcessToken(ProcessHd,TOKEN_ALL_ACCESS,Hds) then
        if DuplicateTokenEx(Hds,TOKEN_ALL_ACCESS,nil,SecurityIdentification,TokenPrimary,Hd) then
        begin
            ZeroMemory(@siStartupInfo,sizeof(siStartupInfo));
            siStartupInfo.cb:=sizeof(siStartupInfo);
            saProcess.nLength:=sizeof(saProcess);
            saProcess.lpSecurityDescriptor:=nil;
            saProcess.bInheritHandle:=false;
            saThread.nLength:=sizeof(saThread);
            saThread.lpSecurityDescriptor:=nil;
            saThread.bInheritHandle:=false;
            CreateProcessAsUser(Hd,nil,PChar(ProcessName),nil,nil,false,
                CREATE_DEFAULT_ERROR_MODE,nil,nil,siStartupInfo,piProcInfo);
        end;
end;

相关阅读 >>

Delphi 从paintbox拷贝一部分内容到tbitmap

Delphi is 与 as 运算符举例

Delphi实现webservice带身份认证的数据传输

Delphi实现文件拖放代码

Delphi win32,win64用于单/多线程计数素数的整数性能比较

Delphi mediaplayer1 设置音量

Delphi 虚拟键码对照表

Delphi 全局变量 hinstance 到底是在什么时候赋值的?

Delphi 的webbrowser如何全选并复制浏览器上的文字

Delphi 文件名变小写的函数

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...