Mar*_*ner 3 delphi winapi classname findwindow createparams
我有两个应用程序,其中第一个需要找到第二个(也是我自己),但不同的应用程序(不实例,但不同的应用程序)形式的手柄.我已经看过一些技巧,但我想知道我想做什么或者有效的方法是否安全.
我正在考虑使用FindWindow
你可以传递类名的函数,所以如果我将表单中的WinClassName
成员更改CreateParams
为某个唯一值(例如GUID),那么我很容易找到一个大的窗口很有可能它是我申请的那个.
需要找到其形式的应用程序:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WinClassName := '{1EE65C52-2F4B-4600-AAE2-079C29AD2220}';
end;
Run Code Online (Sandbox Code Playgroud)
另一个需要找到前一个表单的应用程序:
procedure TForm1.Button1Click(Sender: TObject);
var
FormHandle: HWND;
begin
FormHandle := FindWindow('{1EE65C52-2F4B-4600-AAE2-079C29AD2220}', nil);
ShowMessage(IntToStr(FormHandle));
end;
Run Code Online (Sandbox Code Playgroud)
我的问题是:
将这个成员更改TCreateParams
为我想要的或者在某些事情上是不安全的是否安全?或者,您如何从自己的另一个应用程序(不是应用程序实例,而是您自己的另一个应用程序)中查找表单的句柄?
非常感谢!