知识大全 .NET下基于API封装的DirectUIHWND窗体访问

Posted

篇首语:逆水行舟用力撑,一篙松劲退千寻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET下基于API封装的DirectUIHWND窗体访问相关的知识,希望对你有一定的参考价值。

.NET下基于API封装的DirectUIHWND窗体访问  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  直接切入正题:     添加引用 项目 >添加引用 >C:\\Progmme~ \\MSN Messenger\\msnmsgr exe     using MessengerAPI;    声明:    private MessengerAPI MessengerClass msn;  private MessengerAPI IMessengerConversationWnd msnMsgWnd;     Init里添加:    msn = new MessengerClass();  msn OnIMWindowCreated +=new DMessengerEvents_OnIMWindowCreatedEventHandler(msn_OnIMWindowCreated);  msn OnIMWindowDestroyed +=new DMessengerEvents_OnIMWindowDestroyedEventHandler(msn_OnIMWindowDestroyed);         private void msn_OnIMWindowCreated(object pIMWindow)    msnMsgWnd = (IMessengerConversationWnd) pIMWindow; //取得IM窗口句柄    #region Get IM Message  System IntPtr ptrUIHWND = NativeWIN FindWindowEx(msnMsgWnd HWND DirectUIHWND ); //取得窗口内DirectUIHWND句柄  Guid guid= new Guid( x E x C D x CF x xC x xAA x x x B x ); //的GUID  IAccessible IACurrent=null;      //IAccessible集  try      NativeWIN AccessibleObjectFromWindow(ptrUIHWND (int)NativeMsg OBJID_CLIENT ref guid ref IACurrent); //取得ptrUIHWND中IAccessible集    IACurrent = (IAccessible)IACurrent accParent; //其父 才是IAccessible集真正的容器  int _ChildCount = IACurrent accChildCount;  object[] _Children = new object[_ChildCount];  int _out;  NativeWIN AccessibleChildren(IACurrent _ChildCount _Children out _out); //从IACurrent中 将所有子IAccessible加入_Children数组中  foreach(IAccessible _child in _Children)    string _accName = _child get_accName((int)NativeMsg CHILDID_SELF);          catch(Exception ex)    throw ex;    #endregion      private void msn_OnIMWindowDestroyed(object pIMWindow)    msnMsgWnd = null;       直接查找消息窗体的方法    Private void FindIMwindow()    System IntPtr hWndStart;  int _next = ;  do    hWndStart = NativeWIN FindWindowEx( _next IMWindowClass );  _next = hWndStart ToInt ();  while(_next != );         最后是API声明    #region API wrapper  public class NativeWIN     [DllImport( user dll CharSet=CharSet Auto)]  public static extern IntPtr FindWindowEx(  int parent /*HWND*/   int next /*HWND*/   string lpszClass   string sWindowTitle);    [DllImport( Oleacc dll )]  public static extern int AccessibleObjectFromWindow(  IntPtr hwnd   int dwObjectID   Guid refID   ref IAccessible ppvObject);    [DllImport( Oleacc dll )]  public static extern int AccessibleChildren(  Accessibility IAccessible paccContainer   int iChildStart   int cChildren   [Out] object[] rgvarChildren   out int pcObtained);      public enum NativeMsg:long   CHILDID_SELF =   CHILDID_   =   OBJID_CLIENT = xFFFFFFC    #endregion cha138/Article/program/net/201311/13375

相关参考

知识大全 微软同步框架中的自定义数据同步基础

  MicrosoftSyncFramework(MSF)为我们提供了进行同步应用开发的基础框架和API这些API即有基于托管代码的也有基于非托管代码的也就是说我们既可以开发基于NET平台使用托管AP

知识大全 JSF和struts基于框架的错误控制与封装处理

JSF和struts基于框架的错误控制与封装处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 基于Visual C++的Winsock API研究

基于VisualC++的WinsockAPI研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!为了

知识大全 基于SVG的web页面图形绘制API介绍及编程演示

基于SVG的web页面图形绘制API介绍及编程演示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!S

知识大全 .Net环境下基于Ajax的MVC方案[1]

.Net环境下基于Ajax的MVC方案[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问题

知识大全 .Net环境下基于Ajax的MVC方案[2]

.Net环境下基于Ajax的MVC方案[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 跳出封装剖析ASP.NET脚本回调的原理

跳出封装剖析ASP.NET脚本回调的原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET挪用淘宝API实例详解

ASP.NET挪用淘宝API实例详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 .net连接Mysql封装类代码 可直接调用

.net连接Mysql封装类代码可直接调用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!下面是我封

知识大全 使用.NET框架类替代API调用的问题

使用.NET框架类替代API调用的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  避免使用W