Самый простой способ сделать это - использовать параметр командной строки /AutoIt3ExecuteLine
, который позволяет вам запускать 1 строку кода из командной строки. В простейшем случае вы могли бы реализовать это следующим образом:
_ShowAnotherTooltip(1000, "Hello", 100, 100)
_ShowAnotherTooltip(1000, "World", 200, 200)
Func _ShowAnotherTooltip($time, $text, $x = Default, $y = Default, $title = "", $icon = Default, $options = Default)
Local $cmd = StringFormat("ToolTip(%s,%s,%s,%s,%s)", "'" & $text & "'", $x, $y, "'" & $title & "'", $icon, $options)
Run("""" & @AutoItExe & """ /AutoIt3ExecuteLine ""Sleep(" & $cmd & "*0+" & $time & ")""")
EndFunc ;==>_ShowAnotherTooltip
только реальный обман здесь получает подсказку и спать на одной линии. Сгенерированный код будет выглядеть примерно так:
Sleep(ToolTip('Hello', 100, 100, '', Default, Default)*0+1000)
В зависимости от того, насколько хорошо ваш компьютер, вы, вероятно, увидите заметную задержку между двумя подсказками, показывая. Если вы хотите иметь их все шоу в то же время, то код становится немного сложнее:
If $CmdLine[0] And $CmdLine[1] = "/ExecuteLine" Then
; This is the child script
; Wait for the window to appear
WinWait($CmdLine[2])
; Then execute the line.
Execute($CmdLine[3])
Exit
EndIf
_AddAnotherTooltip(1000, "Hello", 100, 100)
_AddAnotherTooltip(1000, "World", 200, 200)
_ShowTheTooltips()
Func _ShowTheTooltips()
GUICreate("ShowThoseTooltipsNow")
Sleep(1000)
EndFunc ;==>_ShowTheTooltips
Func _AddAnotherTooltip($time, $text, $x = Default, $y = Default, $title = "", $icon = Default, $options = Default)
Local $cmd = StringFormat("ToolTip(%s,%s,%s,%s,%s)", "'" & $text & "'", $x, $y, "'" & $title & "'", $icon, $options)
Local $iPid
If @Compiled Then
$iPid = Run("""" & @AutoItExe & """ /ExecuteLine ShowThoseTooltipsNow ""Sleep(" & $cmd & "*0+" & $time & ")""")
Else
$iPid = Run("""" & @AutoItExe & """ """ & @ScriptFullPath & """ /ExecuteLine ShowThoseTooltipsNow ""Sleep(" & $cmd & "*0+" & $time & ")""")
EndIf
ProcessWait($iPid)
EndFunc ;==>_AddAnotherTooltip
Есть лучшие методы межпроцессного взаимодействия, но это один очень просто.
Наконец, возможно, это лучший способ сделать это, используя функции GUITooltip *.
Почему бы не создать маленькие графические интерфейсы? Затем вы можете разместить их там, где вы хотите. – Xenobiologist