能否通过一个窗口句柄在c#中控制一个外部的窗口? to qimini:不同。有三种情况:进程内部件、进程外部件以及直接的另外程序的一个窗口。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从API的层次上看,只要能得到窗口的HWND,就可以利用API对它加以控制。(通常使用的是FindWindow和FindWindowEx得到HWND)。在.NET里,我还没有发现有将一个HWND窗口句柄attach到一个Form对象的方法,所以我想PInvoke调用API可能是唯一的办法。 对于不是一个进程的窗口,要看你是进行什么操作,实际上是不能够对不是一个进程的窗口进行任何操作的,但是ms为了跟16位的windows程序兼容,所以一些以前有的窗口操作(比如WM_SETTEXT,WM_GETTEXT等消息处理),是可以的,但是一些新版本的操作就不可以了。同时,这些操作一定要通过调用SendMessage的API来实现,用mfc是不可以的 可以使用SendMessage来发送消息啊,具体的消息可以在Win32SDK中找到:) sendmessage需要捕获窗体的句柄findwindow试试 好像vc++的mfc的cwnd就提供一个cwnd::fromHwnd()的函数实现这个功能 控制?你想怎么控制,外部窗体,你的意思是说那个窗体是第三方的吗?如果是,那你除了标准的Windows消息以外,只能用spy看看了,看看有没有什么特别的消息激发特别的动作,然后自己封装这样的消息发送给它;如果外部窗体是自己的,那么同样,除了标准的windows消息,你还可以自定义消息去激发自定义的动作。你说呢? System.Windows.Form.Control.FromHandle()函数可以用于从一个HWND来生成一个Control对象(然后可以强制转换成Form对象)。但是,FromHandle()方法(包括NativeWindow.FromHandle方法)的使用有一个限制,即FromHandle()只能用于与调用者处于同一进程的Win32窗口对象(包括窗口、按钮等)。在跨进程的情况下,FromHandle()总是返回null。因此,正如qqchen所说的,对于其他进程中的窗口对象,是不能用FromHandle()来创建Form对象的。你可以用P/Invoke,Win32 API仍然可以用。Hogwarts - S(u)ddenly dis@ppeared...- 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。 简单代码示例,为什么提示红色部分没有赋值? C#中可以使用VC6中的ACTIVEX(.ocx)组件吗? webserver传参 求:Windows下的bmp,jpg,gif,tif格式规则以及算法 怎样在Win中点击按钮为DataGrid新增一行,并可以进行编辑,保存? 关于chart控件问题 求大神 请问怎么动态实例化一个实例? 有谁有C#中类指针的介绍的 在C#中如下正则表达式改怎么写? c/s模式中图片的远程传输问题 C#如何对串行口RS-232进行编程? 高手请进,实现两个树控件节点之间的画线,在线等待,急!!!谢谢了
(通常使用的是FindWindow和FindWindowEx得到HWND)。
在.NET里,我还没有发现有将一个HWND窗口句柄attach到一个Form对象的方法,所以我想PInvoke调用API可能是唯一的办法。
同时,这些操作一定要通过调用SendMessage的API来实现,用mfc是不可以的
findwindow试试
Hogwarts - S(u)ddenly dis@ppeared...
-
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。