Sendkeys 和 Sendmessage 使用技巧一例

原创 2004年10月24日 23:54:00

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Function sqrx(ByVal x As Double) As String '计算平方根(比VB DOUBLE 类型精度高)
Dim temp As String, i As Long, j As Long
Shell "Calc.EXE", vbMinimizedNoFocus '运行计算器
temp = x & "y0.5="
For i = 1 To Len(temp)
SendKeys Mid(temp, i, 1), True '向计算器顺序发送按键消息X (X^Y) 0.5=
Next
temp = String(64, Chr(0))
i = FindWindow(vbNullString, "计算器") '窗口句柄
j = FindWindowEx(i, ByVal 0&, "Edit", vbNullString) '编辑框句柄
SendMessage j, &HD, Len(temp), ByVal temp '发送编辑框文本至temp
SendKeys "%{F4}", True '调用ALT+F4关闭计算器窗口
sqrx = temp
End Function

Private Sub Command1_Click()
Dim i As Integer
For i = 17 To 24
Debug.Print "sqrx(" & i & ")=" & sqrx(i)
Next
End Sub

 

返回:
sqrx(17)=4.1231056256176605498214098559741                              
sqrx(18)=4.2426406871192851464050661726291                              
sqrx(19)=4.3588989435406735522369819838596                              
sqrx(20)=4.4721359549995793928183473374626                              
sqrx(21)=4.582575694955840006588047193728                               
sqrx(22)=4.6904157598234295545656301135445                              
sqrx(23)=4.7958315233127195415974380641627                              
sqrx(24)=4.8989794855663561963945681494118                              

 

SendKeys实例(模拟键盘输入)

  • 2012年02月29日 19:50
  • 42KB
  • 下载

Sendkeys 和 Sendmessage 使用技巧一例 选择自 northwolves 的 Blog

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByV...
  • web_gus
  • web_gus
  • 2004年10月25日 13:17
  • 952

NumPy、SciPy 等Python包在Windows下的whl安装包下载

该地址提供了许多开源扩展包的官方CPython发布的32位及64位的二进制文件(包括NumPy,SciPy等),安装方便。 感谢加利福尼亚大学尔湾分校(University of Californi...
  • questionfish
  • questionfish
  • 2015年07月20日 09:20
  • 6089

C# 发送消息SendKeys、SendMessage、keybd_event的用法

一、C#中SendKeys的用法 二、C#中Keybd_event的用法
  • xtfnpgy
  • xtfnpgy
  • 2014年10月27日 18:34
  • 3360

(转)c# 用sendkeys类 实现ctrl+C遇到的问题

c# 用sendkeys类 实现ctrl+C遇到的问题SunShine当你把Ctrl+C注册成系统热键时,要用SendKeys.Send("^c")实现原有的复制功能,注意c是小写的,大写的在有些程序...
  • pepsilin
  • pepsilin
  • 2007年12月21日 17:22
  • 4339

C# 使用SendMessage 函数

在C#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,但是在以前的系统中定义了丰富的消息对系统的编程提供了方便的实现方法,因此在C#中使用消息有时候还是...
  • sbz0409
  • sbz0409
  • 2009年01月14日 10:11
  • 33641

Unity3D中的SendMessage方法与委托的使用选择

参考: http://www.cnblogs.com/xpvincent/p/3195453.html http://bbs.9ria.com/thread-256852-1-1.html h...
  • yyeric11
  • yyeric11
  • 2014年10月28日 16:07
  • 845

SendKeys如何发送组合键?

复制  保存SendKeys.Send("^+{TAB}");使用SendKeys将键击和组合键击发送到活动应用程序。此类无法实例化。若要发送一个键击给某个类并立即继续程序流,请使用Send。若要等待...
  • qudymeteor
  • qudymeteor
  • 2008年03月18日 18:43
  • 7293

Clojure版Selenium WebDriver笔记——如何使用sendKeys方法

当按照Java的方式照搬过来,代码会是这样:;这段代码是错误的! (-> driver (.findElement (By/id "name")) (.sendKeys "abc" ...
  • Godric42
  • Godric42
  • 2015年02月08日 23:23
  • 821

使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast

3.1 static_cast用法:static_cast ( expression )      该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它...
  • singno116
  • singno116
  • 2008年04月18日 16:43
  • 803
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sendkeys 和 Sendmessage 使用技巧一例
举报原因:
原因补充:

(最多只允许输入30个字)