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

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

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

Старожил


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

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


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.

Помогите пожалуйста. Нужен маленький скриптик для решения некоторых рутинных задачь.
Вот что нужно сделать последовательно:

1) в папке DIR1 находим и удаляем файлы в названии которых присутствует text_1
2) в папке DIR2 находим xxx.sif и удаляем строки, в которых присутствует text_1
3) в папке DIR3 находим xxx.inf и добавляем в его секцию [XXX] несколько строчкек (text_2, text_3, ..., text_n)
4) в папке DIR4 находим yyy.inf ищем в его секции [YYY] text_4 и заменяем его на text_5
5) сохраняем все изменения и выводим отчёт о проделанной работе :-)

Заранее благодарен.

Отправлено: 05:05, 03-12-2006

 

Аватара для Sanja Alone

Ищу Человека…


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

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


biggreeder
Цитата:
А можно "по-пензенски"?
cmd:
Код: Выделить весь код
cacls "C:\Путь_к_файлу\Имя_файла" /E /G SYSTEM:R Администраторы:R
AutoIt:
Код: Выделить весь код
RunWait(@comspec & ' /c cacls "C:\Путь_к_файлу\Имя_файла" /E /G SYSTEM:R Администраторы:R','',@SW_HIDE)

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 16:30, 03-01-2007 | #91



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

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


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


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


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

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


Sanja Alone
Спасибо, думал я не так что-то делаю. Но именно такие команды на срабатывают. В смысле права доступа остаются прежними.
И разные варианты команд пробовал и разные файлы. Ничего не помогает...

Отправлено: 22:09, 03-01-2007 | #92


Аватара для Creat0R

Must AutoIt


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

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


Как можно деактивировать гуи (GuiSetState(@SW_DISABLE)), но чтобы можно было перетаскивать окно (через заголовок)? или хотябы как деактивировать элементы гуи (кнопки, поля ввода и т.д.), но чтобы они не затемнялись, а в обычном их виде были недоступны для использования?

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

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

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


Отправлено: 03:32, 04-01-2007 | #93


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


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

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


Creat0R
Цитата:
Как можно деактивировать гуи
Тебе нужно блокировать не само GUI а скорее обработку событий...
Ведь если запретить обработку событий ВСЕХ кнопок и элементов то это и будет по сути заблокированное GUI.
В функции которая обрабатывает событие кнопки надо поставить условие:
Код: Выделить весь код
Dim $zapret=False
; Пока функция MainEvent() работает кнопка не среагирует
Func MainEvent()
	$zapret=True
		Sleep(3000)
	$zapret=False
EndFunc
; функция кнопки:
Func PressButton()
	If $zapret=False Then
		Msgbox(0,"","Функция кнопки Выполнена")
	Endif
EndFunc
Например оставить $zapret=True пока пользователь не введёт верный пароль и т.п.

-------
Создатель знает, что достиг совершенства не когда нечего добавить, а когда нечего убрать. - Антуан де Сент-Экзюпери

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

Отправлено: 10:09, 04-01-2007 | #94


Аватара для Creat0R

Must AutoIt


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

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


Diamond_m
Цитата:
Тебе нужно блокировать не само GUI а скорее обработку событий...
Нет, именно гуи (или кнопки - т.е элементы), мне нужно чтобы небыло возможности нажать на кнопку, ввести текст в поле ввода, или зажать чекбокс... т.е другими словами - заблокировать с точки зрения интерфейса а не функциональности... и, кстати, хотелось бы также блокировать не только гуи, но и внешние окна, т.е блокировать то можно, но нужно так, чтобы была при этом возможность перетаскивать окно, сворачивать его, или (если есть возможность) разворачивать.

И даже если и подойдёт такой ввариант, у меня слишком много чекбоксов в гуи (более 30-ти), и ставить их всех на условия не очень практичное решение... хотелось бы просто заблокировать элемент (чекбокс к примеру), и чтобы небыло возможности зажать галку, но и вид чтобы оригинальный оставался. Я думал что может есть какой то стиль который это делает, но в справке уже замучался искать

Спасибо за попытку помочь... но мне кажется моей задумке (как и многим другим моим задумкам ), в 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


Отправлено: 10:39, 04-01-2007 | #95


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


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

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


Creat0R
Цитата:
чтобы небыло возможности зажать галку, но и вид чтобы оригинальный оставался.
Могу предложить такое решение.
Код: Выделить весь код
#include <GUIConstants.au3> 
Opt("GUIOnEventMode", 1)
$test= GUICreate("TestCover","400","300")
GUISetOnEvent($GUI_EVENT_CLOSE,"closed")
$cover=GUICtrlCreateLabel("",0, 0, 400,300)
GUICtrlSetState($cover,$GUI_DISABLE)
Dim $status=0
$CTRL_btn1 = GUICtrlCreateButton ("Заблокировать GUI", 180, 130, 120, 22,$BS_DEFPUSHBUTTON)
GUICtrlSetOnEvent($CTRL_btn1,"CoverGui")
$CTRL_Checkbox = GUICtrlCreateCheckbox ("Checkbox",80,5,66,15)
GUICtrlCreateGroup ("RadioGroup", 5, 5, 70, 60)
$radio0 = GUICtrlCreateRadio ("radio1", 10, 20, 50, 15)
$radio1 = GUICtrlCreateRadio ("radio2", 10, 40, 50, 15)
GUICtrlSetState ($radio0,$GUI_CHECKED)
GUICtrlCreateGroup ("",-99,-99,1,1)
$CTRL_edit = GUICtrlCreateEdit ("0", 10, 80, 34, 18,$ES_NUMBER)
GUISetState()
While 1
	Sleep(1000)
WEnd
Func closed()
	Exit(0)
EndFunc
Func CoverGui()
	If $status=1 Then
		GUICtrlSetState($cover,$GUI_DISABLE)
		$status=0
	Else
		GUICtrlSetState($cover,$GUI_ENABLE)
		$status=1
	EndIf
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:13, 04-01-2007 | #96


Аватара для Creat0R

Must AutoIt


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

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


Diamond_m
Цитата:
Могу предложить такое решение
Решение отличное - но нет "защиты от дурака" - нажимаем пробел (или перед этим таб), и кнопка снова нажимается...

Может можно как то блокировать доступ клавиатуры именно в гуи (BlockInput() не предлагать )?

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

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

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


Отправлено: 22:01, 04-01-2007 | #97


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


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

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


Creat0R
Сначала я решил что дело только в стиле кнопки $BS_DEFPUSHBUTTON, который я вставил умышленно для удобства тестирования. К сожалению о пробеле и TAB я не подумал. А что если в функцию CoverGui() после условия Else добавить строчку: ControlFocus("TestCover","",$cover) а в шапке добавить: HotKeySet("{TAB}","nul") где nul() это пустая функция которая ничего ни делает (её так-же придётся дописать). Это сработает! Минус только в том что мы получаем неработающую клавишу {TAB} в системе. Ну и конечно убрать стиль: $BS_DEFPUSHBUTTON с кнопки, чтобы ее нельзя было нажать с помощью ENTER.

Отправлено: 10:12, 05-01-2007 | #98


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


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

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


Creat0R
Ещё проще... Ничего в шапке писать не надо, потребуется только изменить функцию.
Это хотя бы позволит отключить {TAB} только на момент блокировки GUI.
Код: Выделить весь код
Func CoverGui()
	If $status=1 Then
		GUICtrlSetState($cover,$GUI_DISABLE)
		$status=0
		HotKeySet("{TAB}") ;снимаю блокировку {TAB}
		HotKeySet("^{TAB}")
		HotKeySet("+{TAB}")
	Else
		GUICtrlSetState($cover,$GUI_ENABLE)
		$status=1
		ControlFocus("TestCover","",$cover)
		HotKeySet("{TAB}","nul") ; блокирую возможные комбинации {TAB}
		HotKeySet("^{TAB}","nul")
		HotKeySet("+{TAB}","nul")
	EndIf
EndFunc
Func nul()
EndFunc

Последний раз редактировалось Diamond_m, 05-01-2007 в 12:22.


Отправлено: 11:47, 05-01-2007 | #99


Аватара для Creat0R

Must AutoIt


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

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


Diamond_m
Цитата:
Минус только в том что мы получаем неработающую клавишу {TAB} в системе
И Space (если и её таким образом "отключить")....

Ладно, ничего не поделать, придётся деактивировать "некрасиво" ($GUI_DISABLE - или 128).

Есть у меня друга задумка, но она тоже не работает - нужно поставить прогресс бар, и потом отменить его... вот гуи, и не пойму почему не работает такая конструкция:

Код: Выделить весь код
Opt("GuiOnEventMode", 1)
#include <GUIConstants.au3>

Global $ExitLoop
$gui = GUICreate("Abort GUI", 420, 140, -1, -1, $WS_SIZEBOX)
$Button = GUICtrlCreateButton("Start", 180, 20, 70)
GUICtrlSetOnEvent($Button, "Button")
GUISetOnEvent(-3, "ExitScript")

$Progress = GUICtrlCreateProgress(60, 60, 300, 15)

GUISetState(@SW_SHOW)

While 1
   Sleep(100)
WEnd

Func Button()
    GUICtrlSetData($Button, "Abort")
    GUICtrlSetOnEvent($Button, "SetExitLoop")
    While $ExitLoop = 0
        For $i = 10 To 100
            Sleep(10)
            GUICtrlSetData($Progress, $i)
        Next
    WEnd
    GUICtrlSetData($Button, "Start")
EndFunc

Func SetExitLoop()
    $ExitLoop = 1
EndFunc

Func ExitScript()
    Exit
EndFunc

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

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

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:03, 05-01-2007 | #100



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 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.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход