C#API控制窗体

        using  System.Runtime.InteropServices;
 
         [DllImport( "user32.dll" , EntryPoint =  "SendMessage" , SetLastError =  true , CharSet = CharSet.Auto)]
         private  static  extern  int  SendMessage(IntPtr hwnd,  uint  wMsg,  int  wParam,  int  lParam);
 
         [DllImport( "user32.dll" , EntryPoint =  "FindWindow" , SetLastError =  true )]
         private  static  extern  IntPtr FindWindow( string  lpClassName,  string  lpWindowName);
 
         [DllImport( "user32.dll" , EntryPoint =  "FindWindowEx" , SetLastError =  true )]
         private  static  extern  IntPtr FindWindowEx(IntPtr hwndParent,  uint  hwndChildAfter,  string  lpszClass,  string  lpszWindow);
 
         const  uint  BM_CLICK = 0xF5;
 
         private  void  DoClick()
         {   
             //下面的这些参数都可以用Spy++查到        
             string  lpszParentClass =  "#000000" //整个窗口的类名,需要Spy++查询对应的窗口
             string  lpszParentWindow =  "使命召唤10 xxxxxxx" //窗口标题,这也是要Spy++去查       
             string  lpszClass_Submit =  "Button" //需要查找的Button的类名,这里需要Spy++去查看是按钮还是图片什么的
             string  lpszName_Submit =  "开始游戏" //需要查找的Button的标题,这里需要Spy++去查看是按钮还是图片什么的        
             IntPtr ParenthWnd =  new  IntPtr(0);
             IntPtr EdithWnd =  new  IntPtr(0);
             //查到窗体,得到整个窗体        
             ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow);
             //判断这个窗体是否有效        
             if  (!ParenthWnd.Equals(IntPtr.Zero))
             {
                 //得到Button,并触发它的Click事件            
                 EdithWnd = FindWindowEx(ParenthWnd, ( uint )EdithWnd, lpszClass_Submit, lpszName_Submit);
                 if  (!EdithWnd.Equals(IntPtr.Zero))
                 {
                     SendMessage(EdithWnd, BM_CLICK, 0, 0);
                 }
             }
         }

我看网上的资料说可以这么做:
取到button的句柄 
然后用API SendMessage发送 
WM_LBUTTONDOWN和WM_LBUTTONUP模拟点击

具体的代码怎么写呢?
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值