快速精准获取窗口句柄的方法
2011-07-19 09:33
731 查看
我们在写程序中经常要操作外部程序,比如:设置它的大小、位置等。别人写的的程序我们如何控制呢?还好有强大api库。翻翻api,你会发现很多函数调用都需要知道窗口句柄。方法也很多,但能保证百分百成功的似乎没了。今天写代码就让我遇到了,折腾了半天。
先说说我的程序吧。在程序启动时,开启一个外部程序。这个外部程序开启后我又不想看到标题栏和边框,手动移动窗口似乎可刚好移动隐藏掉。于是想到了定位的方法。运行时却没有效果,外部程序窗口句柄找不到,开个记事本测试又可以,万般无赖啊。强大的vs其实已经为我们提供了工具。依次进入”开始菜单“——"所有程序"——"Microsoft Visual Studio 2008"——"Visual Studio Tools"——"spy++"(这个程序有的机器有,有的没有。可能与版本或者是否安装C++包有关),运行它。快捷键alt+f3出现如下窗口。
点击并拖动如图红色框中的图标就指定窗口,下面的三个框则会相应主变化。这个过程中我们主要是得到类这值,因为有些程序的标题是随时变化的。使用win32 api FindWindow就能找到窗口句柄了。原型如下:
lpClassName:类名
lpWindowName:窗口标题
不知是否有直接隐藏掉标题、边框的api。如果有,知道的望告知,谢谢。
先说说我的程序吧。在程序启动时,开启一个外部程序。这个外部程序开启后我又不想看到标题栏和边框,手动移动窗口似乎可刚好移动隐藏掉。于是想到了定位的方法。运行时却没有效果,外部程序窗口句柄找不到,开个记事本测试又可以,万般无赖啊。强大的vs其实已经为我们提供了工具。依次进入”开始菜单“——"所有程序"——"Microsoft Visual Studio 2008"——"Visual Studio Tools"——"spy++"(这个程序有的机器有,有的没有。可能与版本或者是否安装C++包有关),运行它。快捷键alt+f3出现如下窗口。
点击并拖动如图红色框中的图标就指定窗口,下面的三个框则会相应主变化。这个过程中我们主要是得到类这值,因为有些程序的标题是随时变化的。使用win32 api FindWindow就能找到窗口句柄了。原型如下:
[DllImport("user32.dll", EntryPoint = "FindWindow")] public extern static IntPtr FindWindow(string lpClassName,string lpWindowName);
lpClassName:类名
lpWindowName:窗口标题
不知是否有直接隐藏掉标题、边框的api。如果有,知道的望告知,谢谢。
相关文章推荐
- 获取窗口句柄(VC)的几种方法
- VC中获取窗口句柄的各种方法
- VC中获取窗口句柄的各种方法
- 获取活动窗口输入焦点控件句柄的方法
- MFC获取窗口句柄的方法
- 获取窗口句柄的方法
- VC++编程获取窗口句柄的方法小结
- Delphi获取其它进程窗口句柄的3种方法
- MapView Control 无法获取窗口控件句柄解决方法
- MFC中获取窗口句柄方法总结
- MFC获取窗口句柄的方法
- 控制台窗口句柄获取方法
- 关于获取实例句柄h和窗口句柄的若干方法
- 易语言当前窗口或组件的窗口句柄获取方法
- [WinAPI] 获取窗口句柄的几种方法
- VC中获取窗口句柄的各种方法
- MFC 各种获取窗口句柄的方法
- win32 获取窗口句柄的方法
- Delphi获取其它进程窗口句柄的3种方法
- [WinAPI] 获取窗口句柄的几种方法