首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调频FindWindow

调频FindWindow
EN

Stack Overflow用户
提问于 2015-11-25 16:59:46
回答 1查看 2.7K关注 0票数 1

我试图在FM中使用findwindow api调用,我可以在VCL应用程序中使用它,但不能使用FM。

这是我的密码

代码语言:javascript
复制
    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‘和’指针‘

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 17:15:19

您的问题似乎是,您的代码正在查找FMX.Platform.Win.FindWindow而不是Winapi.Windows.FindWindow。此外,FindWindow返回一个HWND而不是一个THandle

您的代码应该如下所示:

代码语言:javascript
复制
function WindowExists(const TitleName: string): Boolean;
var
  wnd: HWND;
begin
  wnd := Winapi.Windows.FindWindow(nil, PChar(TitleName));
  Result := wnd <> 0;
end;

甚至是

代码语言:javascript
复制
function WindowExists(const TitleName: string): Boolean;
begin
  Result := Winapi.Windows.FindWindow(nil, PChar(TitleName)) <> 0;
end;

请注意,编写这样的代码总是毫无意义的:

代码语言:javascript
复制
A := 0;
A := 1;

这就是您的代码在函数的前两行中所做的实质工作。使用不相等运算符<>而不是否定相等运算符也是惯用的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33922301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档