|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Запуск скомпилированного скрипта |
|
[решено] Запуск скомпилированного скрипта
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать Проблема в том, что скомпилированный скрипт запускается только через ярлык, или пункт "открыть" в контекстном меню. Если запускать сам скрипт "run script", то тоже всё ок. Суть проблемы: не могу запустить программу двойным нажатием ЛКМ. Сталкивался ли кто-нибудь?
|
|
Отправлено: 21:22, 21-11-2010 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Во-первых хотелось бы посмотреть на содержимое этого скрипта, а во-вторых, хотелось бы узнать ответ на возможно глупый вопрос: В других ситуациях двойное нажатие ЛКМ работает нормально?
|
------- Отправлено: 23:20, 21-11-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Вот сам скрипт:
#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") |
Отправлено: 09:05, 22-11-2010 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ret52:
И что именно не работает при двойном нажатий, сам скрипт запускается? проверить можно добавив в начало скрипта MsgBox(0, '', ''). Цитата ret52:
|
||
------- Отправлено: 14:49, 22-11-2010 | #4 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Я наверное запутал. Sorry. Попробую ещё раз.
Не запускается именно скомпилированный скрипт, готовый exe файл. И то, не запускается только после двойного нажатия кнопкой мыши. Если сделать ярлык на программу, и запускать через него, то всё ок. Так же, программа запускается после выбора в контекстном меню пункта "run script". |
|
Отправлено: 21:04, 22-11-2010 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ret52:
Можно exe'шник выложить, попробую у себя. P.S Ответа на вопрос «что именно не работает при двойном нажатий, сам скрипт запускается?» я так и е получил, а это важно (см. выше как проверить). |
|
------- Отправлено: 22:51, 22-11-2010 | #6 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Пункт "run script" есть в меню не скомпилированного скрипта, и он работает отлично.
... Хм... Сделал как Вы сказали: появляется пустое сообщение, затем выполняется основная часть кода. В принципе всё норм) А почему же он не хочет работать без msgbox? Такое ощущение что припервом двойном нажатии он запустился и продолжает работать... Поэтому не реагирует на дальнейшие действия.... |
Отправлено: 08:56, 23-11-2010 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ret52:
Обойти это можно примерно так: #NoTrayIcon #include <Misc.au3> #include <SysTray_UDF.au3> While _IsPressed("01") Sleep(10) WEnd $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 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 |
|
------- Отправлено: 14:31, 23-11-2010 | #8 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Спасибо огромное, действительно помогло.
|
Отправлено: 21:55, 25-11-2010 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Запуск скрипта от имени определенного пользователя | NewOLDi | AutoIt | 10 | 01-02-2010 12:33 | |
Запуск vbs-скрипта в php | Jonik-Mnimonik | Вебмастеру | 1 | 10-08-2009 11:43 | |
FreeBSD - Запуск .sh скрипта из-под apache | fantik | Общий по FreeBSD | 0 | 30-06-2009 10:28 | |
Автоматический запуск скрипта по времени | Non-Stop | Общий по Linux | 20 | 02-12-2006 15:17 | |
Запуск скрипта при подключении к сети | Neu-iskatell | Сетевые технологии | 7 | 31-10-2005 16:09 |
|