delphi - 检查当前用户或其他用户的窗口是否恢复(Delphi)
问题描述
我创建了一个程序,它将检查指定进程是否已在运行。如果它已经在运行,它将恢复现有进程的窗口并设置为前台。如果不是,它将启动该过程。这是我必须恢复正在运行的进程的窗口的当前代码。
function EnumWindowsCallback(Handle: HWND; lParam: Integer): bool; stdcall;
var
WID, PID: Integer;
Text: array [0 .. 255] of char;
begin
WID := 0;
PID := lParam;
GetWindowThreadProcessId(Handle, @WID);
if (PID = WID) and IsWindowVisible(Handle) then begin
ShowWindow(Handle, SW_RESTORE);
SetForegroundWindow(Handle);
FlashWindow(Handle, true);
Result := false;
end;
Result := true;
end;
function ShowProcessWindow(PID: Integer): boolean;
begin
Result := EnumWindows(@EnumWindowsCallback, lParam(PID));
end;
但我想知道,如果我的笔记本电脑上注册了多个帐户,有没有办法让我检测另一个用户帐户中的窗口是否已恢复?请注意,我正在编写的程序能够以管理员身份运行。
解决方案
推荐阅读
- rust - 非详尽模式 - Rust 匹配表达式
- rust - 如何在结构中设置一个空值的字段?
- julia - 当函数体中没有指定泛型类型参数时,如何访问它?
- python - 了解如何部署python代码来弹出气球
- spring-boot - MapStruct 不使用 Kotlin 和 Spring Boot 自动装配,使用 Gradle 构建
- angular - 如何使用 *ngFor 在同一个对象上迭代两次?
- r - R 中 exp(mean(log(murders$population))) 的 tidyverse 代码等效
- c++ - 在 C++ 内联汇编中定义变量
- python - Pandas 从多个名称元组列表中创建数据帧,但具有单独的成员
- r - 根据跨两个数据框的多列中的条件删除重复项