Код:
#include <WinAPI.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>
#include <GuiMenu.au3>
#Include <GUIEdit.au3>
#include <Date.au3>
#include <File.au3>
#include <Array.au3>
#Include <Timers.au3>
#Include <Misc.au3>
#include <Crypt.au3>
Opt("GUIOnEventMode", 1)
Opt("TrayOnEventMode", 1)
Opt("SendAttachMode", 1)
Opt("TrayMenuMode", 3)
Opt("TrayAutoPause", 0)
Opt("WinWaitDelay", 0)
Opt("WinTextMatchMode", 2)
Opt("WinSearchChildren", 1)
Opt("SendKeyDownDelay", 50)
TraySetClick (8)
TrayCreateItem("Наша функция")
TrayItemSetOnEvent(-1, "MyFunc")
TrayCreateItem("Выход")
TrayItemSetOnEvent(-1, "_Exit")
;~ Основной цикл
While True
Sleep(50)
Wend
;~ Выйти
Func _Exit()
Exit
EndFunc
Func MyFunc()
Local $konRaw
ClipPut("")
TrayTip ("", "Скопируйте информацию в буфер обмена", 1)
sleep(2000)
TrayTip ("", "", 1)
while 1
$konRaw = ClipGet()
if StringLen($konRaw) > 10 Then ExitLoop
sleep (100)
;~ В этом месте нужно сделать так, чтобы можно было
;~ закрыть программу мышкой через кнопку TrayCreateItem("Выход")
WEnd
ConsoleWrite("Помещено в буфер:" & @CRLF & $konRaw)
EndFunc
1) При запуске скрипта создается меню в трее.
2) пользователь нажимает в этом меню кнопку "наша функция"
3) эта функция ожидает, пока пользователь скопирует в буфер обмена информацию, а потом пишет ее в консоль
Во время выполнения этой функции кнопки в меню в трее перестают работать.
Можно ли сделать так, чтобы во время работы функции ее можно было досрочно завершить (return) с помощью клика мышкой по меню, или чтобы можно было закрыть скрипт с помощью клика по элементу "Выход"?