Sendkeys 和 Sendmessage 使用技巧一例 选择自 northwolves 的 Blog
2004-10-25 13:17
579 查看
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
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 使用技巧一例
- Sendkeys 和 Sendmessage 使用技巧一例
- Sendkeys 和 Sendmessage 使用技巧一例
- 总结:ADO.NET在开发中的部分使用方法和技巧 选择自 yangyifan0 的 Blog
- linux日期函数使用技巧[转自那天的blog]
- MSHFlexGrid1使用技巧(三)[如何让鼠标在 MSHFlexGrid 中拖动也不允许选择多行]
- Google Blogsearch(博客搜索)使用技巧
- 谈Delphi 下Internet 编程技巧(二) 选择自 lyboy99 的 Blog
- vim(四) 使用技巧之缩进,选择,高亮
- MSFlexGrid使用技巧一例
- INSERT语法使用技巧一例
- MSHFlexGrid1使用技巧(三)[如何让鼠标在 MSHFlexGrid 中拖动也不允许选择多行]
- 电脑的选择、电脑使用技巧、电脑保养
- 如何使用 SendMessage 选择 ListBox、ComboBox 中的项 - 回复 "倪慧刚" 的问题
- .net中何有效的使用Cache 选择自 ThinkPig 的 Blog
- Eclipse 使用秘籍 选择自 jhxck 的 Blog
- Delphi中SendMessage使用技巧
- 移动硬盘的选择和使用技巧
- IBM SPSS Modeler使用技巧------样本数据的选择
- ASP.NET与数据库相关技巧 选择自 tongwenhuan2003 的 Blog