Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Генератор Autoit script

Ответить
Настройки темы
Генератор Autoit script

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Использую autoit для создания тихой установки приложений, Люди, подскажите, есть ли какая-либо программа, для генерации скриптов
К примеру запускаю инсталлятор, отвечаю на вопросы, это всё записывается и генерируется скрипт?

Заранее спасибо...

Отправлено: 05:59, 07-07-2009

 

Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


1 AutoItMacroGenerator
2 ScriptWriter

по ходу, они в комплекте идут с этим SciTe ....
да и выложить можно ...если надо

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 09:19, 07-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для tweakos

Старожил


Автор проектов


Сообщения: 374
Благодарности: 128

Профиль | Отправить PM | Цитировать


Цитата proxy:
1 AutoItMacroGenerator
2 ScriptWriter »
имхо.все эти генераторы ,я вам скажу,.....лучше да ну их нафиг.
нет ничего лучше скрипта,который сам написал....

-------
Аддон [XpAnimateStyle] Анимированные вход/перезагр/выкл в WinXp / New Autorun Construct Alpha
/
LogonUI&Logo Changer / Theme patcher программа изменения элементов тем оформления
/
персонализация (смена обоев через фэйд)

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:11, 07-07-2009 | #3


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата tweakos:
имхо.все эти генераторы ,я вам скажу,.....лучше да ну их нафиг.
нет ничего лучше скрипта,который сам написал.... »
согласен!! ), но вопрос же - в обратном:
Цитата zmeeust:
Люди, подскажите, есть ли какая-либо программа, для генерации скриптов
К примеру запускаю инсталлятор, отвечаю на вопросы, это всё записывается и генерируется скрипт? »
как спросил - так и ответил

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 16:06, 07-07-2009 | #4


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


tweakos, Я с тобой согласен
Вчера попробовал, лажа полная самому лучше писать

Отправлено: 04:33, 08-07-2009 | #5


Аватара для jentoso

Ветеран


Сообщения: 816
Благодарности: 125

Профиль | Отправить PM | Цитировать


Цитата zmeeust:
Вчера попробовал, лажа полная самому лучше писать »
А что, если вручную потом испраить то что сгенерировалось? Или там полная неразберихи. Просто сам еще этот метод не использовал. В основном так же делаю вручную.

-------
Спасибо не пишут, а нажимают "Полезное сообщение"
Я.Диск | Я зарегистрировал никнейм JenTOSO


Отправлено: 17:15, 08-07-2009 | #6


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата jentoso:
А что, если вручную потом испраить то что сгенерировалось? Или там полная неразберихи. Просто сам еще этот метод не использовал. В основном так же делаю вручную. »
Можно и так - тут главное что бы удоно было.

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 17:55, 08-07-2009 | #7


Пользователь


Сообщения: 67
Благодарности: 13

Профиль | Отправить PM | Цитировать


Может кому понадобится... Для собственных нужд писал, так что придирки к "культурности кода" не принимаются. Ничего сложного, прога собирает заголовки и (выбираемый пользователем из выводимого в листбоксе набора строк) уникальный текст окна для идентификации, а также идентификаторы контролов, может брать текст из edit боксов, вставлять его (для работы с кейгенами), распознает текст и переменные (если перед словом поставить $), закрывать окна, запускать файлы, кликать по координатам (не дорабатывал эту фичу за ненадобностью). После окончания работы установщика жмем Esc, получаем готовый скрипт автоустановщика, в редких случаях его приходится дорабатывать ручками. Нужного окна дождется автоматом, нажмет где надо... мне такого функционала хватает, а там смотрите сами.
Код: Выделить весь код
#include <Misc.au3>
#include <GUIConstants.au3>
Opt("TrayIconDebug",1) 
;Opt("MouseCoordMode",0)
HotKeySet("{ESC}","texit")
$dll = DllOpen("user32.dll")
$file = FileOpen("file.au3", 2)
$written_to_file_text=""
$progstatus=0
$filepath=""
$write_on_exit_text=""
$_texttopaste=""
$haos=0
$FilenameOnExitChange=""
$input_variable_got=""
$current_mpos=0
$as_is=0
;fop()
;wr(";run('')")
TrayTip("","ctrl - начало записи"&@lf&"pause - пауза/возобновление записи"&@lf&"shift - диалог открытия файла"&@lf&"esc - завершение записи",1)
while not _IsPressed("11", $dll)
	sleep(10)
WEnd
TrayTip("","ЗАПИСЫВАЕМ",1)
;---------------------------------------------------------------------------------------------------------------------
While 1
	if _IsPressed("01", $dll) Then							;01-lmb 02-rmb	ctrltext & classn   11-ctrl 10-shift
		$current_mpos=MouseGetPos()
		$wtt=WinGetTitle("")
		$wgt=WinGetText("")
		$cgf=ControlGetFocus("")
		sleep(200)
		$wgt=repl($wgt)             ;выбор уникального текста с параметрами пользователем
		Select
		case $progstatus=0 ;кликнуть
			if $cgf<>"" then wr("cl('"&$wtt&"','"&$wgt&"','"&$cgf&"')")
		case $progstatus=2 ;ждать
				wr("wa('"&$wtt&"','"&$wgt&"')")
		case $progstatus=3 ;взять
			if $cgf<>"" then wr("wa('"&$wtt&"','"&$wgt&"')"&@lf&$input_variable_got&"=ControlGetText('"&$wtt&"','"&$wgt&"','"&$cgf&"')")
		case $progstatus=4 ;вставить
			if $cgf<>"" And StringLeft($_texttopaste,1)= "$" then wr("wa('"&$wtt&"','"&$wgt&"')"&@lf&"ControlSetText('"&$wtt&"','"&$wgt&"','"&$cgf&"',"&$_texttopaste&")"&";ВСТАВИТЬ ТЕКСТ СЮДА")
			if $cgf<>"" And StringLeft($_texttopaste,1)<>"$" then wr("wa('"&$wtt&"','"&$wgt&"')"&@lf&"ControlSetText('"&$wtt&"','"&$wgt&"','"&$cgf&"','"&$_texttopaste&"')"&";ВСТАВИТЬ ТЕКСТ СЮДА")
		case $progstatus=10 ;окно возможно
			if $cgf<>"" then $write_on_exit_text&=@tab&@tab&"if WinExists('"&$wtt&"','"&$wgt&"') then ControlClick('"&$wtt&"','"&$wgt&"','"&$cgf&"')"&@lf
		case $progstatus=12 ;закрыть окно
			wr("wa('"&$wtt&"','"&$wgt&"')"&@lf&"WinClose('"&$wtt&"','"&$wgt&"')")
			WinClose($wtt,$wgt)
		case $progstatus=15;Отмена блока
			Sleep(1);ExitLoop 
		case $progstatus=20;Кликаем по координатам мыши  (при возможном появлении окна не сработает. отладить в будущем совместную работу опций)
				wr("wa('"&$wtt&"','"&$wgt&"')"&@lf&"MouseClick('left',"&$current_mpos[0]&","&$current_mpos[1]&",1,0)")
		EndSelect
		;TrayTip($wtt,$cgf,1)
		$progstatus=0
		$as_is=0
	EndIf
	if _IsPressed("10",$dll) Then fop()
	if _IsPressed("13",$dll) Then pause()
	if _IsPressed("1b", $dll) Then texit();ExitLoop		;esc
	sleep(10)
WEnd
;---------------------------------------------------------------------------------------------------------------------
func texit()	;завершение
	wr("Func wa($tx1, $tx2)")
	wr("	While Not WinExists($tx1, $tx2)")
	wr($write_on_exit_text&"		;if WinExists("","") then WinClose("","")")
	wr("		Sleep(1) ")
	wr("	WEnd ")
	wr("	;WinActivate($tx1, $tx2)")
	wr("EndFunc")
	wr("Func cl($tx1, $tx2,$classn)")
	wr("	wa($tx1, $tx2)")
	wr("	ControlClick($tx1, $tx2,$classn)")
	wr("EndFunc") 
	DllClose($dll)
	FileClose($file)
	if $FilenameOnExitChange<>"" Then
		if MsgBox(4,"","Переименовать файл скрипта?")=6 Then
			$FilenameOnExitChange=StringTrimRight($FilenameOnExitChange,4)
			FileMove("file.au3",$FilenameOnExitChange&"_au3.au3",1)
		EndIf
		if MsgBox(4,"","Компилировать скрипт?")=6 Then
			TrayTip("","Compiling in process",1)
			RunWait(@ProgramFilesDir&'\AutoIt3\Aut2Exe\Aut2exe.exe /in '&@ScriptDir&'\'&$FilenameOnExitChange&'_au3.au3')
		EndIf
	EndIf
	exit
EndFunc
Func fop()
	$filepath=FileOpenDialog("",@WorkingDir,"Программы (*.exe)")
	if  Not @error And StringLeft($filepath,9)<>"c:\Progra" then
		$filepath=fred($filepath)
		wr("run('"&$filepath&"')")
		run($filepath)
	Else
		wr("run('"&$filepath&"')")
		run($filepath)
	EndIf
	if $FilenameOnExitChange="" Then $FilenameOnExitChange=$filepath
	$filepath=""
EndFunc
Func fred($ppp)
	$ppp_=""
	while StringRight($ppp,1)<>"\"
		$ppp_=StringRight($ppp,1)&$ppp_
		$ppp=StringTrimRight($ppp,1)
	WEnd
	Return $ppp_
EndFunc
Func pause()
	TrayTip("","ПАУЗА",1)
	sleep(300)
	while 1
		if _IsPressed("13",$dll) OR $filepath<>"" Then ExitLoop
		sleep(10)
	WEnd
	TrayTip("","ЗАПИСЫВАЕМ",1)
	sleep(300)
EndFunc
Func wr($text_to_write)
	if $written_to_file_text<>$text_to_write then 
		FileWrite($file,$text_to_write&@LF)
		$written_to_file_text=$text_to_write
	EndIf
EndFunc
Func wa($tx1, $tx2)
	While Not WinExists($tx1, $tx2)
		Sleep(1) 
	WEnd 
EndFunc
Func cl($tx1, $tx2,$classn)
	wa($tx1, $tx2)
	ControlClick($tx1, $tx2,$classn)
EndFunc
;------------------------------------------------------------------------------------------------------GUI start
func repl($whole_window_text)
	$tempstr=$whole_window_text
	$tempstr=StringReplace($tempstr,@crlf,"|")
	$tempstr=StringReplace($tempstr,@cr,"|")
	$tempstr=StringReplace($tempstr,@lf,"|")
	GUICreate("Выбери параметры и уникальный текст окна",310,350,-1,-1,-1,$WS_EX_TOPMOST)
	$ctrl=GUICtrlCreateLabel($cgf,0,5)
	$butt_cancel_block=GUICtrlCreateButton("Отмена блока",220,0,90)
	$butt_cancel_radio=GUICtrlCreateButton("Очистка опций",220,25,90)
	$radio_wa=GUICtrlCreateRadio("Просто ждать появления этого окна",0,25)
	$radio_get=GUICtrlCreateRadio("Читать отсюда текст",0,50)
	$input_variable_gui_get=GUICtrlCreateInput("",150,50)
	$radio_set=GUICtrlCreateRadio("Вставить сюда текст",0,75)
	$texttopaste=GUICtrlCreateInput("",150,75)
	$radio_possible=GUICtrlCreateRadio("Появление окна возможно, но необязательно",0,100)
	$radio_close=GUICtrlCreateRadio("Закрыть окно",0,125)
	$checkb_haos=GUICtrlCreateCheckbox("Произвольный порядок",120,125)
	$checkb_mpos=GUICtrlCreateCheckbox("Mpos",263,125)
	$butt_ok=GUICtrlCreateButton("Как есть",165,0)
	$listb=GUICtrlCreateList("",0,150,300,300,$LBS_USETABSTOPS)
	GUICtrlSetState($texttopaste,$GUI_HIDE)
	GUICtrlSetState($input_variable_gui_get,$GUI_HIDE)
   GUISetState(@SW_SHOW)
	GUICtrlSetData($listb,$tempstr)
	if $haos=1  then GUICtrlSetState ($checkb_haos,$GUI_CHECKED)
	if $haos<>1 then GUICtrlSetState ($checkb_haos,$GUI_UNCHECKED)
	$msg=0
	While $msg <> $GUI_EVENT_CLOSE
		$msg = GUIGetMsg()
		Select
		case $msg=$listb
			;MsgBox(0,"",GUICtrlRead($listb))
			$whole_window_text=GUICtrlRead($listb)
			ExitLoop
		case $msg=$butt_cancel_block
			$progstatus=15
			ExitLoop
		case $msg=$butt_cancel_radio
			GUICtrlSetState ($radio_wa,$GUI_UNCHECKED)
			GUICtrlSetState ($radio_get,$GUI_UNCHECKED)
			GUICtrlSetState ($radio_set,$GUI_UNCHECKED)
			GUICtrlSetState ($radio_possible,$GUI_UNCHECKED)
			GUICtrlSetState ($radio_close,$GUI_UNCHECKED)		
			GUICtrlSetState ($checkb_haos,$GUI_UNCHECKED)
			GUICtrlSetState ($checkb_mpos,$GUI_UNCHECKED)
		case $msg=$radio_set
			GUICtrlSetState($texttopaste,$GUI_SHOW)
		case $msg=$radio_get
			GUICtrlSetState($input_variable_gui_get,$GUI_SHOW)
		case $msg=$butt_ok
			$as_is=1
			ExitLoop
		EndSelect
	WEnd
	if $progstatus<>15 Then
		if GUICtrlRead($radio_wa)=1 then $progstatus=2
		if GUICtrlRead($radio_get)=1 then $progstatus=3
		if GUICtrlRead($radio_get)=1 then $input_variable_got=GUICtrlRead($input_variable_gui_get)
		if GUICtrlRead($radio_set)=1 then $progstatus=4
		if GUICtrlRead($radio_set)=1 then $_texttopaste=GUICtrlRead($texttopaste)
		if GUICtrlRead($radio_possible)=1 then $progstatus=10	
		if GUICtrlRead($radio_close)=1 then $progstatus=12
		if GUICtrlRead($checkb_haos)=1 then $haos=1
		if GUICtrlRead($checkb_haos)<>1 then $haos=0
		if GUICtrlRead($checkb_mpos)=1 then $progstatus=20
		if $haos=1 Then $progstatus=10
	EndIf
	GUIDelete()
	$tempstr=""
	While StringLeft($whole_window_text,1)<>"" And StringLeft($whole_window_text,1)<>"'" And StringLeft($whole_window_text,1)<>'"'  ;чистим уникальный текст от недопустимых символов
		$tempstr&=StringLeft($whole_window_text,1)
		$whole_window_text=StringTrimLeft($whole_window_text,1)
	WEnd
	$whole_window_text=$tempstr
	if $as_is=1 Then $whole_window_text=""
	return $whole_window_text
EndFunc
;----------------------------------------------------------------------------------------------------------------------GUI end
Ctrl - начало слежения за установкой (если нажатие не нужно записывать - жми кнопку "отмена блока")
Shift - открытие файла инстальника, кейгена и т.п. необходимого в процессе установки.
Для создания автоустанавливающихся комплектов я использую отдельную виртуальную машину, чтобы не отвлекаться в процессе создания автоустановщика, чего и вам советую...

-------
Информация для размышления
Такому в вузах не научат


Отправлено: 00:06, 09-07-2009 | #8


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


jentoso, После генерации кода будет больше возни, лучше самому писать код,
чё непонятно смотреть в справке или спросить на форуме

Отправлено: 04:52, 09-07-2009 | #9


Пользователь


Сообщения: 67
Благодарности: 13

Профиль | Отправить PM | Цитировать


zmeeust, чтобы следовать твоему совету нужно быть фанатичным трудоголиком. Я, например, слишком ленивый человек, чтобы каждый раз делать все "ручками", проще написать программу, которая сделает всю нудятину за меня...

-------
Информация для размышления
Такому в вузах не научат


Отправлено: 18:35, 09-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Генератор Autoit script

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Генератор кодов ссылок? Yez Программное обеспечение Windows 0 26-05-2009 18:12
Log/Monitoring - генератор пакетов Busla Сетевые технологии 2 25-04-2009 10:58
какой нибудь генератор файлов *.theme yurfed Хочу все знать 2 22-03-2007 21:53
Генератор случайных чисел Murrey Хочу все знать 3 22-08-2006 13:00
генератор кода Trojn Мобильные ОС, смартфоны и планшеты 5 04-04-2004 04:06




 
Переход