C#中如何获得HWND(窗口句柄)?

wwfttelne 2003-10-18 06:02:38
hwnd在Win32 API 中,几乎总是被用到。
如何在C#中得到自己的hwnd?
如果可以在C#中调用某个Win32 API 也行。
可是我也没有找到。
请高手帮忙。
...全文
4537 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
solomon2002 2004-02-14
  • 打赏
  • 举报
回复
郁闷
ArLi2003 2003-11-08
  • 打赏
  • 举报
回复
倒分嫌疑....
layershow 2003-11-04
  • 打赏
  • 举报
回复
好贴
佩服呀佩服
每人应该鼓掌三下
ArLi2003 2003-10-21
  • 打赏
  • 举报
回复
其中的 IEXPLORE 是进程名,可以换成需要的

int32 数组是因为可能有多个的IE 进程
ArLi2003 2003-10-21
  • 打赏
  • 举报
回复
楼主只是想要当前窗口啊,你的问题应该开新贴,嘿嘿,答案如下:原理是一样的

Process[] processes = Process.GetProcessesByName("IEXPLORE");
Int32[] hwnd_IE = new Int32[processes.Length];

for (int i=0; i<processes.Length; i++) {
hwnd_IE[i] = processes[i].MainWindowHandle.ToInt32();
}
zhoutiance 2003-10-20
  • 打赏
  • 举报
回复
这些都是获得当前窗口的句柄吧?
如果想获得其他窗口的该怎么办?比如说某个IE窗口的?
ArLi2003 2003-10-20
  • 打赏
  • 举报
回复
Int32 hwnd_fromclass = this.Handle.ToInt32();
Int32 hwnd_Process = System.Diagnostics.Process.GetCurrentProcess().Handle.ToInt32();

不过也可以将API 直接声明成 IntPtr 类型
hjwzr 2003-10-20
  • 打赏
  • 举报
回复
up
Tsiah 2003-10-19
  • 打赏
  • 举报
回复
窗体好象有个叫HWND的属性吧……

不是好像,本来就是有的。
easydone 2003-10-19
  • 打赏
  • 举报
回复
this.Handle不行吗?
weifenluo 2003-10-19
  • 打赏
  • 举报
回复
Control.Handle属性返回的就是控件的窗口句柄。
layershow 2003-10-19
  • 打赏
  • 举报
回复
Handle 属性就是句柄 IntPtr型
引用API时 HWND参数也写成IntPtr
关于IntPtr可以看看MSDN
orcale 2003-10-19
  • 打赏
  • 举报
回复
findmessage
BLGT 2003-10-18
  • 打赏
  • 举报
回复
窗体好象有个叫HWND的属性吧……
jasonhrs 2003-10-18
  • 打赏
  • 举报
回复
需要用到属性
好以下属性调用api函数使喇叭响
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
public static extern bool MessageBeep(uint uType);
MessageBeep(1);//PC喇叭响

zeax 2003-10-18
  • 打赏
  • 举报
回复
顶,关注
losal 2003-10-18
  • 打赏
  • 举报
回复
我也在找

关注!

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧