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

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

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

(*.*)


Сообщения: 36560
Благодарности: 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

 

Аватара для TERMINAL

Ветеран


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

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


Maza Faka, Желательно того на которое драйвера не установлены.

-------
Автоматизация прежде всего....


Отправлено: 18:06, 08-11-2008 | #1101



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

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


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


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

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


По поводу удаления фостов после отработки скрипта есть остатки в :
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache]
"C:\\MyProga.exe"="MyProga"
Возможно ли удалить этот хвост если скрипт будет запускаться с разных деректорий.

-------
Да всё гениальное заключаеться в простом!!!


Отправлено: 18:07, 08-11-2008 | #1102


Аватара для TERMINAL

Ветеран


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

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


litus, RegDelete посмотри....

-------
Автоматизация прежде всего....


Отправлено: 18:10, 08-11-2008 | #1103


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


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

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


Я и использую функцию "RegDelete" вот посмотрите даные реестра скрипт "nvda_L"

[HKEY_USERS\S-1-5-21-507921405-796845957-1417001333-500\Software\Microsoft\Windows\ShellNoRoam\MUICache]
"C:\\SintezPark\\nvda\\nvda_L.exe"="nvda_L"
код :
RegDelete("HKEY_USERS\S-1-5-21-507921405-796845957-1417001333-500\Software\Microsoft\Windows\ShellNoRoam\MUICache", ""nvda_L.exe"="nvda_L"")

Хотя даные "nvda_L.exe"="nvda_L" я уже тестировал как токо можно результат равен "неудача" этот премер вовсе выдал ошибку.
Тем более что в начале идет "c: что значит если я буду запускать скрипт с флешки то значение не удалиться а написать "F" здесь тоже не будет мнекажеться правельно так как неизвесно какая буква определиться на другой машине.

-------
Да всё гениальное заключаеться в простом!!!


Отправлено: 20:38, 08-11-2008 | #1104


Аватара для Creat0R

Must AutoIt


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

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


Цитата litus:
Я и использую функцию "RegDelete" вот посмотрите даные реестра »
Неверно используете

Нужно так:

Код: Выделить весь код
RegDelete("HKEY_USERS\S-1-5-21-507921405-796845957-1417001333-500\Software\Microsoft\Windows\ShellNoRoam\MUICache", "nvda_L.exe")
Т.е нужно указывать ключ который следует удалить, значение не нужно.

Цитата litus:
Тем более что в начале идет "c: что значит если я буду запускать скрипт с флешки то значение не удалиться »
Для этого можно импровизировать, и удалять ключ по его значению (первое попавшееся):

Код: Выделить весь код
_RegDeleteEx("HKEY_USERS\S-1-5-21-507921405-796845957-1417001333-500\Software\Microsoft\Windows\ShellNoRoam\MUICache", "nvda_L")

Func _RegDeleteEx($s_Key, $s_Val)
    Local $sCurrent_ValName, $iCount = 1

    While 1
        $sCurrent_ValName = RegEnumVal($s_Key, $iCount)
        If @error <> 0 Then ExitLoop

        If String(RegRead($s_Key, $sCurrent_ValName)) = $s_Val Then Return RegDelete($s_Key, $sCurrent_ValName)

        $iCount += 1
    WEnd

    Return @error
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

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

Отправлено: 21:36, 08-11-2008 | #1105


Аватара для semiono

Ветеран


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

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


Есть идея, но неполучается релизовать. Я подумал, а может написать утилиту на AutoIt положить её в system32 и пользоваться. Надо зделать так чтоб файлик читал команду на входе и передавал её cmd.exe,
в его задачу только бы входило скрывать консоль. Вот что я мудрил тут, но безуспешно -
Run(@ComSpec & " /c " & '%1', "", @SW_HIDE)
Почему не работает и как это довести до ума?
Все проги типа hide cmd нифига не умеют, максимум что могут лишь батник запустить! А мне надо чтобы налету комманды передавались команд процессору, причём какие угодно, например: "/k start /w command1 & command2 & command3 & exit"
cmdow и chp вообще не могут работать без explorer.exe - лажёвые утилиты блин.

Может у когонибудь сохранилась утилита http://www.siginetsoftware.com/forum...hread.php?t=18 ато ссылка битая, поглядеть бы что за тулс?

Есть ещё проблемма по автоиту, если скажем скрипт был запакован в SFX архив, который распаковывается во временную папку, то скрипт не может удалить исходный файл архива! Нсмотря на то что по идее сабж уже
находится в темп папке и исходный архив по идее уже и не нужен как бы! Ведь сабж уже в темп фолдере!
Тем не менее запускающий архив защищён, можно подумать что контент обратно в него из темпа заархивируется
после выполнения -чушь! Но такова реальность! 0_.

Отправлено: 13:39, 09-11-2008 | #1106


Аватара для Creat0R

Must AutoIt


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

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


semiono,
Цитата semiono:
Почему не работает »
Как проверяется что оно не работает? Я уверен что в списке процессов у тебя висит скрытый cmd.exe
Чтобы скрыть консольное окно нужно использовать WinSetState("[CLASS:ConsoleWindowClass]", "", @SW_HIDE).

Цитата semiono:
запускающий архив защищён, можно подумать что контент обратно в него из темпа заархивируется
после выполнения »
На самом деле оно так и есть, некоторые архивы перепаковываются по необходимости (так по крайней мере, себя ведёт упаковщик от Winrar).

Удалить можно после выхода скрипта, через тот же @ComSpec, но это при условии что после выхода скрипта архив не запускает/использует другие программы/файлы:

Код: Выделить весь код
Run(@ComSpec & ' /c ping -n 2 localhost > nul & del /q /f "' & $sArchiveFile & '"', '', @SW_HIDE)

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

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

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

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

Отправлено: 14:01, 09-11-2008 | #1107


Аватара для semiono

Ветеран


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

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


Цитата Creat0R:
Как проверяется что оно не работает? »
Команды не "ловит", оно может и висит, так как я его из консоли запускал, но
MyProg.exe "notepad.exe new.txt" не получается! Или что либо в этом роде...

Цитата Creat0R:
Удалить можно после выхода скрипта, »
То-есть нужна лишь задержка времени пингом? Кстати, а кроме пинга нету альтернативных вариантов оттягивания времени, просто интересно?

Я извиняюсь, а как WinSetState("[CLASS:ConsoleWindowClass]", "", @SW_HIDE) совместить с запуском Run()

Или это все консоли скрывает которые на пути попадаются Можно кусочек кода показать?
В часности как Run(@ComSpec & " /c " & '%1', "", @SW_HIDE) объединить с этим всем?

-------
Полезное сообщение


Последний раз редактировалось semiono, 09-11-2008 в 15:02.


Отправлено: 14:26, 09-11-2008 | #1108


Аватара для Creat0R

Must AutoIt


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

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


semiono,
Цитата semiono:
Команды не "ловит", оно может и висит, так как я его из консоли запускал, но
MyProg.exe notepad.exe new.txt не получается! »
Затрудняюсь понять. Что конкретно требуется? задать уже открытому консольному окну параметры/команды? Думаю что только если послать их через ControlSend... хотя я вроде где то видел решение, которое позволяет подключаться к потоку Std другого процесса, тогда можно писать в него через StdInWrite.

Цитата semiono:
нужна лишь задержка времени пингом? »
Да.

Цитата semiono:
кроме пинга нету альтернативных вариантов оттягивания времени »
Встроенными средствами cmd'а вроде нет (по крайней мере не в XP).

Цитата semiono:
как WinSetState("[CLASS:ConsoleWindowClass]", "", @SW_HIDE) совместить с запуском Run() »
Никак - Эта команда скроет консольное окно (то что на фронте).

Цитата semiono:
Или это все консоли скрывает которые на пути попадаются »
Чтобы скрыть все, нужно пройтись по списку окон через WinList("[CLASS:ConsoleWindowClass]").

Цитата semiono:
как Run(@ComSpec & " /c " & '%1', "", @SW_HIDE) объединить с этим всем? »
Лучше опиши подробнее задачу, что именно нужно с точки зрения пользователя.

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

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

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

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

Отправлено: 15:51, 09-11-2008 | #1109


Аватара для semiono

Ветеран


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

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


Ok! Я уже пытался объяснить, ща попробую ещё...
В поисках утилит скрывающих cmd.exe window я вдруг подумал, а ведь наверняка это можно реализовать самому на AutoIt!
Конкретно, нужно написать скрыватель окна cmd.exe.
Как мне представляется - наша прога, кампилированный (Aut2Exe) скрипт пусть называется hidec.exe
Мы вводим в коммандной строке, или в батнике, или в меню Пуск >Выполнить (не знаю есть ли различие),
вводим кароче такое:
# hidec.exe notepad.exe && calc.exe && mmsys.cpl && exit
в реале у нас получается, что hidec.exe просто передаёт все эти комманды cmd.exe процессору на выполнение, то-есть всё просто пропускает через себя и перенаправляет в cmd.exe.
Единственную цель тут выполнить hidec.exe должен - это не позволить открываться окну cmd.exe

Если что-то не понятно, я пишу, я объясню ещё...

Кстати, утилита http://legroom.net/software/openargs - такой же автоит только там с другими задачами, так что идея создания утилиты не мной придумана


Вроде бы Run(@ComSpec & " /c " & '%1', "", @SW_HIDE) должен работать, но он чёто молча поглощает ввод

-------
Полезное сообщение


Последний раз редактировалось semiono, 09-11-2008 в 16:51.


Отправлено: 16:40, 09-11-2008 | #1110



Компьютерный форум 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




 
Переход