我正在创建一个更新程序,它将复制更新的.exe文件.它需要检查终端会话中是否有任何.exes正在运行.如果.exes正在运行,它将杀死它们.这将是具有管理员权限的服务器上运行的服务.代码需要在Delphi中有任何想法吗?
如果您检查这些问题我相信您的问题将得到解答.它们可能不是专门用于delphi,但第二个批准的答案提供了到MSDN网站的链接.
怎么办-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.
| 归档时间: |
|
| 查看次数: |
4023 次 |
| 最近记录: |