Показать полную графическую версию : [решено] Запуск скомпилированного скрипта
Проблема в том, что скомпилированный скрипт запускается только через ярлык, или пункт "открыть" в контекстном меню. Если запускать сам скрипт "run script", то тоже всё ок. Суть проблемы: не могу запустить программу двойным нажатием ЛКМ. Сталкивался ли кто-нибудь?
Во-первых хотелось бы посмотреть на содержимое этого скрипта, а во-вторых, хотелось бы узнать ответ на возможно глупый вопрос: В других ситуациях двойное нажатие ЛКМ работает нормально?
Вот сам скрипт:
#NoTrayIcon
#include <SysTray_UDF.au3>
$Pid = ProcessExists("USBGuard.exe")
If Not $Pid Then
MsgBox(16, "Error", "This process not exists")
Exit
EndIf
$Index = _SysTrayIconIndex("USBGuard.exe")
If @error Then
MsgBox(16, "Error", "This process not have tray icon")
Exit
EndIf
_SysTrayIconClick($Index, "Left")
If @error Then
MsgBox(16, "Error", "There was an error to click on the icon")
Exit
EndIf
Exit
Func _SysTrayIconClick($iIndex, $sButton="Main")
Local $TrayIcon_Pos = _SysTrayIconPos($iIndex)
If Not IsArray($TrayIcon_Pos) Then Return SetError(1, 0, 0)
Local $Old_Mouse_Pos = MouseGetPos()
MouseClick($sButton, $TrayIcon_Pos[0], $TrayIcon_Pos[1], 1, 0)
MouseMove($Old_Mouse_Pos[0], $Old_Mouse_Pos[1], 0)
EndFunc
В других ситуациях ЛКМ нормально работает (по крайней мере в простейшем "Hello world")
Вот сам скрипт »
Код нужно заключать в соответствующие теги.
И что именно не работает при двойном нажатий, сам скрипт запускается? проверить можно добавив в начало скрипта MsgBox(0, '', '').
Если запускать сам скрипт "run script", то тоже всё ок »
Вот это путает, скрипт не работает после компиляций, или это не важно?
Я наверное запутал. Sorry. Попробую ещё раз.
Не запускается именно скомпилированный скрипт, готовый exe файл. И то, не запускается только после двойного нажатия кнопкой мыши. Если сделать ярлык на программу, и запускать через него, то всё ок.
Так же, программа запускается после выбора в контекстном меню пункта "run script".
программа запускается после выбора в контекстном меню пункта "run script". »
Не понимаю, откуда в меню этот пункт если скрипт скомпилирован?
Можно exe'шник выложить, попробую у себя.
P.S
Ответа на вопрос «что именно не работает при двойном нажатий, сам скрипт запускается?» я так и е получил, а это важно (см. выше как проверить).
Пункт "run script" есть в меню не скомпилированного скрипта, и он работает отлично.
...
Хм... Сделал как Вы сказали: появляется пустое сообщение, затем выполняется основная часть кода. В принципе всё норм)
А почему же он не хочет работать без msgbox? Такое ощущение что припервом двойном нажатии он запустился и продолжает работать... Поэтому не реагирует на дальнейшие действия....
почему же он не хочет работать без msgbox? »
Видимо оно как то связано с попыткой нажатия клавишы мышки сразу после запуска.
Обойти это можно примерно так:
#NoTrayIcon (http://www.autoitscript.com/autoit3/docs/keywords.htm##notrayicon)
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <Misc.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <SysTray_UDF.au3>
While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) _IsPressed (http://dundats.mvps.org/help/html/libfunctions/_ispressed.htm)("01")
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(10)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)
$Pid = ProcessExists (http://www.autoitscript.com/autoit3/docs/functions/ProcessExists.htm)("USBGuard.exe")
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $Pid Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(16, "Error", "This process not exists")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$Index = _SysTrayIconIndex("USBGuard.exe")
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @error (http://www.autoitscript.com/autoit3/docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(16, "Error", "This process not have tray icon")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
_SysTrayIconClick($Index, "Left")
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @error (http://www.autoitscript.com/autoit3/docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(16, "Error", "There was an error to click on the icon")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _SysTrayIconClick($iIndex, $sButton = "Main")
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $TrayIcon_Pos = _SysTrayIconPos($iIndex)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) IsArray (http://www.autoitscript.com/autoit3/docs/functions/IsArray.htm)($TrayIcon_Pos) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) SetError (http://www.autoitscript.com/autoit3/docs/functions/SetError.htm)(1, 0, 0)
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $Old_Mouse_Pos = MouseGetPos (http://www.autoitscript.com/autoit3/docs/functions/MouseGetPos.htm)()
MouseClick (http://www.autoitscript.com/autoit3/docs/functions/MouseClick.htm)($sButton, $TrayIcon_Pos[0], $TrayIcon_Pos[1], 1, 0)
MouseMove (http://www.autoitscript.com/autoit3/docs/functions/MouseMove.htm)($Old_Mouse_Pos[0], $Old_Mouse_Pos[1], 0)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)
Спасибо огромное, действительно помогло.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC