要调用winAPI (带参)的函数,而api的函数的参数很多都是有句柄的例如 closeWindow(HWND hWnd);那我的问题就是怎样设置函数的参数句柄或获取?
 
delphi  中如何获得你要处理的窗口的句柄?

解决方案 »

  1.   

    對于自己的VCL控件——winControl.Handle;
    對于其他程序的——FindWindow
      

  2.   

    一般情况下用进程快照定位进程,然后findwindow找句柄
      

  3.   

    我来补充FindWindow的用法
    function windows.FindWindow(lpClassName, lpWindowName: PChar): HWND;
    lpClassName是类名,lpWindowName是窗口标题,其中如果一个未知就用nil代替
      

  4.   

    这里你要区分和明白几个概念,什么是句柄,句柄不当当仅限于窗口才有.那什么是句柄呢?《深入解析Windows操作系统 4th》里面已经给出明确的解释。简单来说句柄是内核访问各种对象资源的索引,当你调用
    ShowWindow(Hwnd,cmd);命令显示一个窗口的时候,那么这条指令会把hwnd也就是你要显示窗口的句柄发送给内核,然后内核接到这个命令后会通过Hwnd来查找你所需要显示窗口的真实对象体,这样才能继续后面的显示操作,所以在你需要传递hwnd的时候就要搞清楚这个hwnd到底是哪个对象的索引,不同类型的对象获取Hwnd的方法是不一样的,具体要看实际情况待定。
      

  5.   

    FindWindow(窗体标题,类名)
    返回一个THandle  <>0则找到。