如何从服务器检查exe是否在终端会话上运行

2 delphi terminal service

我正在创建一个更新程序,它将复制更新的.exe文件.它需要检查终端会话中是否有任何.exes正在运行.如果.exes正在运行,它将杀死它们.这将是具有管理员权限的服务器上运行的服务.代码需要在Delphi中有任何想法吗?

Rya*_*lls 7

如果您检查这些问题我相信您的问题将得到解答.它们可能不是专门用于delphi,但第二个批准的答案提供了到MSDN网站的链接.

如何对编程方式告诉-IF最终端服务器服务是运行的

怎么办-I-告诉-IF-MY-应用程序是运行功能于一个-RDP会话

或者在网络上的另一个快速搜索显示此代码段.(这不是我的代码)

function ProcessIdToSessionId(dwProcessId: DWORD; pSessionId: DWORD): BOOL; stdcall; external 'kernel32.dll';

function GetSessionIdfromProccessId(const processId: DWORD; var sessionId: DWORD): boolean;
begin
    result:=ProcessIdToSessionId(processId, DWORD(@sessionId));
end;

function GetCurrentSessionId: DWORD;
begin
    if not GetSessionIdfromProccessId(GetCurrentProcessId,result) then
        result:=0;
end;
Run Code Online (Sandbox Code Playgroud)

似乎GetCurrentSessionid <> 0的结果然后你在TS下运行.

HTH.