|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36567 |
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
![]() ![]() провел вот такой эксперимент: #include <GUIConstants.au3> #include <GuiTreeView.au3> Opt("GuiOnEventMode", 1) $Gui = GUICreate("Test", 300, 200) GUISetOnEvent(-3, "OnExit") $TreeView = GUICtrlCreateTreeView(20, 20) $hTreeView= IDToHwnd($Gui, $TreeView) ; хэндл $TreeView $TV_ID1 = GUICtrlCreateTreeViewItem("Created1", $TreeView) $hItem = _GUICtrlTreeViewInsertItem($TreeView, "Inserted1") $TV_ID2 = GUICtrlCreateTreeViewItem("Created2", $TreeView) GUISetOnEvent(-3, "OnExit") GUISetState() ; отсюда видно что элемент, вставленный через _GUICtrlTreeViewInsertItem() ; не получает своего ControlID (нумерация ID сквозная) ConsoleWrite($TreeView&@CRLF) ; ControlID $TreeView ConsoleWrite($TV_ID1 &@CRLF) ; ControlID $TV_ID1 ; тут должен был быть ControlID $hItem ConsoleWrite($TV_ID2 &@CRLF) ; ControlID $TV_ID2 ; это просто хэндл $TreeView ConsoleWrite(@CRLF) ConsoleWrite('0x'&Hex($hTreeView)&@CRLF) ; видно, что Hwnd элементов TreeView не являетя Hwnd окна: ConsoleWrite(@CRLF) ConsoleWrite('0x'&Hex(IDToHwnd($Gui, 4))&@CRLF) ConsoleWrite('0x'&Hex(IDToHwnd($Gui, 5))&@CRLF) ; или даже так, один фиг: ConsoleWrite(@CRLF) ConsoleWrite('0x'&Hex(IDToHwnd($hTreeView, 4))&@CRLF) ConsoleWrite('0x'&Hex(IDToHwnd($hTreeView, 5))&@CRLF) While 1 Sleep(100) WEnd Func HwndToID($hWnd) Local $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hWnd) Return $iRet[0] EndFunc Func IDToHwnd($hWndMain, $CtrlID) Local $iRet = DllCall("user32.dll", "int", "GetDlgItem", "hwnd", $hWndMain, "int", $CtrlID) Return $iRet[0] EndFunc Func OnExit() Exit EndFunc Цитата:
Цитата:
может ограничение как раз и связано с присвоением пунктам ControlID? так глядишь и сам начну понимать кой-чего в ГУИ ![]() |
|||
Отправлено: 13:23, 28-10-2007 | #651 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
![]() Цитата:
Цитата:
![]() Цитата AutoIt3 Help:
#include <GUIConstants.au3> Opt("GuiOnEventMode", 1) $Gui = GUICreate("Test", 300, 200) GUISetOnEvent(-3, "OnExit") $TreeView = GUICtrlCreateTreeView(20, 20) GUISetState() For $i = 1 To 4100 $Item = GUICtrlCreateTreeViewItem("Item " & $i, $TreeView) If $Item Then PrintF("Created Item: " & $i) Else PrintF("Oops, we have reached the limit on Item: " & $i-1) ExitLoop EndIf Next While 1 Sleep(100) WEnd Func PrintF($Str, $Line=@ScriptLineNumber) ConsoleWrite(@LF & "+======================================================" & @LF & _ "--> Script Line (" & $Line & "):" & @LF & "!" & @TAB & $Str & @LF & _ "+======================================================") EndFunc Func OnExit() Exit EndFunc |
||||
------- Отправлено: 17:42, 28-10-2007 | #652 |
![]() Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать какая команда делает печать?
|
------- Отправлено: 11:15, 29-10-2007 | #653 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
может через GUIRegisterMsg() типа такого? #include <GUIConstants.au3> #include <A3LConstants.au3> #include <GuiTreeView.au3> Opt("GuiOnEventMode", 1) $Gui = GUICreate("Test", 300, 200) GUISetOnEvent(-3, "OnExit") $nTreeView = GUICtrlCreateTreeView(20, 20) $hTreeView = IDToHwnd($Gui, $nTreeView) $nTV1_ID = _GUICtrlTreeViewInsertItem($nTreeView,"Inserted1") $nTV2_ID = _GUICtrlTreeViewInsertItem($nTreeView,"Inserted2") GUIRegisterMsg ($WM_NOTIFY, "TV_Event") GUISetState() While 1 Sleep(100) WEnd Func TV_Event($hWnd, $Msg, $wParam, $lParam) If $Msg = $WM_NOTIFY Then Local $NMHDR = DllStructCreate("hwnd;uint;short", $lParam) If DllStructGetData($NMHDR, 1)=$hTreeView And DllStructGetData($NMHDR,3)=-451 Then ConsoleWrite(_GUICtrlTreeViewGetTree($nTreeView,'\')&@CRLF) EndIf EndIf Return $GUI_RUNDEFMSG EndFunc Func OnExit() Exit EndFunc Func HwndToID($hControlID) $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hControlID) Return $iRet[0] EndFunc Func IDToHwnd($hWnd, $CtrlID) $iRet = DllCall("user32.dll", "int", "GetDlgItem", "hwnd", $hWnd, "int", $CtrlID) Return $iRet[0] EndFunc ![]() |
Отправлено: 12:44, 29-10-2007 | #654 |
Пользователь Сообщения: 141
|
Профиль | Отправить PM | Цитировать как передать строку?
вобщем есть вот это: $file = FileOpen("c:\1.txt", 0) $line = FileReadLine($file) If @error = -1 Then ExitLoop Run ("notepad.exe") WinWait("Untitled - Notepad","") If Not WinActive("Untitled - Notepad","") Then WinActivate("Untitled - Notepad","") WinWaitActive("Untitled - Notepad","") Send(GUICtrlRead($line)) но в нотпаде пишет НОЛЬ вместо определенного ключа . есть ли возможность вставить этот ключ в окно программы желательно посимвольно через SEND т.к. 4 окна. и еше хотелось бы удалять использованный ключ |
Отправлено: 15:53, 29-10-2007 | #655 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:57, 29-10-2007 | #656 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать TERMINAL,
Цитата:
amel27, Цитата:
Спасибо! P.S Функция IDToHwnd() не обязательна в этом случае, можно просто использовать GUICtrlGetHandle($nTreeView) ![]() |
||
------- Отправлено: 22:04, 29-10-2007 | #657 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
![]() первая по сути тот же ShellExecute(), а вторая специально для печати документов MS Word, пример: #include <Word.au3> $sDocPath = @ScriptDir & "\Test.doc" ; путь к документу Word $oWordApp = _WordCreate ("") ; создаем объект MS Word $oDoc = _WordDocOpen ($oWordApp, $sDocPath) ; открываем существующий файл _WordDocPrint ($oDoc) ; печатаем документ _WordQuit ($oWordApp, 0) ; закрываем окно и освобождаем объект $b_Background - ожидать или нет завершения печати; $i_Copies - количество экземпляров; $i_Orientation - ориентация страницы (книга/альбом); $b_Collate - разобрать по копиям; $s_Printer - выбор принтера (имя); $i_Range - выбор страниц для печати; $i_From - с какой страницы (для $i_Range=3); $i_To - по какую страницу печатать (для $i_Range=3); $s_Pages - список страниц через запятую (для $i_Range=4); $i_PageType - все/четные/нечетные; $i_Item - печать дополнительных элементов. Цитата:
|
||
Отправлено: 04:09, 30-10-2007 | #658 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
|
|
------- Отправлено: 05:49, 30-10-2007 | #659 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Добрый вечер.
Вот есть 2 вопроса: 1 Как сделать чтобы можно было скомпилированому файлу автоита передавать даные через ключи, например так: или так ? 2 Как сделать так чтобы результат выполнения например функции ProcessList(выводит массив со списком процесов) выдавался в командную строку windows? |
Отправлено: 22:22, 31-10-2007 | #660 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|