把以上代码改成符合如下要求:按键精灵怎么逐⾏读取⽂本第一行,然后剪切粘贴?

文档路径 = "C:\demo.txt"'设置文档路径
Text = Plugin.File.ReadFileEx(文档路径)
str = Split(Text, "|")
MessageBox "关闭本弹窗后,鼠标移动要输出的窗口.然后按任意键确定"
key = WaitKey()
Hwnd = Plugin.Window.MousePoint()
MessageBox"后台输出窗口已经确定"& vbCrLf & "每次按 Ctrl 可以输出一行内容到后台窗口"
For i = 0 To UBound(str) - 1
    Do
        key = WaitKey()
        If key = 17 Then Exit Do
    Loop
    TracePrint "第 " & i+1 &" 行内容为:"& Cstr(str(i))
    Call Plugin.Window.SendString(Hwnd, Cstr(str(i)) & vbCr)
    Delay 10
Next
把以上代码改成符合如下要求:
按键精灵怎么逐⾏读取⽂本第一行,然后复制粘贴,⽐如说我有⼀个TXT⽂档,⾥⾯有很多组数字。
6900464910867
6900464950047
6900464910867
6900464950047
怎样依次复制第⼀⾏数字并且复制到固定位置的目标⽂本框中并回车,如此循环。
可以稍微改下吗,第一次时提示用鼠标点一下输入框,然后在输入框中输入并回车,如此循环直到清空文本内容为止。

以下是按键精灵脚本的修改版本,满足你的要求。这个脚本会逐行读取文本文件的每一行,然后将每行的内容复制到指定的目标文本框,并按回车键。首次运行时,它会提示你用鼠标点击一次输入框,然后自动执行后续的复制粘贴操作,直到文本内容为空。
文档路径 = "C:\demo.txt" ' 设置文档路径
Text = Plugin.File.ReadFileEx(文档路径)
str = Split(Text, vbCrLf) ' 使用换行符分割文本
MessageBox "首次运行前,请用鼠标点击一次输入框,然后关闭本弹窗。"
' 逐行复制并粘贴
For i = 0 To UBound(str)
' 复制当前行
Plugin.Keyboard.Keys str(i)
Plugin.Keyboard.Keys "^c" ' 复制
Delay 100
' 点击鼠标到目标输入框
Plugin.Mouse.MoveTo 100, 100 ' 这里填写目标输入框的坐标
Plugin.Mouse.LeftClick
' 粘贴并按回车
Plugin.Keyboard.Keys "^v" ' 粘贴
Plugin.Keyboard.Keys "~" ' 回车
Delay 100
' 检查是否到达文本末尾
If i < UBound(str) Then
' 下一行
Plugin.Keyboard.Keys "{DOWN}"
End If
Next
在这个脚本中,首次运行时会弹出一个消息框,提示你用鼠标点击一次目标输入框,然后你可以关闭消息框。接下来,脚本将逐行读取文本文件并复制每一行的内容,然后粘贴到目标输入框,并按回车键。脚本会自动执行,直到文本内容为空。追问

请问为什么都有无法识别的语句,按键精灵是最新版的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-10-21
按键精灵中的文本读取和复制粘贴功能可以通过以下代码实现。需要注意的是,这里假设要粘贴的目标文本框是通过鼠标点选确定的。
vbscript
文档路径 = "C:\demo.txt" '设置文档路径
Text = Plugin.File.ReadFileEx(文档路径)
str = Split(Text, vbCrLf) '按行切割文本

MessageBox "第一次运行请确保鼠标点击了输入框,然后按确定继续。"

For i = 0 To UBound(str)
Do
key = WaitKey()
If key = 17 Then Exit Do '按下Ctrl键退出
Loop

' 获取剪切板内容
Plugin.Clipboard.SetClipboardText(str(i))
' 发送Ctrl+V粘贴
Plugin.SendKeys "^v"
' 发送回车
Plugin.SendKeys "{ENTER}"

Delay 10 ' 延迟一段时间等待下一次操作
Next

MessageBox "已完成所有文本的复制粘贴操作。"

在这个版本中,我们首先按行分割了文本,然后循环每一行文本。在循环内部,我们使用按键精灵的剪切板功能将文本复制到剪切板,然后发送Ctrl+V粘贴到目标文本框,最后发送回车确认输入。追问

请问为什么都有无法识别的语句,按键精灵是最新版的。

第2个回答  2023-10-20
以下是按照您的要求修改的代码,这段代码会逐行读取文本文件中的内容,并将每一行的内容依次复制到目标文本框中:
```vbs
'设置文档路径和目标窗口句柄
文档路径 = "C:\demo.txt"
目标窗口句柄 = "00000000" '请替换为您的目标窗口句柄
'读取文本文件内容并逐行处理
Text = Plugin.File.ReadFileEx(文档路径)
str = Split(Text, vbCrLf)
For i = 0 To UBound(str) - 1
'复制当前行内容
Call Plugin.Window.SendString(目标窗口句柄, str(i) & vbCr)
'模拟回车键
key = WaitKey()
Next
```
这段代码做了以下修改:
1. 删除了弹窗和鼠标相关的代码,因为您的要求中并未提及这些操作。
2. 将文档路径设置为变量,方便后续修改。
3. 使用 `Split` 函数以换行符 `vbCrLf` 分割文本内容,得到每行的字符串数组 `str`。
4. 在循环中,使用 `Plugin.Window.SendString` 方法将当前行内容复制到目标窗口,并添加了换行符 `vbCr`,以便在目标窗口中换行。
5. 在循环中,使用 `WaitKey` 方法模拟回车键的操作,以便将复制的内容粘贴到目标窗口。
请注意,这段代码中并未包含模拟鼠标点击的操作,因为您的要求中提到了“在输入框中输入并回车”,所以这里只做了文本复制和粘贴的操作。如果您需要模拟鼠标点击,请在代码中添加相应的操作。另外,请确保替换目标窗口句柄为您实际使用的窗口句柄。追问

请问为什么都有无法识别的语句,按键精灵是最新版的。

第3个回答  2023-10-19
按键精灵可以用于自动化复制文本行并粘贴到指定位置,以下是一个示例脚本,它会提示用户点击一次输入框,然后自动复制并粘贴文本,直到输入框内容为空为止:
TextToCopy = Plugin.File.ReadFileEx("C:\YourFilePath\YourFile.txt") ' 读取文本文件内容
Lines = Split(TextToCopy, vbNewLine) ' 按行分割文本
' 提示用户点击一次输入框
MessageBox "请点击一次目标输入框,然后按确定开始复制和粘贴。"
' 等待用户点击目标输入框
WaitMouse(1)
' 遍历文本行
For Each Line In Lines
' 复制当前行文本到剪贴板
Clipboard.SetText(Line)
' 粘贴文本到目标输入框
PressCtrlV() ' 模拟按下Ctrl+V
Delay(100) ' 等待一段时间以确保文本粘贴完成
' 模拟按下回车键
PressEnter()
Delay(100) ' 等待一段时间以确保回车键被处理
' 检查输入框是否为空,如果为空则退出循环
If InputBoxIsEmpty() Then
Exit For
End If
Next
' 定义检查输入框是否为空的函数
Function InputBoxIsEmpty()
' 通过快捷键Ctrl+A选中输入框内容
PressCtrlA() ' 模拟按下Ctrl+A
PressCtrlC() ' 模拟按下Ctrl+C
' 将剪贴板内容粘贴到变量
CopiedText = Clipboard.GetText()
' 检查剪贴板内容是否为空
If CopiedText = "" Then
InputBoxIsEmpty = True
Else
InputBoxIsEmpty = False
End If
End Function
这个脚本首先读取文本文件的内容,然后逐行复制并粘贴到目标输入框,循环直到输入框内容为空。请将 "C:\YourFilePath\YourFile.txt" 替换为实际的文件路径。脚本中的其他键盘模拟函数(例如 PressCtrlV(),PressEnter(),PressCtrlA(),PressCtrlC(),以及 WaitMouse())应根据您的按键精灵版本和实际情况进行适当的配置和调整。
第4个回答  2023-12-13
按键精灵的代码可以按照您的要求进行修改。以下是一个可能的实现方式:
文档路径 = "C:\demo.txt"

' 打开文档并读取第一行
Text = Plugin.File.ReadFileEx(文档路径)
str = Split(Text, vbCrLf)

' 循环读取每一行并复制粘贴
For i = 0 To UBound(str) - 1
' 提示用户用鼠标点一下输入框
Plugin.Window.MouseClick("目标文本框的句柄")
' 在输入框中输入一行内容并回车
Plugin.Window.SendKeys("{Tab}") ' 切换到输入框
Plugin.Window.SendKeys(str(i)) ' 输入数字
Plugin.Window.SendKeys("{Enter}") ' 回车
Delay 10 ' 延迟10毫秒
Next

' 清空文本内容
Plugin.Window.MouseClick("目标文本框的句柄")
Plugin.Window.SendKeys("{Tab}") ' 切换到输入框
Plugin.Window.SendKeys("{Delete}") ' 清空输入框
请注意,您需要将"目标文本框的句柄"替换为您实际要操作的目标文本框的句柄。您可以使用按键精灵的Plugin.Window.Find函数来获取目标文本框的句柄。例如,如果目标文本框的标题是"文本框",则可以使用以下代码获取其句柄:
文本框句柄 = Plugin.Window.Find("文本框", "目标文本框的标题")
然后,您可以将"目标文本框的句柄"替换为实际的文本框句柄。
相似回答