将具有range的内容绑定到一个键



我想将一些可变文本内容绑定到一个特定的键(例如键p)

例如:

第一次按p: ">hannes1">

第二次按p: ">hannes2">

第三次按p: ">hannes3">

以此类推。谢谢你的帮助。

如果您想要一个带有计数器的固定字符串hannes或"列表中的下一个字符串",则从您的问题中不清楚,因此我添加了两个选项(可通过pP获得)

; Global $aVars[3] = ["hannes1", "hannes2", "hannes3"]
HotKeySet("p", "_SendVarArray")
HotKeySet("P", "_sendvarCount")
While True
Sleep(25)
WEnd
Func _SendVarArray() ; write strings from an array; rotating
Local $aVars[3] = ["One", "Two", "Three"] ; define EITHER here as Local OR in main program as Global
Local Static $x = UBound($aVars) - 1 ; initial value for next line to be changed as start value '0'
$x = Mod($x + 1, UBound($aVars))
Send($aVars[$x])
EndFunc   ;==>_SendVarArray
Func _SendVarCount()
Local Static $x = 0 ;  'Static' to remember value with next execution
$x += 1
Send("hannes" & $x)
EndFunc   ;==>_SendVarCount

注意:一个普通的字母是一个坏的选择热键,因为如果一个字符串你send()包含该字母,它将激活热键功能太(我保留它,让你找到一个更好的键(组合))。

HotKeySet()的优点是你的程序可以在等待按下热键的时候做其他的事情。

试试这个:如果你想把密钥发送给任何应用程序,把ConsoleWrite改为Send。

#include <Misc.au3>
#include <MsgBoxConstants.au3>
Local $hDLL = DllOpen("user32.dll")
Local $counter = 0
While 1
If _IsPressed("50", $hDLL) Then
; Wait until key is released.
While _IsPressed("50", $hDLL)
Sleep(25)
WEnd
ConsoleWrite("Hannes" & $counter & @CRLF)
$counter +=1
ElseIf _IsPressed("1B", $hDLL) Then
MsgBox($MB_SYSTEMMODAL, "_IsPressed", "The Esc Key was pressed, therefore we will close the application.")
ExitLoop
EndIf
Sleep(25)
WEnd
DllClose($hDLL)

相关内容

  • 没有找到相关文章

最新更新