我试图在FM中使用findwindow api调用,我可以在VCL应用程序中使用它,但不能使用FM。
这是我的密码
function WindowExists(titlename: string): boolean;
var
hwd: THandle;
begin
hwd := 0;
hwd := FindWindow(nil, pchar(titlename));
Result := False;
if not(hwd = 0) then { window was found if not nil }
Result := True;
end;下面是我试图编译dcc32 error global_proc.pas(62)时所遇到的错误: E2010不兼容类型:'HWND‘和’指针‘
我做错什么了?
发布于 2015-11-25 17:15:19
您的问题似乎是,您的代码正在查找FMX.Platform.Win.FindWindow而不是Winapi.Windows.FindWindow。此外,FindWindow返回一个HWND而不是一个THandle。
您的代码应该如下所示:
function WindowExists(const TitleName: string): Boolean;
var
wnd: HWND;
begin
wnd := Winapi.Windows.FindWindow(nil, PChar(TitleName));
Result := wnd <> 0;
end;甚至是
function WindowExists(const TitleName: string): Boolean;
begin
Result := Winapi.Windows.FindWindow(nil, PChar(TitleName)) <> 0;
end;请注意,编写这样的代码总是毫无意义的:
A := 0;
A := 1;这就是您的代码在函数的前两行中所做的实质工作。使用不相等运算符<>而不是否定相等运算符也是惯用的。
https://stackoverflow.com/questions/33922301
复制相似问题