|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36560 |
Внимание! В связи с созданием отдельного форума по 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 |
![]() Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Creat0R, спасибо за ответ. Деинсталлятор мой действительно простой, а то, что предложили Вы - это де инсталлятор как программа, а я говрю о Uninstall для какой-то конкретной программы.
|
Отправлено: 18:09, 21-02-2008 | #161 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Вот так делаются Setup'ы:
$installpath = InputBox("Установка", "Введите путь установки.", @ProgramFilesDir & "\Example", "") if $installpath = '' then Exit if @error = 1 then Exit DirCreate($installpath) FileCopy(@ScriptDir & "\example.txt", $installpath & "\example.txt") FileCopy(@ScriptDir & "\Uninst.exe", $installpath & "\Uninst.exe") MsgBox(4160, "Установка", "Установка успешно завершена!") ; Write a single REG_SZ value RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Example", "DisplayName", "REG_SZ", "Example v1.00") RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Example", "UninstallString", "REG_SZ", $installpath & "\Uninst.exe") $installpath = InputBox("Установка", "Введите путь установки.", @ProgramFilesDir & "\Example", "") if $installpath = '' then Exit if @error = 1 then Exit DirCreate($installpath) FileCopy(@ScriptDir & "\example.txt", $installpath & "\example.txt") FileCopy(@ScriptDir & "\Uninst.exe", $installpath & "\Uninst.exe") MsgBox(4160, "Установка", "Установка успешно завершена!") ; Write a single REG_SZ value RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Example", "DisplayName", "REG_SZ", "Example v1.00") RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Example", "UninstallString", "REG_SZ", $installpath & "\Uninst.exe") Давно искал инструмент типа AutoIt'а. Bat-файлы обладают малой функциональстью, малым средства для создания пользовательского интерфейса, VBS-скрипты сложны в освоений. AutoIt - классная вещь! ![]() ![]() ![]() ![]() ![]() |
Отправлено: 18:30, 21-02-2008 | #162 |
![]() Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:51, 21-02-2008 | #163 |
![]() Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Creat0R, да, классный деинсталлятор. Замена всяким платным Best Uninstaller'ам и прочим.
Только одного смущает - нет кнопки для запуска изменения программы. И самое главное, чем меня НЕ устроили батники: плохая поддержка русского языка |
Отправлено: 19:40, 21-02-2008 | #164 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Котяра
Цитата Котяра:
|
|
------- Отправлено: 10:02, 22-02-2008 | #165 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Подскажите
![]() ![]() Всю справку облазил - по свойствам диска и по консольным командам вообще ничего не нашёл, а по поводу кнопки - в команде ControlClick в качестве параметров указываю текст заголовка окна, текст на кнопке, classnameNN (эти данные взял с помощью утилиты AutoIt Window Info), а команда либо не исполняется вообще, либо эмулирует нажатие кнопки из совершенно другой вкладки данного окна свойств ![]() |
------- Отправлено: 11:40, 22-02-2008 | #166 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата Creat0R:
Цитата:
$File = "s:\Test.txt" $hOpenFile = FileOpen($File, 2) FileWrite($hOpenFile, "Test") FileClose($hOpenFile) $SetTime = '20060322083528' ; - 2 _FileSetTime($File, $SetTime) ;FileSetTime($File, $SetTime) $GetTime = FileGetTime($File, 0, 1) MsgBox(0, "", StringFormat("Set Time: %s \nGet Time: %s", $SetTime, $GetTime)) FileDelete($File) Func _FileSetTime($strFile, $strTime, $intType = 0) Local $iY=Number(StringLeft($strTime,4)) Local $iM=Number(StringMid($strTime,5,2)) Local $iD=Number(StringMid($strTime,7,2)) Local $iH=Number(StringMid($strTime,9,2)) Local $iN=Number(StringMid($strTime,11,2)) Local $iS=Number(StringMid($strTime,13)) ; DOS-формат для времени Local $iFatDate = BitShift($iY-1980,-9) + BitShift($iM,-5) + $iD Local $iFatTime = BitShift($iH,-11) + BitShift($iN,-5) + $iS/2 ; вот тут косячок в хранении секунд ; базовые структуры Local $FILETIME = DllStructCreate("dword;dword") Local $SYSTEMTIME = DllStructCreate("ushort;ushort;ushort;ushort;ushort;ushort;ushort;ushort") ; туда-сюда-обратно Local $ret = DllCall("kernel32.dll", "int", "DosDateTimeToFileTime", "ushort", $iFatDate, "ushort", $iFatTime, "ptr", DllStructGetPtr($FILETIME)) If $ret[0] =0 Then Return SetError(1, 1, False) $ret = DllCall("kernel32.dll", "int", "FileTimeToSystemTime", "ptr", DllStructGetPtr($FILETIME), "ptr", DllStructGetPtr($SYSTEMTIME)) If $ret[0] =0 Then Return SetError(1, 2, False) DllStructSetData($SYSTEMTIME,7,$iS) ; пытаемся откорректировать $ret = DllCall("kernel32.dll", "int", "SystemTimeToFileTime", "ptr", DllStructGetPtr($SYSTEMTIME), "ptr", DllStructGetPtr($FILETIME)) If $ret[0] =0 Then Return SetError(1, 3, False) ; открываем файл $ret = DllCall("kernel32.dll", "int", "CreateFile", _ "str", $strFile, "dword", 0x100, "dword", 0, "ptr", 0, "dword", 3, "dword", 0, "ptr", 0 ) If $ret[0] =0 Then Return SetError(2, 1, False) ; правим время и закрываем файл Local $hFile=$ret[0], $aSysTime[3] = [0,0,0] $aSysTime[$intType]=DllStructGetPtr($FILETIME) $ret = DllCall("kernel32.dll", "int", "SetFileTime", "int", $hFile, "ptr", $aSysTime[1], "ptr", $aSysTime[2], "ptr", $aSysTime[0]) DllCall("kernel32.dll", "int", "CloseHandle", "int", $hFile) If $ret[0] =0 Then Return SetError(2, 2, False) Return True EndFunc Цитата Creat0R:
![]() |
|||
Последний раз редактировалось amel27, 23-02-2008 в 06:00. Причина: очепятка Отправлено: 11:50, 22-02-2008 | #167 |
Пользователь Сообщения: 105
|
Профиль | Отправить PM | Цитировать Помогите пожалуйста.
Как в AutoIT можно написать скрипт, чтобы он выполнял такое действие: Если в папке C:\123 появились файлы, то нужно отправить сообщение пользователю через netsend. А в идеале было бы, чтобы по почте отправлялись сообщения. Почтовый сервер на exchange2003 |
Отправлено: 13:23, 22-02-2008 | #168 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
Тогда у меня проблема намного серъёзнее чем я думал... Дело в том, что мне нужно получать дату последнего изменения у файла в сети, и сравнивать её с датой изменения у файла на диске, если есть разница, то пытаться скачать файл (точнее юзер будет качать через диалог). После удачной закачки, я устанавливаю дату изменения файла на диске, чтобы при последующей проверки даты совпали. И получается что если дата файла в сети имеет не чётные секунды, то у меня всегда будет разница в данных ![]() Цитата:
![]() Цитата:
Но кажется я нашёл решение: Правда пока негде потестить, дома у меня принтер не работает. Диалог то выводится, но печатает ли, вот это и нужно проверить. DNK_Inc, Цитата:
Цитата:
If FileExists("C:\123\*.*") Then Run(@ComSpec & ' /c net send {имя | * | /DOMAIN[:имя] | /USERS} сообщение', '', @SW_HIDE) Цитата:
|
||||||
------- Отправлено: 16:25, 22-02-2008 | #169 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
_FileOpenPrint("D:\BUF\P1010376.JPG") While 1 Sleep (100) WEnd Func _FileOpenPrint ($sFilePath) Local $oShellApp = ObjCreate('shell.application') Local $sPath = StringRegExpReplace($sFilePath, "\\[^\\]+$", "") If @extended =0 Then $sPath = @WorkingDir Local $oPath = $oShellApp.Namespace ($sPath), $oItem For $oItem In $oPath.items If $oItem.Path = $sFilePath Then ConsoleWrite($oItem.Path &@CRLF) $oItem.InvokeVerb('&Печать') EndIf Next EndFunc ; => _FileOpenPrint ; Эта UDF может быть полезна для просмотра поддерживаемых Verbs Func _FileListVerbs($sFilePath) Local $oShellApp = ObjCreate('shell.application') Local $sPath = StringRegExpReplace($sFilePath, "\\[^\\]+$", "") If @extended =0 Then $sPath = @WorkingDir Local $oPath = $oShellApp.Namespace ($sPath), $oItem For $oItem In $oPath.items If $oItem.path = $sFilePath Then Local $oVerbs = $oItem.Verbs For $oVerb In $oVerbs ConsoleWrite($oVerb.Name &@CRLF) Next EndIf Next EndFunc ; => _FileListVerbs |
||
Отправлено: 11:09, 23-02-2008 | #170 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 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 |
|