首页 > 解决方案 > 检查当前用户或其他用户的窗口是否恢复(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;

但我想知道,如果我的笔记本电脑上注册了多个帐户,有没有办法让我检测另一个用户帐户中的窗口是否已恢复?请注意,我正在编写的程序能够以管理员身份运行。

标签: delphiwindow

解决方案


推荐阅读