作者: mcevilrock
查看: 2785|回复: 1
打印 上一主题 下一主题

【番外篇】C#调用Win32API

[复制链接]
跳转到指定楼层
楼主
查看: 2785|回复: 1
课程名:
  • 番外篇 之 Win32Api

本节要点:
  • C#调用系统API.
  • C# SendMessage 更改listbox选中
  • C# SendMessage 更改combox选中
  • C# SendMessage 到文本框
  • C# SendMessage 选中checkbox

  • 从自己的软件,来操作别人写好的软件.
  • SendMessage
  • 句柄  标识当前进程/控件的一个标识;

本课程所用到的常量信息:
   
[C#] 纯文本查看 复制代码
private const uintLB_FINDSTRING = 0x18F;//查询项目在listbox中[/align]        private const uint LB_ADDSTRING = 0x180;//增加字符串在listbox中
      private const uint LB_SETCURSEL = 0x186;  //用于多选ListBox
      private const uint LB_SETTOPINDEX = 0x197;//改变序号在ListBox
      private const uint CB_FINDSTRING = 0x014C;//搜索字符串在下拉菜单中
      private const uint CB_SETCURSEL = 0x014E;//设置下拉菜单的选中项
      private const uint CB_SHOWDROPDOWN = 0x014F;//展开下拉菜单
      private const uint BM_CLICK = 0x00F5;//按钮点击



  引用其他非托管语言编写的DLL时.必须要加上此标志
[C#] 纯文本查看 复制代码
关键字     方法所在的DLL  方法名称
  [DllImport("user32.dll",EntryPoint = "FindWindow")]
         权限修饰符   静态标志  修饰符   返回值类型  方法名(与调用方法相同)
           private   static   extern   IntPtrFindWindow(string IpClassName, string IpWindowName);


如何编写一个win32api的程序.
一、获取句柄
  • 从窗体标题中获取句柄/从进程中(pid)获取句柄
  • IntPtr.Zero   判断句柄是否为0
二、找到实现函数
  • SendMessage
三、函数的原型(搜索引擎,MSDN,玄机宝盒)
  • 可以使用宝盒的api速查
四、如何调用
  • EasyWin32Apis

编后语:
找出窗体上所需要操控控件句柄,在进行消息传递.Ps:常量消息暂时放在楼层,以后有空收录至 玄机宝盒 ,并增加相应中文注释

免费课程视频下载地址:
http://pan.baidu.com/s/1gdAFesb
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 转播转播
回复 论坛版权

使用道具 举报

沙发
无心泪 发表于 2017-10-27 13:21:27 | 只看该作者
能否给一下Demo
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-22 06:13, Processed in 0.645049 second(s), 31 queries , Gzip On.

快速回复 返回顶部 返回列表