|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] $CmdLine[0,1,2,3], $CmdLineRaw... как этим пользоваться. |
|
|
[решено] $CmdLine[0,1,2,3], $CmdLineRaw... как этим пользоваться.
|
Ветеран Сообщения: 842 |
Не понимаю как написать скрипт. Лучше я свой батник покажу, что мне надо зделать в autoit3 варианте.
..\system32\Cubase.cmd: @if "%1"=="r" regedit.exe & goto sh @if "%1"=="t" taskmgr.exe & goto sh @if "%1"=="s" shutdown -r -f -t 00 & goto sh @if "%1"=="x" shutdown -s -f -t 00 & goto sh @if "%1"=="p" VSTPluginsPath.exe & goto sh @start "" "C:\I\Apps\Cubase\Cubase.exe" %* :sh Наверное после каждого Then будет свой ShellExecute... громозко как-то получится? Вообщем, подскажите, пожалуйста? --- Вот попытался набросок зделать, глючит немнжко ![]() If $CmdLine[0]="r" Then ShellExecute("regedit.exe") ElseIf $CmdLine[1]="t" Then ShellExecute("taskmgr.exe") Else ShellExecute(@ProgramFilesDir & "\Cubase\Cubase.exe", $CmdLineRaw) EndIf ![]() |
|
------- Отправлено: 17:19, 20-08-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Select Case $CmdLine[0]=1 And $CmdLine[1]="r" Run("regedit.exe", @WindowsDir) Case $CmdLine[0]=1 And $CmdLine[1]="t" Run("taskmgr.exe", @SystemDir) Case $CmdLine[0]=1 And $CmdLine[1]="s" Run("shutdown -r -f -t 0", @SystemDir) Case $CmdLine[0]=1 And $CmdLine[1]="x" Run("shutdown -s -f -t 0", @SystemDir) Case $CmdLine[0]=1 And $CmdLine[1]="p" Run("VSTPluginsPath.exe") Case Else Run("C:\I\Apps\Cubase\Cubase.exe "& $CmdLineRaw) EndSelect |
Отправлено: 17:59, 20-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Или так:
If $CmdLine[0] = 0 Then Exit Switch $CmdLine[1] Case "r" Run("regedit.exe", @WindowsDir) Case "t" Run("taskmgr.exe", @SystemDir) Case "s" Run("shutdown -r -f -t 0", @SystemDir) Case "x" Run("shutdown -s -f -t 0", @SystemDir) Case "p" Run("VSTPluginsPath.exe") Case Else Run("C:\I\Apps\Cubase\Cubase.exe "& $CmdLineRaw) EndSwitch |
------- Отправлено: 18:20, 20-08-2010 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать semiono,
$CmdLine[0] возвращает количество параметров. Честно говоря, я сам с ними долго разбирался. Попробуйте создать 2 скрипта. 1-ый: #include <Constants.au3> $mod = Run(@AutoItExe & ' /AutoIt3ExecuteScript Test.au3 Первый_параметр Второй_параметр Третий_параметр', @ScriptDir, @SW_HIDE, $STDOUT_CHILD) $sLog = '' While 1 $sLog &= StdoutRead($mod) If @error Then ExitLoop Sleep(2) WEnd MsgBox(0, '', $sLog) If Not $CmdLine[0] Then ConsoleWrite('Нет параметров' & @LF) Exit EndIf For $i = 1 To $CmdLine[0] ConsoleWrite($CmdLine[$i] & @LF) Sleep(100) Next ConsoleWrite(@LF & 'Все!' & @LF) ![]() PS Кажется, Yashied приводил примерно такой пример на autoit-script.ru, лень искать. |
Отправлено: 18:21, 20-08-2010 | #4 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Очень изящные красивые примеры! Их хоть прямо в справку записывай, отлично!
amel27, Creat0R, madmasles, благодарю! |
|
------- Отправлено: 18:25, 20-08-2010 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Ещё по теме: _CmdLineSetEvent - Обработчик командной строки
|
------- Отправлено: 18:26, 20-08-2010 | #6 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Всётаки эта тема безконечная.
![]() Запускаю консольное приложение, ISCC.exe - кампилятор Inno Setup. Задача просто передать ему управление. Вот батник который работает: \system32\ISCC.cmd Я уже все варианты перебрал наугад, в лучшм случае выдаёт справку, но на вход комманды не хочет воспринимать. #Include <Constants.au3> Run(@ProgramFilesDir & "\Innosup\ISCC.exe ", $CmdLineRaw, ".", $STDERR_CHILD & $STDIN_CHILD & $STDOUT_CHILD) ![]() Смысл флагов $STDIN_CHILD не очень понятен, но где-то что-то я улавливаю приблизительно. )) |
------- Отправлено: 23:32, 20-08-2010 | #7 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата semiono:
|
|
Отправлено: 07:24, 21-08-2010 | #8 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 17:30, 21-08-2010 | #9 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Понял проблему!! Надо было RunWait() теперь не подвисает! Анологично батнику чётко работает.
Но что лучше $STDIO_INHERIT_PARENT или 0x1 + 0x2 ?? И надо ли закрывать процесс StdioClose($pid) ? |
------- Отправлено: 18:16, 21-08-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
SysTreeView32 - как с этим работать? | Firebolt | AutoIt | 20 | 13-10-2011 15:08 | |
что это и как с этим бороться | slava___sl | Лечение систем от вредоносных программ | 5 | 14-08-2009 22:38 | |
EventID - Event ID: 27 Как с этим бороться??? | KraSSotka | Устранение критических ошибок Windows | 0 | 22-10-2008 08:36 | |
Драйвер - Загрузка и выгрузка dll через CMDline | borison | Microsoft Windows 2000/XP | 2 | 29-02-2008 17:50 | |
DRM: как с этим бороться? | X-SAT | Хочу все знать | 6 | 12-02-2007 02:39 |
|