![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36572 |
Внимание! В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема. Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно ![]() ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску) (он же прикреплен в шапке) Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
![]() Старожил Сообщения: 232
|
Профиль | Сайт | Отправить PM | Цитировать Включил адресную строку и всё заработало.
|
------- Отправлено: 14:00, 04-01-2009 | #1411 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Вообщем вот ещё одна версия, если путь не найден, путь определяется методом создания временного файла с использованием буфера обмена. Есть также метод где происходит откат адресной строки, для этого нужно установить 1 у переменной $iGet_Path_Method. Так или иначе, оба метода не самые надёжные
![]() ![]() * Также добавил поддержку очерёдности запуска функции - По идее, если нажимать заветные горячие клавиши несколько раз подряд, то папки будут создаваться по очерёдно, в логе будет это записано (попытка двойного вызова, и запись с очереди). #NoTrayIcon #include <File.au3> #include <Misc.au3> _Singleton("_CreateFolder_Proc") Opt("WinWaitDelay", 1) Global $i_CreateFolder_Proc_IsRuning = False Global $iQueue_Calls = 0 Global $iDebug = True Global $sDebug_LogFile = @ScriptDir & "\DebugLog.log" Global $iGet_Path_Method = -1 Global $sFileNameFormat = "New_%i" HotKeySet("^+n", "_CreateFolder_Proc") ;Ctrl + Shift + n HotKeySet("^+т", "_CreateFolder_Proc") ;Ctrl + Shift + n HotKeySet("^+w", "_Quit") ;Ctrl + Shift + w HotKeySet("^+ц", "_Quit") ;Ctrl + Shift + w OnAutoItStart_Init() While 1 Sleep(1000) If $iQueue_Calls > 0 Then For $i = 1 To $iQueue_Calls _CreateFolder_Proc($i) Next EndIf WEnd Func _CreateFolder_Proc($iQueue_Call=0) If $i_CreateFolder_Proc_IsRuning Then $iQueue_Calls += 1 Return _DebugToLog_Proc("_CreateFolder_Proc Call: ### Double Call Try... Added to the Queue (#" & $iQueue_Calls & ").") EndIf $i_CreateFolder_Proc_IsRuning = True Local $s_CreateFolder_Proc_DebugData = "_CreateFolder_Proc Call: Called by HotKey(" & @HotKeyPressed & ")" If IsDeclared("iQueue_Call") And $iQueue_Call > 0 Then $s_CreateFolder_Proc_DebugData &= " ==> Queue Call #" & $iQueue_Call $iQueue_Calls -= 1 EndIf _DebugToLog_Proc($s_CreateFolder_Proc_DebugData & ".") Local $sExplorer_Title = "[CLASS:CabinetWClass]" Local $sPath, $iFolder_Created = 0 If Not WinActive($sExplorer_Title) Then $sExplorer_Title = "[CLASS:ExploreWClass]" If Not WinActive($sExplorer_Title) Then $sExplorer_Title = "[CLASS:Progman]" If Not WinActive($sExplorer_Title) Then $i_CreateFolder_Proc_IsRuning = False Return _DebugToLog_Proc("_CreateFolder_Proc Call: Dir creation is not possible in currently active window: " & _ WinGetTitle("[ACTIVE]") & @CRLF) EndIf Switch $sExplorer_Title Case "[CLASS:CabinetWClass]", "[CLASS:ExploreWClass]" Local $sWin_Title = WinGetTitle($sExplorer_Title) Local $sWin_Text = WinGetText($sExplorer_Title) $sPath = StringRegExpReplace($sWin_Text, "(?s).*(\r\n|)(\w+:\\.*" & $sWin_Title & ")(\r\n|.*)", "\2") Case "[CLASS:Progman]" $sPath = @DesktopDir Case Else $i_CreateFolder_Proc_IsRuning = False Return _DebugToLog_Proc( _ "_CreateFolder_Proc Call: " & _ "Unexpected error (can not get window class name, perhaps a memory unavailable)." & @CRLF) EndSwitch _DebugToLog_Proc("_CreateFolder_Proc Call: Found active window with following Class Name: " & $sExplorer_Title) _DebugToLog_Proc("_CreateFolder_Proc Call: And with the following Title: " & WinGetTitle($sExplorer_Title)) If Not StringInStr(FileGetAttrib($sPath), "D") Then $sPath = ControlGetText($sExplorer_Title, "", "Edit1") If Not StringInStr(FileGetAttrib($sPath), "D") Then _DebugToLog_Proc("_CreateFolder_Proc Call: Path for creating folder was not found... ") _DebugToLog_Proc("_CreateFolder_Proc Call: Trying to get path in a hard way :)... (MODE: " & $iGet_Path_Method & ")") Switch $iGet_Path_Method Case 1 ControlSend($sExplorer_Title, "", "ToolbarWindow322", "!в{Right}{Down}{Enter}") Sleep(200) $sPath = ControlGetText($sExplorer_Title, "", "Edit1") ControlSend($sExplorer_Title, "", "ToolbarWindow322", "!в{Right}{Down}{Enter}") Case Else Local $sTmp_File = _TempFile(@TempDir, "~__Au3_DirCreate_Tmp_Module__") Local $sTmp_FileName = StringRegExpReplace($sTmp_File, "^.*\\|\.[^\.]*$", "") Local $hOpenFile = FileClose(FileOpen($sTmp_File, 2)) _ClipPutFile($sTmp_File) If @error Then _DebugToLog_Proc("_CreateFolder_Proc Call: _ClipPutFile Failed.") ControlSend($sExplorer_Title, "", "SysListView321", "+{Insert}") Sleep(500) $iItem = ControlListView($sExplorer_Title, "", "SysListView321", "FindItem", $sTmp_FileName) ControlListView($sExplorer_Title, "", "SysListView321", "SelectClear") ControlListView($sExplorer_Title, "", "SysListView321", "Select", $iItem, $iItem) Sleep(200) ControlSend($sExplorer_Title, "", "SysListView321", "^{Insert}") Sleep(500) $sPath = ClipGet() If @error Then _DebugToLog_Proc("_CreateFolder_Proc Call: ClipGet() Failed (ERROR: " & @error & ").") If StringInStr($sPath, @CRLF) Then _ $sPath = StringLeft($sPath, StringInStr($sPath, @CRLF)-1) $sPath = StringLeft($sPath, StringInStr($sPath, "\", 0, -1)-1) FileDelete($sPath & "\" & $sTmp_FileName & ".tmp") FileDelete($sTmp_File) EndSwitch If Not StringInStr(FileGetAttrib($sPath), "D") Then $i_CreateFolder_Proc_IsRuning = False Return _DebugToLog_Proc("_CreateFolder_Proc Call: Path for creating folder was not found: " & $sPath) EndIf EndIf _DebugToLog_Proc("_CreateFolder_Proc Call: Detected path for creating folder in: " & $sPath) Local $iFolder_Num = 1 Local $sNewFolderName = StringFormat($sFileNameFormat, $iFolder_Num) While StringInStr(FileGetAttrib($sPath & "\" & $sNewFolderName), "D") $iFolder_Num += 1 $sNewFolderName = StringFormat($sFileNameFormat, $iFolder_Num) WEnd _DebugToLog_Proc("_CreateFolder_Proc Call: Creating folder with the following name: " & $sNewFolderName & "...") $iFolder_Created = DirCreate($sPath & "\" & $sNewFolderName) _DebugToLog_Proc("_CreateFolder_Proc Call: Folder created(?): " & ($iFolder_Created = 1) & @CRLF) $i_CreateFolder_Proc_IsRuning = False EndFunc ;==>_CreateFolder_Proc Func _DebugToLog_Proc($sDebug_Info) If Not $iDebug Then Return _FileWriteLogEx($sDebug_LogFile, $sDebug_Info & @CRLF) EndFunc ;==>_DebugToLog_Proc Func _FileWriteLogEx($sLogPath, $sLogMsg, $iFlag = -1) Local $sDateNow, $sTimeNow, $sMsg, $iWriteFile, $hOpenFile, $iOpenMode = 1 $sDateNow = @YEAR & "-" & @MON & "-" & @MDAY $sTimeNow = @HOUR & ":" & @MIN & ":" & @SEC $sMsg = $sDateNow & " " & $sTimeNow & ">> " & $sLogMsg If $iFlag <> -1 Then $sMsg &= FileRead($sLogPath) $iOpenMode = 2 EndIf $hOpenFile = FileOpen($sLogPath, $iOpenMode) If $hOpenFile = -1 Then Return SetError(1, 0, 0) $iWriteFile = FileWriteLine($hOpenFile, $sMsg) If $iWriteFile = -1 Then Return SetError(2, 0, 0) Return FileClose($hOpenFile) EndFunc ;==>_FileWriteLogEx Func _Quit() Exit EndFunc ;==>_Quit Func OnAutoItStart_Init() If $iDebug Then If FileRead($sDebug_LogFile) <> "" Then _FileWriteLogEx($sDebug_LogFile, _ StringFormat("============ Debug Log For [%s] Started ============\r\n\r\n...\r\n\r\n", @ScriptName)) Else _FileWriteLogEx($sDebug_LogFile, StringFormat("============ Debug Log For [%s] Started...", @ScriptName)) _FileWriteLogEx($sDebug_LogFile, StringFormat("============ Operating System: %s\r\n", @OSVersion)) _FileWriteLogEx($sDebug_LogFile, StringFormat("============ Service Pack: %s\r\n", @OSServicePack)) _FileWriteLogEx($sDebug_LogFile, _ StringFormat("============ File System: %s ============\r\n\r\n...\r\n\r\n", DriveGetFileSystem(@HomeDrive))) EndIf EndIf EndFunc ;==>OnAutoItStart_Init Func OnAutoItExit() If $iDebug Then _FileWriteLogEx($sDebug_LogFile, _ StringFormat("============ Debug Log Finished (EXIT CODE: %i) ============\r\n\r\n\r\n", @ScriptName, @exitCode)) $iOpen_LogFile = MsgBox(36, @ScriptName & " - Attention", "Open Debug Log File?" & @CRLF & @CRLF & $sDebug_LogFile) If $iOpen_LogFile = 6 Then ShellExecute($sDebug_LogFile, "", "", "Open", @SW_SHOWNORMAL) EndIf EndFunc ;==>OnAutoItExit |
------- Последний раз редактировалось Creat0R, 05-01-2009 в 22:02. Отправлено: 15:50, 04-01-2009 | #1412 |
Пользователь Сообщения: 57
|
Профиль | Отправить PM | Цитировать Цитата Maza Faka:
![]() |
|
Отправлено: 18:42, 04-01-2009 | #1413 |
Ветеран Сообщения: 916
|
Профиль | Отправить PM | Цитировать Ребят, прошу помощи по следующему вопросу, я уже как-то постил подобное, но вот сегодня решил всё же решить, если это решаемо.
Есть окно с вот таким заголовком: ![]() Нужно его свернуть, но только что бы скрипт например отработал после своего запуска через определённое количество секунд, например 5. Можно попросить кого-нить, если не затруднит написать скриптик подобный, если достаточно того, что я предоставил, т.е. заголовок содержит SoulSeek? Заранее благодарен. |
------- Отправлено: 01:44, 05-01-2009 | #1414 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата SAOPP:
|
|
------- Отправлено: 01:50, 05-01-2009 | #1415 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать _Test() If @error Then MsgBox(0, "", "::: ERROR :::") Func _Test() $AnswTest = MsgBox(4, "TEST", "Test Passed?") If $AnswTest = 7 Then ; NO (Test Failed) $Answ = MsgBox(21, "Error", "Communication ERROR") Select Case $Answ = 4 ;Retry _Test() Case $Answ = 2 ;Cancel ;~ ConsoleWrite($Answ & @LF) Return SetError(1) EndSelect EndIf ConsoleWrite(@error & @LF) ConsoleWrite("Test Passed" & @LF) Return EndFunc ;==>_Test мужики,помогите Есть рекурсия , она вызывает сому себя .А когда выходит закрывает себя столко раз сколко открыла себя Вопрос : как сделат так ,что бы Return SetError(1) деиствително возврощал "1" после закритии рекурсии Да же если она откривалась несколко раз |
Отправлено: 11:22, 05-01-2009 | #1416 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата shyra1976:
_Test() If @error Then MsgBox(0, "", "::: ERROR :::") Func _Test() $AnswTest = MsgBox(4, "TEST", "Test Passed?") If $AnswTest = 7 Then ; NO (Test Failed) $Answ = MsgBox(21, "Error", "Communication ERROR") Select Case $Answ = 4 ;Retry _Test() Return SetError(@error) Case $Answ = 2 ;Cancel ;~ ConsoleWrite($Answ & @LF) Return SetError(1) EndSelect EndIf ConsoleWrite(@error & @LF) ConsoleWrite("Test Passed" & @LF) Return EndFunc ;==>_Test _Test() If @error Then MsgBox(0, "", "::: ERROR :::") Func _Test() While 1 $AnswTest = MsgBox(4, "TEST", "Test Passed?") If $AnswTest = 7 Then ; NO (Test Failed) $Answ = MsgBox(21, "Error", "Communication ERROR") Switch $Answ Case 4 ;Retry ContinueLoop Case 2 ;Cancel Return SetError(1) EndSwitch EndIf ExitLoop WEnd ConsoleWrite(@error & @LF) ConsoleWrite("Test Passed" & @LF) EndFunc ;==>_Test ![]() |
|
------- Последний раз редактировалось Creat0R, 05-01-2009 в 13:46. Отправлено: 12:27, 05-01-2009 | #1417 |
Ветеран Сообщения: 916
|
Профиль | Отправить PM | Цитировать Creat0R, а можно что бы после завершения своих действий, скрипт закрывался?
И ещё, можно ли сделать так, что бы скрипт кликал мышкой на кнопочку свернуть, поскольку текущие параметры не сворачивают SS в трей, он по прежнему ложится на панель задач, т.е. собственно, что я и пытаюсь решить ![]() |
------- Отправлено: 13:35, 05-01-2009 | #1418 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать Creat0R,
спасибо тебе ,и здоровья бычьего ,что бы мог дальше отвечат на наши вопроси |
Отправлено: 13:38, 05-01-2009 | #1419 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата SAOPP:
![]() Цитата SAOPP:
![]() |
||
------- Отправлено: 14:25, 05-01-2009 | #1420 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ | FOX RED | Защита компьютерных систем | 67 | 21-11-2007 15:05 | |
[Архив - Часть 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 |
|