小弟想在winform程序上获取另一个程序的radiobutton 是否被选中 ,碰巧那个项目也是winform开发的
于是 先找了如下API
SendMessage ( Handle,BM_GETCheck, 0, 0) 发现对于别的程序都可以 唯独winform无效
于是又看了CheckRadioButton 和IsDlgButtonChecked 两个函数 也毫无斩获
后来网上查了查 发现与我有类似问题的人不少 于是乎又用了
[DllImport("oleacc.dll", PreserveSig = false)]
[return: MarshalAs(UnmanagedType.Interface)]
public static extern object AccessibleObjectFromWindow(IntPtr hwnd, uint dwId, ref Guid riid);
这个函数 还是很难实现我的要求 希望各位做过的兄弟 给点帮助和建议 谢谢了~
于是 先找了如下API
SendMessage ( Handle,BM_GETCheck, 0, 0) 发现对于别的程序都可以 唯独winform无效
于是又看了CheckRadioButton 和IsDlgButtonChecked 两个函数 也毫无斩获
后来网上查了查 发现与我有类似问题的人不少 于是乎又用了
[DllImport("oleacc.dll", PreserveSig = false)]
[return: MarshalAs(UnmanagedType.Interface)]
public static extern object AccessibleObjectFromWindow(IntPtr hwnd, uint dwId, ref Guid riid);
这个函数 还是很难实现我的要求 希望各位做过的兄弟 给点帮助和建议 谢谢了~
解决方案 »
- c#中如何获取Excel的某一单元格的长度和宽度
- 关于throw的问题
- 除了控件事件外,谁能举个用一般方法很难解决,而必须用委托才能容易解决的例子
- ▲如何在线程中让另一个线程调用某一个函数?
- 根据字符串类名实例化类的问题?
- 如何将一个已知路径的文件拷贝到剪贴板中
- 在线等:怎么得到网页的源码
- 求助!C#关于图片缩放
- C#与java区别在那
- winform 父窗体弹出若干子窗体,请问怎么在子窗体中关闭它自己,而不影响父窗体
- lsvBlockcolorSet.SelectedItems[0])中的0表示什么?
- Socket问题 无法访问名为“System.Net.Sockets.Socket”的已处置对象
你Handle传的什么?会不会是对方用的自绘的窗体而不是Windows标准控件(WinForm里
的RadioButton应该没问题;但WPF是自绘的句柄都拿不到更别提发消息了.)?至于
AccessibleObjectFromWindow...这个涉及COM.一般很难扯上Windows标准控件吧
通过sendmessage发送信息给相关程序
AccessibleObjectFromWindow