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

原创 2004年10月25日 13:17: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 和 Sendmessage 使用技巧一例

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVa...
  • northwolves
  • northwolves
  • 2004年10月24日 23:54
  • 3350

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

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

谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 选择自 fmddlmyy 的 Blog

 标题 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 选择自 fmddlmyy 的 Blog 关键字 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 这是...
  • ywchen2000
  • ywchen2000
  • 2007年10月26日 11:26
  • 1216

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

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

C# 使用SendMessage 函数

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

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
  • 844

Oracle 常用技巧和脚本 选择自 yanlixin4csdn 的 Blog

 如何查看ORACLE的隐含参数? ORACLE的显式参数,除了在INIT.ORA文件中定义的外,在svrmgrl中用"show parameter *",可以显示。但ORACLE还有一些参数是以“_...
  • boysoft
  • boysoft
  • 2005年01月05日 18:15
  • 503

Vue.js 实用技巧(二)

观众老爷们好,如果你看过上一篇文章就会知道,我们这个系列是介绍 Vue.js 实践中的一些技巧,合理的运用还是能提升一些开发效率的。今天介绍 jsx 的特殊用法和 Vue.js 的新功能 —— $...
  • sinat_17775997
  • sinat_17775997
  • 2017年03月08日 17:27
  • 306

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

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

MFC 技巧之三

21. 介绍函数过程中一种任意键退出同时能处理消息的实现方法  1. 设置定时器,用于使::GetMessage(...)函数总能快速取到消息. 2. 在函数处理中加入: 函数每执行完一...
  • zang141588761
  • zang141588761
  • 2016年01月22日 14:18
  • 573
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sendkeys 和 Sendmessage 使用技巧一例 选择自 northwolves 的 Blog
举报原因:
原因补充:

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