`
cjc
  • 浏览: 673638 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sendkeys 和 Sendmessage 使用技巧一例

阅读更多

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                              

 

分享到:
评论

相关推荐

    模拟VB的SendKeys函数

    本文将详细介绍如何使用Visual Basic (VB) 编写一个函数来模拟`SendKeys`功能,该函数能够向当前活动窗口发送指定的文本字符串,模拟用户键盘输入。 #### 关键知识点 1. **Windows消息机制**:在Windows操作系统中...

    Delphi中SendMessage使用技巧.txt

    ### Delphi中SendMessage使用技巧详解 #### SendMessage简介与应用场景 `SendMessage`是Windows API中的一个核心函数,在Delphi中被广泛使用。它主要用于向指定窗口发送一条消息,并等待该消息处理完毕。`...

    MFC SendMessage 使用方法举例

    首先定义一个消息ID,如`WM_MY_CUSTOM_MSG`,然后使用`SendMessage`向目标窗口发送这个自定义消息。例如: ```cpp #define WM_MY_CUSTOM_MSG (WM_USER + 100) // 发送自定义消息 HWND hWnd = GetDlgItem(IDC_EDIT1...

    SendMessage函数完全使用手册|推荐代码

    总的来说,`SendMessage`函数是Windows编程中的一个基础工具,对于理解和实现各种窗口间的通信至关重要。无论是简单的网络编程任务,还是复杂的局域网应用,甚至是优化用户界面的交互,`SendMessage`都有其独特的...

    C#中使用SendMessage在进程间传递数据的实例

    `SendMessage`是Windows API中的一个函数,它允许一个窗口向另一个窗口发送消息,即使这两个窗口属于不同的进程。这个功能在C#中通常通过P/Invoke(Platform Invoke)来调用,这是一种.NET框架提供的特性,用于调用...

    SendMessage函数完全使用手册

    了解和熟练使用SendMessage函数对于Windows应用程序的开发至关重要,它可以帮助我们实现丰富的用户交互和窗口间的通信。在实际编程中,应根据具体需求选择合适的消息传递方式,以确保程序的稳定性和效率。通过深入...

    C#使用SendMessage实现进程间通信的方法

    本文实例讲述了C#使用SendMessage实现进程间通信的方法。分享给大家供大家参考。具体分析如下: 为了深入理解消息机制,先来做一个测试项目 在新建项目的Form1的代码中,加入方法: protected override void ...

    QT 中使用 Windows API----SendMessage() 进行窗体间消息传递

    3. **调用`SendMessage()`**:使用上面获取的句柄和构造的消息,调用`SendMessage()`函数。 ```cpp SendMessage(targetWnd, MY_CUSTOM_MESSAGE, wParam, lParam); ``` 4. **接收消息**:在目标窗口的`...

    PostMessage和SendMessage的区别

    在探讨《PostMessage和SendMessage的区别》这一主题时,我们深入分析了两种消息发送机制的特点、应用场景以及它们在多线程环境中的行为差异。通过详细解释PostMessage与SendMessage的工作原理,我们可以更好地理解这...

    C# Winform中使用SendMessage消息发送拦截

    在提供的案例"WindowsFormsApp1"中,可能包含了一个简单的Winform应用,该应用展示了如何使用`SendMessage`发送消息,并通过`WndProc`来拦截和处理这些消息。通过分析这个案例的源代码,我们可以学习到如何在实际...

    使用SendMessage实现进程之间的通信

    其中,`SendMessage`函数是Windows API提供的一种消息传递机制,它允许一个进程向另一个进程发送消息,从而实现进程间的通信。本文将深入探讨如何使用`SendMessage`以及它在IPC中的应用。 `SendMessage`函数的基本...

    WIN8下pb通过sendmessage控制外部程序

    该程序支持消息传递,控制外部其他软件和程序的测试使用,系统从网络上借了一段递归遍历窗口句柄的代码 经过测试PB完全支持WIN8下的开发,PB自带的send函数封装了API的sendmessage函数,因此在WIN8下因为提高了系统...

    PB开发工具下SendMessage函数完全使用手册

    PB开发工具下SendMessage函数完全使用手册 SendMessage 函数是 Windows 消息机制中的一部分,用于发送消息给窗口。该函数的完整形式为: Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal...

    sendMessage实现按键盘

    通常,这样的博客文章可能会详细解释如何使用`SendMessage`函数来发送键盘消息,包括所需的参数设置,以及如何构建和传递键盘消息结构,如`INPUT`结构体。 在Windows API中,模拟键盘输入通常涉及以下步骤: 1. ...

    发送与接收消息(sendmessage)

    在Windows编程中,`SendMessage`函数是一个非常关键的API,用于在进程间或者同一进程内的窗口之间发送消息。本文将详细解析标题“发送与接收消息(sendmessage)”所涉及的知识点,以及如何通过`FindWindow`找到窗口...

    sendkey 与 sendmessage_sendmessage_sendkey_vb6_

    在VB6(Visual Basic 6)编程环境中,`SendKey` 和 `SendMessage` 是两个用于与应用程序进行交互的重要函数,它们各自有特定的用途和特点。这篇内容将深入解析这两个函数的区别以及如何在实际开发中应用。 `SendKey...

    Delphi SendMessage

    在Delphi编程环境中,`SendMessage`函数是一个非常重要的API函数,它属于Windows API的一部分,...通过学习和实践"Delphi SendMessage Demo"中的例子,开发者可以提升自己的编程技巧,更好地应对复杂的系统级交互需求。

    使用SendMessage函数滚动编辑框控件中的内容

    本文将深入探讨如何使用`SendMessage`函数来实现这一功能。 `SendMessage`是Windows API提供的一个关键函数,它允许程序向指定窗口发送特定的消息,从而执行相应的操作。这个函数在易语言中也被广泛使用,以实现对...

    unity 导入 android studio,使用UnitySendMessage互传消息 源码

    理解`UnitySendMessage`的工作原理和使用方法,对于开发Unity和Android原生混合应用来说至关重要。在实践中,你可能会遇到各种挑战,但只要掌握好这些基础,就能灵活应对,创造出更多创新的解决方案。

    C# 程序间通信(SendMessage方式)

    开发者可以通过调试和运行此示例,了解如何在C#程序中使用`SendMessage`进行窗口间的通信。 在实际应用中,`SendMessage`不仅限于简单的文本或数值传递,还可以用于复杂的交互,比如控制其他应用程序的组件,或者...

Global site tag (gtag.js) - Google Analytics