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

Компьютерный форум 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,
Цитата NikLok:
скрипт определения пути, куда установилась программа »
Смотря какая программа, вопрос довольно смутный, подробнее можно?

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

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

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


Отправлено: 20:26, 08-07-2008 | #711



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

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


Аватара для beve

Старожил


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

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


Вот такой вопрос: хочу вставить условие в условие, примерно вот так:
if (MsgBox(4100, "Внимание", "Окно выбора")) = 6 Then

$sSystemDate = @MDAY & "/" & @MON
If $sSystemDate = "08/07" Then
SplashTextOn("Поздравляю!", "Мой текст!", 800, 350, -1, -1, 4, "", 25)
Sleep(1000)
SplashOff()
Exit
Else
EXIT
ENdif


Тоесть если в первом окне ответить ДА, то началось второе условие, а если нет, то выход вобще. Но при моей раскладке требует ENdif, но я же не могу вставить ENdif ибо второе условие выполнятся не будет. Помогите советом.

Отправлено: 22:48, 08-07-2008 | #712


Аватара для Creat0R

Must AutoIt


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

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


beve,
Цитата beve:
если в первом окне ответить ДА, то началось второе условие, а если нет, то выход вобще »
Можно проверять не 6, а 7, и тогда просто Exit.

Цитата beve:
при моей раскладке требует ENdif, но я же не могу вставить ENdif ибо второе условие выполнятся не будет »
Там нехватает ещё одного EndIf в конце, т.к на каждый If .... Then должно быть EndIf (если после Then идёт перевод строки и ещё команды)...

Код: Выделить весь код
;Первый вариант, всё находится в условии, <если нажата кнопка "Да">.
If MsgBox(4100, "Внимание", "Окно выбора") = 6 Then
    $sSystemDate = @MDAY & "/" & @MON

    If $sSystemDate = "08/07" Then
        SplashTextOn("Поздравляю!", "Мой текст!", 800, 350, -1, -1, 4, "", 25)
        Sleep(1000)
        SplashOff()
        Exit
    Else
        Exit
    EndIf
EndIf

;Второй вариант, выход из скрипта если нажата кнопка "Нет".
If MsgBox(4100, "Внимание", "Окно выбора") = 7 Then Exit

$sSystemDate = @MDAY & "/" & @MON

If $sSystemDate = "08/07" Then
    SplashTextOn("Поздравляю!", "Мой текст!", 800, 350, -1, -1, 4, "", 25)
    Sleep(1000)
    SplashOff()
    Exit
Else
    Exit
EndIf

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

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

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

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

Отправлено: 23:19, 08-07-2008 | #713


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Не подскажешь ещё такой момент в RegExp...
Мне нужно заменить число в имени файла, тоже на число, на единицу больше, но при этом нужно оставить все остальные значения, т.е я просто решил что на каждый нужный мне кусок с имени файла будет назначена группа, а в параметре Replace она будет Использоваться, и между группами я просто подставляю нужное число, но получается что оно как бы добавляет к значению группы

Код: Выделить весь код
$Num = "2"
$Var = StringRegExpReplace("FileName (1).txt", "(.*)(1)(.*)$", "\1" & $Num & "\3")
ConsoleWrite($Var)
Тут получается что используется не «\1», а «\12» - Как можно отменять числа в этом случае?

P.S
Без групп почему то не получается...

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

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

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


Отправлено: 07:06, 09-07-2008 | #714


Ветеран


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

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


Creat0R,
Цитата Creat0R:
Смотря какая программа, вопрос довольно смутный, подробнее можно? »
Да я в общем так и ответил. -
каждая программа хранит свои данные об установке в разных ключах реестра, потому универсальный скрипт вряд ли прокатит! Скорее всего придется знать ветку для каждой программы!
Код: Выделить весь код
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\8.0\Installer", "Path")
if @error then
MsgBox(4096, "Program files are in:", "Progarm Adobe not installed")
Else
MsgBox(4096, "Program files are in:", $var)
EndIf

$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\9.0\Installer", "Path")
if @error then
MsgBox(4096, "Program files are in:", "Progarm Adobe not installed")
Else
MsgBox(4096, "Program files are in:", $var)
EndIf

exit

Есть более актуальный вопрос!!! Как определить ставлюсь я на виртуальной машине или на реальной!
Я использую VMWare, и пока думаю делать это проверкой наличия их видеоадаптера с VEN_15AD&DEV_0405
Как обстоят дела под другими виртуалками и каие есть готовые скрипты у кого нибудь.

Связано это с тем, что например программы работающие со SMART таблицами дисков под VMWare ставить пока вроде смысла нет, так как не эмулируются и выдаются всякие нештатные сообщения. (6.0.0 b45731)

Отправлено: 10:51, 09-07-2008 | #715


Аватара для ShaddyR

Железных Дел Мастер


Moderator


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

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


поправьте ссылку в шапке
Цитата Vadikan:
Русская справка »
на http://www.autoitscript.com/autoit3/docs.shtml

-------
[FAQ] Как определить аппаратную конфигурацию компьютера и правильно задать вопрос
-------
В благодарность за помощь нажимаем ссылочку "Полезное сообщение" внизу этого самого сообщения (подробнее). Помните: админ конфеты НЕ ПЬЁТ ;)
-------
Говори, что думаешь и думай, что говоришь! (c) || МОЙ ShaddyR.at.UA/blog - Новая метла и инвентаризация)


Отправлено: 11:49, 09-07-2008 | #716


Googler


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

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


Creat0R
Цитата:
Тут получается что используется не «\1», а «\12» »
да, на оффсайте поднимали эту тему неоднократно, но по-моему глухо
могу предложить обходной вариант
Код: Выделить весь код
$Num = "2"
$Var = StringRegExpReplace("FileName (1).txt" &$Num, "(.*)(1)(.*)(\d)$", "\1\4\3")
ConsoleWrite($Var&@CRLF)
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:30, 09-07-2008 | #717


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата amel27:
на оффсайте поднимали эту тему неоднократно »
Вот найти бы где....

Цитата:
могу предложить обходной вариант
Хм.. необычный вариант - Но имхо, он не очень надёжный, всегда остаётся риск того что на конце имени файла будет добавлена лишняя цифра...

Я ещё так придумал:

Код: Выделить весь код
$iFind_Num      = 1
$iNum           = $iFind_Num + 1

$sDelim1        = " ("
$sDelim2        = ")"

$sDelim1_RE     = StringRegExpReplace($sDelim1, '([][{}()|.?+*\\^])', '\\\1')
$sDelim2_RE     = StringRegExpReplace($sDelim2, '([][{}()|.?+*\\^])', '\\\1')

$Var = StringRegExpReplace("FileName (1).txt", "(.*)" & $sDelim1_RE & $iFind_Num & $sDelim2_RE, "\1" & $sDelim1 & $iNum & $sDelim2)

ConsoleWrite($Var & @CRLF)


Мне просто известны заранее разделители, а вот цифра которую нужно найти и заменить может всё время меняться, а может и вовсе не существовать (просто FileName.txt).

P.S
Это я доделываю функцию _FileNewNameEx(), чтобы не получилось имён с лишними добавками (типа "FileName (1)(1).txt"). Позже выложу...

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

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

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:02, 09-07-2008 | #718


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


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

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


Ситуация:
В системе два пользователя, админ и просто юзер.
Есть программа, которая может запускаться только с админскими правами.
Программа в процессе работы должна брать файлы с сетевого диска.

Что я сделал:
Залогинился под админом, сделал автомонтирование сетевого диска. Всё отлично работает, при каждом входе под админом автоподключается сетевой диск.
Скомпилировал скриптик запуска этой проги с правами админа: RunAsWait("Администратор", "org.local", "пароль", 4, "прога с полным путём").

Проблема:
Когда из под юзера запускаю эту прогу, что через скрипт, что через "Запуск от имени администратора" - программа не видит сетевой диск, лезу через Open file, а сетевой диск перечеркнут.

Вопрос:
Так и должно быть, что из под RunAs винда (vista) не автомантирует сетевой диск?
Как можно с помощью скрипта подмонтировать его? И как потом размонтировать, если это необходимо?

Отправлено: 16:43, 09-07-2008 | #719


Googler


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

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


Creat0R
Цитата Creat0R:
Вот найти бы где »
я сходу тоже не нашел, но помню что в ответ было молчание...
Цитата Creat0R:
всегда остаётся риск того что на конце имени файла будет добавлена лишняя цифра »
угу, требуется соблюдение формата, значит придется сначала проверять обычным ReExp()
Цитата Creat0R:
Я ещё так придумал »
ну тогда можно еще в два захода - сначала заменить цифру на спецсимвол, не встречающийся в именах файлов (*?), а потом его заменить на нужную подстановку

Отправлено: 17:01, 09-07-2008 | #720



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




 
Переход