Цитата Vincent7:
однако в моем коде нужно чтобы нажатие эмулировалось во время выполнения консольной программы, а не после »
|
Ну так...А в чем проблема прочитать описание плагина, которым пользуетесь?
И как вы копировали мой код, если удалили из команды нужную переменную?
Цитата http://nsis.sourceforge.net/ExecCmd_plug-in:
ASYNC
Does not wait for process exit. Use 'wait' call if you want to get exit code. (/NOUNLOAD is mandatory!)
|
Код:

ExecCmd::exec /NOUNLOAD /ASYNC /TEST '"$SYSDIR\cmd.exe" /c $EXEDIR\sisInstall.exe extractAll I:\sku.sis D:\Games' "D:\h"
Ваш процесс будет запущен параллельно установщику, а там уже определяйте по поиску окна с циклом, завершился он или нет как вариант...
Код:

ExecCmd::exec /NOUNLOAD /ASYNC /TEST '"$SYSDIR\cmd.exe" /c $EXEDIR\sisInstall.exe extractAll I:\sku.sis D:\Games' "D:\h"
FindWindow $0 "ConsoleWindowClass" "$SYSDIR\cmd.exe"
IsWindow $0 0 -1
stSend:
sleep 1000
FindWindow $0 "ConsoleWindowClass" "$SYSDIR\cmd.exe"
IsWindow $0 0 noWindow
SendMessage $0 ${WM_CHAR} "0x0D" "0"
goto stSend
noWindow:
Указанный выше код будет постоянно посылать окну нажатие кнопки с интервалом в 1 секунду, пока окно существует
И, если вы хотите, чтобы ваш код с командной строкой работал на всех системах, я вам уже говорил в отличии заголовков окон в WinXP и Win7 (в Win8 не помню как), так что вам сначала нужно определить ОС и в зависимости + типа учетной записи менять искомый заголовок командной строки...
Лень сейчас писать вам код, подумайте хоть чуток сами...
читать дальше »
Код:

Определяем ОС
Определяем тип учетки
Если значение билда ОС выше 5 (WinXP 5.1) И тип учетки админ - в переменную заголовка кидаем текст с приставкой "Администратор"
Я с командной строкой не работал, ещё раз повторюсь, возможно, это и не нужно...Поправьте меня, если кто тесно работал с командной строкой