Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
TERMINAL
15-08-2008, 14:54
morgan1991, либо так
;предотвращение возможности множественного запуска скрипта
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
;скрыть в системной панели индикатор AutoIt
AutoItSetOption("TrayIconHide", 1)
;Отображать текущую строку сценария с помощью индикатора системной панели в режиме отладки.
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("SendKeyDelay", 10)
либо так
;Включить или отключить возможность прерывания выполнения скрипта пользователем, используя индикатор системной панели.
Break(0)
Maza Faka
15-08-2008, 15:17
morgan1991
Opt("TrayAutoPause", 0)
morgan1991
17-08-2008, 22:00
Нет я имел ввиду просто удалить одну кнопку оставить только exit и потом добавить свои кнопки.
А вот ещё вопросик:
Можно ли заменить команду FileWrite на другую которая работает также, просто у меня такая проблема:
написал скрипт который считывает данные с конфига .ini и записывает их в документ с расширением .wtf
всё работает, но когда в конфиге указаны данные например forum.oszone.ru, то всё тоже работает, а если я пишу
туда wow.karelia.ru то он записывает их так: 卥琠牥慬浬楳琠睯眮歡牥汩愮牵 квадратиками
Может кто знает что это такое??
Может кто знает что это такое?? »без кода, воспроизводящего проблему, нет :)
Можно ли заменить команду FileWrite на другую которая работает также »
поиграйте значениями параметра "mode" ф-ции FileOpen() для открытия файла перед записью в него текста
Delirium
18-08-2008, 06:52
Vadikan, ссылка Русская справка (http://www.autoitscript.com/autoit3/docs.php) в шапке недействительна.
HORRIBLE
19-08-2008, 16:13
$input_tab3_0 = GUICtrlCreateInput("", "","","","","")
.....................
$input_tab3_20 = GUICtrlCreateInput("", "","","","","")
можно ли заменить такое перечисление всех инпутов,
GUICtrlSetData($input_tab3_0,"1")
.........................
GUICtrlSetData($input_tab3_20,"1")
на какой нить цикл, т.к. просто неудобно одно и тоже писать по нескольку раз.
спасибо.
Maza Faka
19-08-2008, 16:45
HORRIBLE
Создай массив с нужным кол-вом control-ов.
morgan1991
20-08-2008, 19:42
Помогите плиз как посчитать синус числа:
2 градуса 32 минуты 15 секунд???
непонимаю как присвоить переменной градусы минуты секунды.
morgan1991
20-08-2008, 20:18
Помогите срочно надо.
Вот скрипт:
$nu = (1 + 28 / 60 + 0 / 3600) * 2
$result = Sin($nu)
MsgBox(0, "", $result)
Он должен вывести в сообщении число: 0.05 с копейками, а он выводит 1.93333333333
Тоесть не правильно высчитывает синус числа. Может както можно посчитать синус подругому???
morgan1991
#include <Math.au3>
$nu = (1 + 28 / 60 + 0 / 3600) * 2
$result = Sin(_Radian ($nu))
MsgBox(0, "", $result)
morgan1991
22-08-2008, 12:16
спс всё клёва просто афигенно помогли.
HORRIBLE
26-08-2008, 11:54
Как сделать секундомер, только чтоб он показывал не секунды, а милисекунды?? без разницы, что цифры будут быстро обновляться и их будет почти не видно, просто как это сделать?
Maza Faka
26-08-2008, 16:42
HORRIBLE
Как именно должен выглядеть таймер? Так: чч:мм:сс:мм? Или просто миллисекунды?
HORRIBLE
27-08-2008, 10:59
Maza Faka,
Ай, забыл указать это.
Вот так: cc:мм
Maza Faka
27-08-2008, 13:49
HORRIBLE
В общем вот быстрый и грубый пример, как реализовать счётчик миллисекунд, но учитывая, что AutoIt - скриптовый язык (а значит работает медленно), немного поигравшись со значениями, примерно подсчитал, что 60 вызовов функции _TimerProc() примерно равны 1 секунде. :) В принципе в сети есть примеры, но они для таких языков, как: C, C++, Delfi. Короче пробуй! ;)
#include <Date.au3>
Global $SecTimer = 0
Global $MsTimer = 0
$hGUI = GUICreate("Timer", 200, 100)
$SecLabel = GUICtrlCreateLabel("00:", 75, 40, 16, 15)
$MSLabel = GUICtrlCreateLabel("", 91, 40, 16, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState()
Global $TimerProcHandle = DllCallbackRegister("_TimerProc", "none", "hwnd;int;int;dword")
Global $TimerCall = DllCall("user32.dll", "int", "SetTimer", "hwnd", 0, "int", 0, "int", 1, _
"ptr", DllCallbackGetPtr($TimerProcHandle))
$TimerCall = $TimerCall[0]
Do
Until GUIGetMsg() = -3
DllCallbackFree($TimerProcHandle)
DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "int", $TimerCall)
Func _TimerProc($hWnd, $Msg, $IdTimer, $dwTime)
If $MsTimer >= 60 Then
$MsTimer = 0
$SecTimer += 1
If $SecTimer >= 60 Then $SecTimer = 0
ControlSetText($hGUI, "", $SecLabel, StringFormat("%02i:", $SecTimer))
EndIf
$MsTimer += 1
ControlSetText($hGUI, "", $MSLabel, StringFormat("%02i", $MsTimer))
EndFunc
Maza Faka,
примерно подсчитал, что 60 вызовов функции _TimerProc() примерно равны 1 секунде »
Но в одной секунде 1000 мс :)
#include <Date.au3>
Global $SecTimer = 0
Global $MsTimer = TimerInit()
$hGUI = GUICreate("Timer", 200, 100)
$SecLabel = GUICtrlCreateLabel("00:", 75, 40, 16, 15)
$MSLabel = GUICtrlCreateLabel("", 91, 40, 16, 15)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState()
Global $TimerProcHandle = DllCallbackRegister("_TimerProc", "none", "hwnd;int;int;dword")
Global $TimerCall = DllCall("user32.dll", "int", "SetTimer", "hwnd", 0, "int", 0, "int", 1, _
"ptr", DllCallbackGetPtr($TimerProcHandle))
$TimerCall = $TimerCall[0]
Do
Until GUIGetMsg() = -3
DllCallbackFree($TimerProcHandle)
DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "int", $TimerCall)
Func _TimerProc($hWnd, $Msg, $IdTimer, $dwTime)
If TimerDiff($MsTimer) >= 1000 Then
$MsTimer = TimerInit()
$SecTimer += 1
If $SecTimer >= 60 Then $SecTimer = 0
ControlSetText($hGUI, "", $SecLabel, StringFormat("%02i:", $SecTimer))
EndIf
ControlSetText($hGUI, "", $MSLabel, _
StringFormat("%02i", Round(TimerDiff($MsTimer)) / 10)) ; / 10 это чтобы получить 10-чное представление
EndFunc
Цитировать »
Цитировать »
Нашел программу для декомпиляции exe обратно в скрипт.:biggrin:
Если кому надо, могу выложить.
MaxxQ, могу выложить »
Не нужно, кому нужно сами найдут, вот лучше бы кто-то придумал способ как защитить наши скомпилированные скрипты от подобных взломов :help: .
Цитировать »
хммм... а кому они нужны? IMHO, скрипты AutoIt пишутся под конкретные нужды и исключительно для СЕБЯ, или вы продаете их? :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.