|
Компьютерный форум 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
как и следовало ожидать, piccaso предложил свой новый безDLL'ный метод... хотя он и позволяет использовать все возможности диалоговых окон (в т.ч. Explorer style) по причине нехватки времени пока тупо перегнал _FileSelectFolderOldStyle() #include <GUIConstants.au3> #include <DllCallBack.au3> Global Const $BFFM_INITIALIZED = 1 Global Const $BFFM_SETSELECTION = $WM_USER + 102 Global Const $BIF_BROWSEFORCOMPUTER = 0x1000 ; Only return computers Global Const $BIF_BROWSEFORPRINTER = 0x2000 ; Only allow the selection of printers Global Const $BIF_BROWSEINCLUDEFILES = 0x4000 ; The browse dialog box will display files as well as folders Global Const $BIF_DONTGOBELOWDOMAIN = 0x2 ; Do not include network folders below the domain level Global Const $BIF_EDITBOX = 0x10 ; Include an edit control in the browse dialog box Global Const $BIF_RETURNONLYFSDIRS = 0x1 ; Only return file system directories Global Const $BIF_ALLOLDSTYLEFLAGS = BitOR ($BIF_BROWSEFORCOMPUTER, $BIF_BROWSEFORPRINTER, $BIF_BROWSEINCLUDEFILES, $BIF_DONTGOBELOWDOMAIN, $BIF_EDITBOX, $BIF_RETURNONLYFSDIRS) ; Simple GUI for sample $hWndMain = GUICreate ("Test GUI", 200, 45, -1, -1) $Button_1 = GUICtrlCreateButton ("Select folder", 55, 10) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $Button_1 $res = _FileSelectFolderOldStyle ('Here the prompt', 0, $BIF_RETURNONLYFSDIRS, 'C:\_1', $hWndMain) MsgBox (0, "Your choise:", $res) EndSelect Wend ; Initial folder procedure Func _BrowseCallbackProc ($hWnd, $Msg, $wParam, $lParam) If $Msg = $BFFM_INITIALIZED Then $ret = DllCall ("user32.dll", "int", "SendMessage", _ "hwnd",$hWnd, "int", $BFFM_SETSELECTION, "int", 1, "ptr", $lParam ) EndIf Return 0 EndFunc ;==> _BrowseCallbackProc Func _FileSelectFolderOldStyle ($text = '', $root = 0, $flags = 0, $iniDir = '', $hwnd = 0) Local $ret, $pidl, $res = '' ; Creating Structures Local $ubi = DllStructCreate ("hwnd;ptr;ptr;ptr;int;ptr;ptr;int") ; BROWSEINFO Local $utl = DllStructCreate ("char[512],char") ; Browse text Local $urs = DllStructCreate ("char[260]") ; MAX_PATH Local $ulf = BitAnd ($flags, $BIF_ALLOLDSTYLEFLAGS) ; Supported flags ; Filling structures DllStructSetData ($utl, 1, $text) DllStructSetData ($ubi, 1, $hwnd) DllStructSetData ($ubi, 3, DllStructGetPtr($urs)) DllStructSetData ($ubi, 4, DllStructGetPtr($utl)) DllStructSetData ($ubi, 5, $ulf) If ($iniDir <> '') And ($hwnd <> 0) Then Local $udr = DllStructCreate ("char[" & StringLen ($iniDir)+1 & "]") DllStructSetData ($udr, 1, $iniDir) Local $pBrowseCallbackProc = _DllCallBack("_BrowseCallbackProc","hwnd;uint;long;ptr") ; return function pointer DllStructSetData ($ubi, 6, $pBrowseCallbackProc) DllStructSetData ($ubi, 7, DllStructGetPtr($udr)) EndIf $ret = DllCall ("shell32.dll", "ptr", "SHGetSpecialFolderLocation", _ "int", 0 , "int", $root , "ptr", DllStructGetPtr($ubi, 2) ) If $ret[0]=0 Then $pidl = DllCall ("shell32.dll", "ptr", "SHBrowseForFolder", "ptr", DllStructGetPtr ($ubi)) ; Start browse window If $pidl[0] Then $ret = DllCall ("shell32.dll", "int", "SHGetPathFromIDList", _ "ptr", $pidl[0], "ptr", DllStructGetPtr ($urs)) If $ret[0] Then $res = DllStructGetData ($urs, 1) DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", $pidl[0]) ; clear memory EndIf DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", DllStructGetData ($ubi, 2)) EndIf _DllCallBack_Free ($pBrowseCallbackProc) ; clear memory Return $res EndFunc ;==> _FileSelectFolderOldStyle |
Последний раз редактировалось amel27, 24-07-2007 в 09:45. Отправлено: 06:09, 23-07-2007 | #171 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Правда теперь выбрать другой каталог практический невозможно ![]() |
|
------- Отправлено: 22:48, 23-07-2007 | #172 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
![]() |
|
Отправлено: 02:35, 24-07-2007 | #173 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Я так понял теперь можно и стильный диалог отображать? какой флаг для этого используется? ![]() Diamond Цитата:
![]() Сегодня у меня были траблы с инетом, интернет судя по настройкам (Папка “Сетевые подключения”) был подключен, однако не одно приложение не могло получить доступ в сеть - твоя функция вернула True, подключение есть, однако используя пример от amel27, я получил совсем другой результат (соеденение отсутствует), и при этом ещё получил описание ошибки в (не)доступе к сети ![]() Так что через объект winhttp.winhttprequest.5.1 намного надёжнее и функциональнее.... хотя у меня такое подозрение, что если с Internet Explorer в системе есть проблемы, то и эта функция провалится ![]() |
||
------- Отправлено: 04:31, 24-07-2007 | #174 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
|
|
Отправлено: 07:45, 24-07-2007 | #175 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Я не знаю, может тебе уже попадалась функция от Gafrost, но там с ней тоже какие-то проблемы. Лично у меня, она вернула "пусто" когда я был в offline. |
Отправлено: 08:11, 24-07-2007 | #176 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
![]() Работает!!! Спасибо ещё раз. Правда теперь стиль $BIF_RETURNONLYFSDIRS не действует если использовать стиль нового диалога ![]() ![]() Кстати, а это нормально что при выборе системной папки (к примеру Мой компьютер), возвращается пустое значение? в оригинальной функции возвращается имя выбранного элемента (“Мой компьютер”). Цитата:
![]() |
|
------- Отправлено: 08:35, 24-07-2007 | #177 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
Отправлено: 10:03, 24-07-2007 | #178 |
Старожил Сообщения: 288
|
Профиль | Отправить PM | Цитировать Чудовищно туплю!
Надо сделать так, чтоб по нажатию клавиши, в поле вписывалась бы первая строчка текстового файла, повторное нажатие - 2 строчка, и.т.п. Вроде сделал как в хелпе описано и как мне показали ранее: Case $Proxy For $i = 1 To UBound($Proxy_Array)-1 ControlSetText ( 'Programs', '', 'Edit4', $proxy_Array[$i]) Next Туплю по страшному, не знаю как исправить... |
Отправлено: 14:46, 24-07-2007 | #179 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Как отключить монитор используя WinApi?
|
------- Отправлено: 18:35, 24-07-2007 | #180 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|