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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


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


Конфигурация

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


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 00:02, 05-02-2006

 

Аватара для Creat0R

Must AutoIt


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

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


NikLok,
Цитата:
возникают проблемы если захочется делать окно масштабируемым?
А в чём проблема задать относительные координаты? можно создать переменную $GUI_WIDTH и $GUI_HEIGHT, и соответственно строить элементы:

Код: Выделить весь код
GUICtrlCreateCheckbox("AccessOpt", 35, 50, $GUI_WIDTH-70, 15)
-70 это 35 + 35, таким образом ширена чекбокса будет ровно по ширине GUI (т.е с равномерными отступами с боков).

Цитата:
Кто как решает проблему масштабируемости?
Очень просто, для этого существует GUICtrlCreateTab(), ну или в крайнем случае TreeView (правда процесс переключения элементов придётся обрабатывать вручную). Или в ещё более крайних случаях, ListView с чекбоксами.

Цитата:
при проведении мышкой над чекбоксом его подпись меняет фон на темно серый!
Такой “эффект” может наблюдаться если с чекбоксом пересекаются другие (в частности Group) контроли. Пример можно увидеть где это происходит?

Цитата:
Кто нить достал книгу по autoit - AutoIt v3: Your Quick Guide
Судя по Wikipedia, издание от O'Reilly в сентябре 2007-ого только было опубликовано. Не думаю что так уже распространена эта книга. Хотя 8$ не так уж и много для книги подобного типа... вопрос в том насколько эта книга поможет - Можно собрать книгу хотябы из всех архивов (по AutoIt) на этом форуме, я уже не говорю об офф. форуме.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:46, 13-03-2008 | #221



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

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


Ветеран


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

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


Creat0R,
Цитата Creat0R:
Пример можно увидеть где это происходит? »
Ох и длинный он однако:
Код: Выделить весь код
;Автор скрипта: NikLok (http://forum.oszone.net/member.php?u=15218)
; 12 March 2008 - SRISA _ LNM
#include <GuiConstants.au3>
AutoItSetOption("TrayIconDebug",1)
AutoItSetOption("SendKeyDelay",40)

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)

Global $CfgFile = "winnt.sif"
Global $AccessOpt_state=$GUI_CHECKED
Global $Appsrv_console_state=$GUI_UNCHECKED
Global $Aspnet_state=$GUI_UNCHECKED

$fn="winnt.sif"
If	FileExists($fn) Then
	$file = FileOpen($fn,0)
	; Check if file opened for writing OK
	If $file = -1 Then
	    MsgBox(0, "Error", "Unable to open " & $fn & " file.")
	Else
;		$newfile = FileOpen("winnt_assemble.sif",1)
		; Check if file opened for writing OK
;		If $newfile = -1 Then MsgBox(0, "Error", "Unable to open winnt_assemble.sif file.")
		; Read in lines of text until the EOF is reached
		While 1
		    $line = FileReadLine($file)
		    If @error = -1 Then ExitLoop
;			FileWriteLine($newfile, $line)
			$r=StringRegExp($line,"OemPnPDriversPath",0)
		    If $r <> 0 Then
				$t=StringInStr($line,'=')
				If $t <> 0 Then
					$WSOemPnPDriversPath = StringTrimLeft($line,$t)
					$OemPnPDriversPath = StringStripWS($WSOemPnPDriversPath,3)
					;$OemPnPDriversPath=StringInStr($line,'=')
					;MsgBox(0,"Info",$OemPnPDriversPath)
				Else
					$OemPnPDriversPath=''
				EndIf
					$array = StringSplit($OemPnPDriversPath,';',1)
			EndIf
		Wend
		FileClose($file)
	EndIf
EndIf

$hGUI = GuiCreate("WIndows XP winnt.Sif managers - feesh 0.0.1", 1020, 620)

$LoadButton   = GUICtrlCreateButton("Load", 600, 5, 80, 25 )
$SaveButton   = GUICtrlCreateButton("Save", 700, 5, 80, 25 )
$ExitButton   = GUICtrlCreateButton("Exit", 800, 5, 80, 25 )
$AcceptButton = GUICtrlCreateButton("Ok",   500, 5, 60, 25)
$CancelButton = GUICtrlCreateButton("Cancel",900,5, 60, 25)

; TAB
GuiCtrlCreateTab(30, 10, 960, 590)
GuiCtrlCreateTabItem("User")
;GuiCtrlCreateLabel("Sample Tab with tabItems", 250, 40)
	GuiCtrlCreateLabel("FullName", 50, 80)
	GuiCtrlCreateLabel("OrgName", 50, 100)
	GuiCtrlCreateLabel("ComputerName", 50, 120)
	GuiCtrlCreateLabel("Workgroup", 50, 140)

GuiCtrlCreateTabItem("Ip")
	; CHECKBOX
	GuiCtrlCreateCheckbox("RIS installation", 50, 50, 80, 20)
	GuiCtrlSetState(-1, $GUI_CHECKED)
	GuiCtrlCreateLabel("IP adress", 50, 80)
	GuiCtrlCreateLabel("Gateway", 50, 100)
	GuiCtrlCreateLabel("DNS Server", 50, 120)
	GuiCtrlCreateLabel("Proxy Server", 50, 140)
	GuiCtrlCreateLabel("Proxy Override", 50, 160)

GuiCtrlCreateTabItem("Drivers")

	$treeDrivers = GuiCtrlCreateTreeView(30,50,980,500, $TVS_CHECKBOXES)
	$n=StringLen($OemPnPDriversPath)
	If $n <> 0 Then
		$array = StringSplit($OemPnPDriversPath,';',1)
		For $m=1 to $array[0] Step 1
			GuiCtrlCreateTreeViewItem($array[$m], $treeDrivers)
		Next	
	EndIf
	; CHECKBOX
	GuiCtrlCreateCheckbox("Check existense",35,560,140,20)
	GuiCtrlSetState(-1, $GUI_CHECKED)

GuiCtrlCreateTabItem("Screen")
	GuiCtrlCreateLabel("Bits Per Pixel", 50, 80)
	GuiCtrlCreateLabel("Xresolution", 50, 100)
	GuiCtrlCreateLabel("Yresolution", 50, 120)
	GuiCtrlCreateLabel("Vertical refresh", 50, 140)
	;GuiCtrlCreateLabel("Proxy Override", 50, 160)

GuiCtrlCreateTabItem("Components")
;CreateGUI
$AccessOpt = GUICtrlCreateCheckbox("AccessOpt",35,50,210,15)
GUICtrlSetState($AccessOpt,$AccessOpt_State)
$Appsrv_console = GUICtrlCreateCheckbox("Appsrv_console",35,90,210,15)
GUICtrlSetState($Appsrv_console,$Appsrv_console_State)
$Aspnet = GUICtrlCreateCheckbox("Aspnet",35,130,210,15)
GUICtrlSetState($Aspnet,$Aspnet_State)

GuiCtrlCreateTabItem("Settings")
	GuiCtrlCreateLabel("Base directory", 50, 80)
	GuiCtrlCreateLabel("Builderman", 50, 100)
	GuiCtrlCreateLabel("Contacts", 50, 120)

; GUI MESSAGE LOOP
GuiSetState()
While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE, $CancelButton
        ExitLoop
    Case $AcceptButton
        ;_SaveCfg()
        ExitLoop
    EndSwitch
WEnd

Func _LoadCfg()
	$AccessOpt_State = IniRead($CfgFile,"Components","AccessOpt","Off")
	If $AccessOpt_State == "On" Then
		$AccessOpt_State=$GUI_CHECKED
		;GUICtrlSetState($AccessOpt,$GUI_CHECKED)
	Else
		$AccessOpt_State=$GUI_UNCHECKED
		;GUICtrlSetState($AccessOpt,$GUI_UNCHECKED)
	EndIf
	$Appsrv_console_State = IniRead($CfgFile,"Components","Appsrv_console","Off")
	If $Appsrv_console_State == "On" Then
		$Appsrv_console_State=$GUI_CHECKED
		;GUICtrlSetState($Appsrv_console,$GUI_CHECKED)
	Else
		$Appsrv_console_State=$GUI_UNCHECKED
		;GUICtrlSetState($Appsrv_console,$GUI_UNCHECKED)
	EndIf
	$Aspnet_State = IniRead($CfgFile,"Components","Aspnet","Off")
	If $Aspnet_State == "On" Then
		$Aspnet_State=$GUI_CHECKED
		;GUICtrlSetState($Aspnet,$GUI_CHECKED)
	Else
		$Aspnet_State=$GUI_UNCHECKED
		;GUICtrlSetState($Aspnet,$GUI_UNCHECKED)
	EndIf
EndFunc


Func _SaveCfg()
    GUISetState(@SW_HIDE, $hGUI)
	If GUICtrlRead($AccessOpt) = $GUI_CHECKED Then
		$AccessOpt_State="On"
	Else
		$AccessOpt_State="Off"
	EndIf
    IniWrite($CfgFile,"Components","AccessOpt",$AccessOpt_State)
	If GUICtrlRead($Appsrv_console) = $GUI_CHECKED Then
		$Appsrv_console_State="On"
	Else
		$Appsrv_console_State="Off"
	EndIf
    IniWrite($CfgFile,"Components","Appsrv_console",$Appsrv_console_State)
	If GUICtrlRead($Aspnet) = $GUI_CHECKED Then
		$Aspnet_State="On"
	Else
		$Aspnet_State="Off"
	EndIf
    IniWrite($CfgFile,"Components","Aspnet",$Aspnet_State)
EndFunc
Exit
В директории запуска должон быть winnt.sif - или корректировать $CfgFile

Цитата Creat0R:
Хотя 8$ не так уж и много для книги подобного типа... »
Согласен, но дело принципа. Я просмотрел её содержимое и сильно разочаровался!!! Это краткий справочник скорее чем книга!

Отправлено: 15:13, 13-03-2008 | #222


Аватара для Maza Faka

Ветеран


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

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


NikLok
Скрипт-то нерабочий. Ты вот, что сделай: напиши небольшой скриптик содержащий только проблемное место, так всем будет легче и охотней его смотреть, чем огромный и нерабочий код.

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 15:51, 13-03-2008 | #223


Ветеран


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

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


Maza Faka, Sorry. У меня работает! Вот еще сократил. Оставил одну вкладку и все почистил.
Код: Выделить весь код
;Автор скрипта: NikLok (http://forum.oszone.net/member.php?u=15218)
; 12 March 2008 - SRISA _ LNM
#include <GuiConstants.au3>
AutoItSetOption("TrayIconDebug",1)
AutoItSetOption("SendKeyDelay",40)

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)

Global $CfgFile = "winnt.sif"
Global $AccessOpt_state=$GUI_CHECKED
Global $Appsrv_console_state=$GUI_UNCHECKED
Global $Aspnet_state=$GUI_UNCHECKED

$hGUI = GuiCreate("WIndows XP winnt.Sif managers - feesh 0.0.1", 1020, 620)

$LoadButton   = GUICtrlCreateButton("Load", 600, 5, 80, 25 )
$SaveButton   = GUICtrlCreateButton("Save", 700, 5, 80, 25 )
$ExitButton   = GUICtrlCreateButton("Exit", 800, 5, 80, 25 )
$AcceptButton = GUICtrlCreateButton("Ok",   500, 5, 60, 25)
$CancelButton = GUICtrlCreateButton("Cancel",900,5, 60, 25)

GuiCtrlCreateTab(30, 10, 960, 590)
GuiCtrlCreateTabItem("Components")
;CreateGUI
$AccessOpt = GUICtrlCreateCheckbox("AccessOpt",35,50,210,15)
GUICtrlSetState($AccessOpt,$AccessOpt_State)
$Appsrv_console = GUICtrlCreateCheckbox("Appsrv_console",35,90,210,15)
GUICtrlSetState($Appsrv_console,$Appsrv_console_State)
$Aspnet = GUICtrlCreateCheckbox("Aspnet",35,130,210,15)
GUICtrlSetState($Aspnet,$Aspnet_State)

; GUI MESSAGE LOOP
GuiSetState()
While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE, $CancelButton
        ExitLoop
    Case $AcceptButton
        ExitLoop
    EndSwitch
WEnd
Exit
Нужно провести по чекбоксам и увидите.

Отправлено: 16:35, 13-03-2008 | #224


Аватара для Creat0R

Must AutoIt


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

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


NikLok,
У меня всё нормально, не видно проблемы... попробуй подвинуть чекбоксы правее, чтобы они небыли у самого края. Возможно у тебя какая то тема оформления установлена, которая вызывает такие глюки?

P.S
Вместо 1020 лучше использовать макрос @DesktopWidth
И по поводу Opt("WinTitleMatchMode",4) - это можно не использовать (оставлено в целях обратной совместимости), при поиске окон есть другой метод (см. раздел Window Titles and Text (Advanced) в справке).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 16:56, 13-03-2008 | #225


Ветеран


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

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


Creat0R,
Цитата Creat0R:
Возможно у тебя какая то тема оформления установлена, которая вызывает такие глюки? »
Это возможно - стоит тема VistaXP ! Правда смена темы на классическую ничего не дала.! Подвижка на 100 тоже не исправила дела!
Цитата Creat0R:
Вместо 1020 лучше использовать макрос @DesktopWidth »
Это ширина десктопа, а я не хочу на весь экран распахивать то!
А как узнать ширину родительского GUI. То есть ширину для $hGUI ?

Отправлено: 17:29, 13-03-2008 | #226


Аватара для Creat0R

Must AutoIt


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

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


NikLok,
Цитата:
Это ширина десктопа, а я не хочу на весь экран распахивать то!
У меня 1020 это почти ширена экрана, я просто привёл пример, у кого то разрешение экрана может быть очень низким, и часть GUI не будет видно.

Цитата:
как узнать ширину родительского GUI
$aGUI_Coords = WinGetPosition($hGUI)

Возвращённое значение:
Код: Выделить весь код
$aGUI_Coords[0] = Left
$aGUI_Coords[1] = Top
$aGUI_Coords[2] = Width
$aGUI_Coords[3] = Height
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:43, 13-03-2008 | #227


Аватара для Maza Faka

Ветеран


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

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


Цитата NikLok:
Это ширина десктопа, а я не хочу на весь экран распахивать то! »
Да не нужно ничего распахивать! Тебе же уже подсказали, используй элементы TabItem.

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 07:05, 14-03-2008 | #228


Аватара для Angelus

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


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

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


А в скрипте есть возможность блокировки партов???.....а то я хелп читал чтото не нашол...

Отправлено: 11:07, 14-03-2008 | #229


Ветеран


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

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


Maza Faka,
Цитата Maza Faka:
Тебе же уже подсказали, используй элементы TabItem. »
Что-то я туплю! Тки пальцем - чего - то я такого не припомню!

Отправлено: 13:17, 14-03-2008 | #230



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 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




 
Переход