|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты |
|
[Архив - Часть 1.2] AutoIt скрипты
|
Ветеран Сообщения: 565 |
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. |
|
------- Отправлено: 10:47, 10-02-2006 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
$file = "test.txt" $foo = FileOpen($file, 4) ; 4 - RAW-режим! $text = _Utf8ToAnsi(FileRead($foo,FileGetSize($file))) MsgBox(0,"Test",$text) FileClose ($foo) ; Пример преобразования UTF-8 в ANSI ; другие варианты кодировок: ; 0 - ANSI ; 1 - OEM ; 2 - MAC ; 42 - Symbol ; 65000 - UTF-7 ; 65001 - UTF-8 Func _Utf8ToAnsi($utf8String) Return _Uni2Any(_Any2Uni($utf8String, 65001),0) EndFunc ; Преобразование символьной строки заданной кодировки в юникод Func _Any2Uni($anyString, $codePage) Local $bufSize = StringLen($anyString) * 2 Local $buf = DllStructCreate("byte[" & $bufSize & "]") Local $ret = DllCall("Kernel32.dll", "int", "MultiByteToWideChar", _ "int", $codePage, _ "int", 0, _ "str", $anyString, _ "int", StringLen($anyString), _ "ptr", DllStructGetPtr($buf), _ "int", $bufSize) Local $uniString = StringLeft(DllStructGetData($buf, 1), $ret[0] * 2) $buf = 0 Return $uniString EndFunc ; Преобразование юникода в символьную строку заданной кодировки Func _Uni2Any($uniString, $codePage) Local $uniStringLen = StringLen($uniString) Local $bufLen = $uniStringLen * 2 Local $in = DllStructCreate("byte[" & $bufLen & "]") Local $out= DllStructCreate("char[" & $bufLen & "]") DllStructSetData($in, 1, $uniString) Local $ret = DllCall("kernel32.dll", "int", "WideCharToMultiByte", _ "int", $codePage, _ "int", 0, _ "ptr", DllStructGetPtr($in), _ "int", $uniStringLen / 2, _ "ptr", DllStructGetPtr($out), _ "int", $bufLen, _ "int", 0, _ "int", 0) Local $anyString = DllStructGetData($out, 1) $out= 0 $in = 0 Return $anyString EndFunc |
|
Отправлено: 09:25, 11-09-2006 | #361 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать Кстати, а что с поддержкой юникода(UTF-8) в autoit? Оч. хотелось бы сделать gui-оболочку для редактирования файлов с иероглифами. Возможно?
|
------- Отправлено: 14:34, 11-09-2006 | #362 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
![]() |
|
------- Отправлено: 15:46, 11-09-2006 | #363 |
Покинул форум Сообщения: 3254
|
Sanja Alone
Ты меня совсем не понял. Извини если я тя чем то задел. Мне не нужен Office (мне его и на работе хватает) я хотел показать тебе экран перезагрузки, я пользуюсь пользуюсь прогой Symantec Ghost AI Snapshot мне так более удобно сделал все настройки сохранил как с Atnotes и все Winamp, Nero устанавливаются за 2-3 секунды, со всеми ярлыками какие нужны, с настройками. Тока один недостаток просит перезагрузку понимаешь как это неудобно в режиме GuiRunOnce после каждой проги появляется экран перезагрузки - Nero перезагрузка, Promt перезагрузка ну и т.д. Постоянно приходится нажимать нет, нет..... Цитата:
Насчет AutoIt, мне он не нужен в дальнейшем, вот как ты думаешь скока часов уйдет на то чтобы я овладел какимитами понятиями о действиях этой проги, для того чтобы поставить одну!!! единственную команду на отмену перезагрузки. |
|
Последний раз редактировалось prokazzza, 12-09-2006 в 10:05. Отправлено: 09:34, 12-09-2006 | #364 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать prokazzza
Цитата:
Цитата:
Цитата:
![]() |
|||
------- Отправлено: 08:20, 13-09-2006 | #365 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Здравствуйте.
Кто-нибудь знает, как в AutoIt реализована функция ProcessList? Используется ли там DLLCall("psapi.dll"...) или DLLCall("kernel32.dll"...) Заранее благодарен. |
Отправлено: 17:35, 17-09-2006 | #366 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать AxelM
однако PSAPI.DLL, хотя конечно не DLLCall ![]() |
Отправлено: 04:21, 19-09-2006 | #367 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Есть два тревожующих вопроса:
1) Нужно запустить мелодию (точнее звук в 5 секунд), и чтобы она постоянно запускалась в цикле. Т.е пока скрипт запущен, чтобы один и тот-же файл играл по кругу (если закончилась мелодия, то чтобы началась по новой играть). Если нужно было бы только это, то можно обойтись так: Но мне нужно запустить мелодию (в круговом режиме), и чтобы в это время скрипт делал что-то другое - Т.е чтобы была (или уже есть?) какая-то функция, которую можно было бы использовать примерно так: Function("File.wav", 1) ; Ноль если нужно просто один раз проиграть, а единица (1) для повторного проигрывания. ......... ;тут будет что-то делаться во время того как играет мелодия 2) Мне нужно отнять от формата времени, определённое количество минут (до 60-ти), и нужно чтобы не просто отнимались числа от минут, а чтобы именно происходил подсчёт оставшегося времени (уитывая часы). Допустим, есть данное время 22:07:01 - И отняв от этого времени, допустим 8 минут, нужно чтобы получился такой результат - 21:59:01... Если речь идёт только о минутах (т.е без подсчёта часов), то я могу сделать это так: $Time = "22:07:01" $CleanSec = StringTrimRight($Time, 3) $CleanHour = StringTrimLeft($CleanSec, 3) If StringLeft($CleanHour, 1) = "0" Then $Minutes = StringLeft($CleanHour, 1) Else $Minutes = $CleanHour EndIf $Result = $Minutes - 8 If $Result < 0 Then $Minutes = (60 - 8) + $Minutes ElseIf StringLeft($CleanHour, 1) = "0" Then $Minutes = "0" & $Minutes EndIf $TimeResult = StringLeft($Time, 3) & $Minutes & StringRight($Time, 3) ![]() |
------- Отправлено: 07:43, 19-09-2006 | #368 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать 1, Можно через вызов внешнего (скомпилированного) скрипта:
Func Function ($file, $play) Local $pid=0 If $play Then $pid = Run ("Au3Sound.Exe", @ScriptDir, @SW_HIDE) ... If $pid Then ProcessClose ($pid) EndFunc 2. Например так: |
Последний раз редактировалось amel27, 19-09-2006 в 10:50. Причина: правка скрипта Отправлено: 09:41, 19-09-2006 | #369 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Пример который ты привёл, а точнее фраза которую я процетировал, навела меня на идею, которая решает эту проблему. Вместо того, чтобы запускать ещё один скрипт, можно запустить этот-же скрипт, но с параметром ком. строки, а запуск мелодии в цикле, поставить под условие - т.е если скрипт запущен с ключём, то запустить цыкл с проигрыванием мелодии: #NoTrayIcon Dim $SoundText, $Flag = 64 Select Case $CmdLine[0] = 0 $Ask = MsgBox(36, "question", "Play the sound?") If $Ask = 6 Then Run(@AutoItExe & " """ & @ScriptFullPath & """ /ps") $SoundText = ", exit the script and stop the sound?" $Flag = 36 EndIf $Else = MsgBox($Flag, "else", "I am somthing else" & $SoundText) If $Else = 6 Then Send("^!s") Exit ElseIf $SoundText <> "" Then MsgBox(64, "close msg", "for stop the sound, hold down thees hotkeys:" & @CR & "CTRL+ALT+S") EndIf Case $CmdLine[1] = "/ps" HotKeySet("^!s", "ExitScript") While 1 SoundPlay (@WindowsDir & "\media\tada.wav", 1) Wend EndSelect Func ExitScript() Exit 0 EndFunc Цитата:
![]() $Time = 01:10:43 $Mins = 8 Dim $TMS0 = StringSplit ($Time,":") Dim $TMS1 = $TMS0 $Mins = Mod (24*60 + $TMS0[1]*60 + $TMS0[2] - $Mins, 24*60) $TMS1[2] = Mod ($Mins, 60) $TMS1[1] = ($Mins - $TMS1[2])/60 Switch $TMS1[1] Case 0 to 9 $TMS1[1] = "0" & $TMS1[1] EndSwitch Switch $TMS1[2] Case 0 to 9 $TMS1[2] = "0" & $TMS1[2] EndSwitch $TimeResult = $TMS1[1] & ":" & $TMS1[2] & ":" & $TMS1[3] EndIf Есть один глупый вопрос, но я его всё же задам (любопытство преодаливает ![]() |
||
------- Отправлено: 05:11, 20-09-2006 | #370 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|