gpt4 book ai didi

delphi - 如何从服务器检查 exe 是否在终端 session 上运行

转载 作者:行者123 更新时间:2023-12-03 18:08:52 26 4
gpt4 key购买 nike

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

最佳答案

如果您检查这些 SO 问题,我相信您的问题会得到解答。它们可能不是专门针对 Delphi 的,但第二个已获批准的答案提供了指向 MSDN 网站的链接。

how-to-programmatically-tell-if-the-terminal-server-service-is-running

how-do-i-tell-if-my-application-is-running-in-an-rdp-session

或者在网络上的另一个快速搜索揭示了这个代码片段。 (这不是我的代码)

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;

看起来好像是GetCurrentSessionid <> 0 然后你在TS下运行的结果。

HTH.

关于delphi - 如何从服务器检查 exe 是否在终端 session 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com