|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты |
|
[Архив - Часть 1.3] AutoIt скрипты
|
Старожил Сообщения: 250 |
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе 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 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
![]() Вернее доходит (это я с полным именем проверял, включая расширение), но возвращается всегда ноль ![]() |
|
Последний раз редактировалось Creat0R, 03-03-2007 в 17:36. Отправлено: 14:40, 03-03-2007 | #251 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
попробуй запустить архивацию каталога и проверить процесс "winrar", FYI: эта функция показывает мгновенное значение загрузки CPU |
Отправлено: 02:36, 05-03-2007 | #252 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать люди подскажите пожалуйста
недавно аозникла проблема доведения инсталяции софта до уровня автомата... почти сразу столкнулся с проблемой - не могу заставить скрипт определить сидюк. если прописываешь жестко с какого диска стартовать софтину, то все прекрасно, но когда надо чтоб он сам запуске скрипта определял под каким диском идет сидюк, возникают проблемы, команда неверна и тому подобное.... заранее благодарен |
Отправлено: 11:57, 05-03-2007 | #253 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
#include <GuiConstants.au3> GUICreate("CPU Usage Test", 200, 200) $ProcessName = "AutoIt3" $StatusBar = GUICtrlCreateLabel("CPU Usage: ", 0, 185, 200, 15, BitOr($SS_SIMPLE,$SS_SUNKEN)) GUISetState() AdlibEnable("SetStatus", 20) While GUIGetMsg() <> -3 WEnd Func SetStatus() GUICtrlSetData($StatusBar, "CPU Usage: " & _GetCPUUsage($ProcessName)) EndFunc ![]() И ещё, а для чего по умолчанию стоит процесс idle, как я понял это типа “Бездействие системы”? но если оставлять по умолчанию, то возвращается тоже ноль, хотя в Диспетчере задач если ничего не грузит процессор то это значение становиться 99. P.S Что такое FYI? Izh Цитата:
|
||
------- Последний раз редактировалось Creat0R, 06-03-2007 в 03:20. Отправлено: 16:44, 05-03-2007 | #254 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Как определить период бездействия пользователя (пример):
#include <Date.au3> Opt("TrayIconHide", 1) $IdleMinimum = 1000 ; Количество допустимых секунд неактивности $LogFileName = StringTrimRight (@ScriptFullPath, 4) & ".log" ; Имя файла журнала While 1 ; Ожидание неактивности достаточной длительности $iIdle = _IdleWaitCommit ($IdleMinimum) ; Запись этого события в лог Local $sHours = '', $sMins = '', $sSecs = '' $iHours = Int ($iIdle/3600) If $iHours Then $sHours = $iHours & ' часов ' $iMins = Int (Mod ($iIdle, 3600)/60) If $iMins Then $sMins = $iMins & ' минут ' $iSecs = Round (Mod (Mod ($iIdle, 3600), 60)) If $iSecs Then $sSecs = $iSecs & ' секунд' FileWriteLine ($LogFileName, _Now () & ' ' & @UserName & ' неактивен ' & $sHours & $sMins & $sSecs & @CRLF) Wend ; Функция: ожидание неактивности пользователя. ; Возвращает: время неактивности в секундах. ; $idlesec - минимальная длительность ожидаемой неактивности в сек. Func _IdleWaitCommit ($idlesec) $idlesec = $idlesec * 1000 Local $iSave, $LastInputInfo = DllStructCreate ("uint;dword") DllStructSetData ($LastInputInfo, 1, DllStructGetSize ($LastInputInfo)) DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo)) Do $iSave = DllStructGetData ($LastInputInfo, 2) Sleep(500) DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo)) Until (DllStructGetData ($LastInputInfo, 2)-$iSave) > $idlesec Return Round ((DllStructGetData ($LastInputInfo, 2)-$iSave)/1000) EndFunc |
Последний раз редактировалось amel27, 06-03-2007 в 07:35. Отправлено: 05:51, 06-03-2007 | #255 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Ну... значит процесс не может определить загрузку самого себя, т.к. эти операции выполняются синхронно - пока WMI вычисляет загрузку сам процесс (AutoIt3) ожидает ответа, т.е. действительно простаивает... потому я и сказал о мгновенном значении. по поводу Idle - там скорей всего общая загрузка CPU P.S. FYI - For Yur Information ![]() |
Отправлено: 07:33, 06-03-2007 | #256 |
Пользователь Сообщения: 73
|
Профиль | Отправить PM | Цитировать Цитата:
$source = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup", "SourcePath") runwait($source & 'Software\prog.exe') это хорошо работает на этапе GuiRunOnce, при автоустановке софта. но может и дальше использоваться если конфигурация носителей не меняется |
|
Отправлено: 07:58, 06-03-2007 | #257 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Цитата:
Цитата:
Цитата:
![]() Цитата:
![]() |
|||||
------- Отправлено: 12:58, 06-03-2007 | #258 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
исправил скрипт - добавил усреднение по заданному интервалу (в "тиках"), кроме того процесс может теперь передаваться как по имени, так и по PID. |
Отправлено: 09:37, 07-03-2007 | #259 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Хотя мне пока не удаётся подобрать оптимальный интервал использования этой функции (между каждым её вызовом и установкой тикания ![]() Цитата:
Мне вообще то всё это нужно для одного моего небольшого проэктика, я пытаюсь написать утилитку менеджер процессов - Получилось ВСЁ что хотел, кроме (теперь корректного, т.е в реальном времени) слежения за загрузкой ЦП (каждого процесса в отдельности и общего использования), и использования памяти каждым процессом. Мне удалось адаптировать многие функции из офф. форума, естественно кучу твоих функции, и пару собственных. Утилита позволяет просматривать подробную информацию о процессе, имеет почти все те же функции что и у встроенного taskmgr.exe в Windows (включая собственный диалог запуска приложении - FileRun), и даже чуть чуть больше ![]() Добавлено: amel27 Цитата:
![]() |
|||
------- Отправлено: 05:51, 08-03-2007 | #260 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|