Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: lex_newton от Февраля 27, 2009, 17:50



Название: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: lex_newton от Февраля 27, 2009, 17:50
Имеется очень много самораспаковывающихся архивов TM FilePaker Self-extractor(тысячи файлов).
Необходимо их все расспаковать.
Разумеется, запускать программу, нажимать на кнопку расспаковать и закрывать окно не хочется.
Опытным путем было определено, что для того, чтобы расспаковать файл и закрыть программу достаточно сделать следующую последовательность действий: запустить файл, нажать на <ENTER>, нажать на <ALT+F4>. Причем, можно не дожидаться окончания предыдущей операции.

Собственно задача состоит в сдедующем. как бы мне расспаковать все эти файлы проделав сл. последовательность действий:
Запуск файла
Эмитация нажатия <ENTER>
Эмитация нажатия <Alt+F4>

Создав процесс при помощи QProcess можно получить его PID.
Каким образом используя этот PID можно послать сочетания клавиш этому процессу активному окну? (средствами Qt. через winapi не так интересно ;)  )

P.S.: А может ктото знает уже готовое решение данной проблемы? Буду очень признателен ;)


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: lit-uriy от Февраля 27, 2009, 18:26
под виндовоз есть программы, которые запоминают твои действия, а потом могут воспроизвести. Но мне ими пользоваться не приходилось.


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: lex_newton от Февраля 27, 2009, 20:24
Не.. это не то.  Ниразу не видел, чтобы оно могло применять одно и тоже действие для разных exe файлов. да еще и само по списку их запускало.


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: BRE от Февраля 27, 2009, 20:31
Имеется очень много самораспаковывающихся архивов TM FilePaker Self-extractor(тысячи файлов).
Необходимо их все расспаковать.
А ключей у него никаких нет, чтобы окно не открывать, а просто распаковать? Хотя в венде все может быть...


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: lex_newton от Февраля 27, 2009, 22:14
Может быть они и есть.. но никаким образом мне не удалось их нагуглить или получить от проги... А в дебагер лезть и изучать побайтно, не хочется...


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: BRE от Февраля 27, 2009, 22:24
Может быть они и есть.. но никаким образом мне не удалось их нагуглить или получить от проги... А в дебагер лезть и изучать побайтно, не хочется...
А сам архиватор (tmfilepacker.exe или как он называется) не может распаковывать свои-же self-архивы?
RAR вроде бы умел, может и он может.
А то как то это странно все.


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: lex_newton от Февраля 27, 2009, 22:47
Ну, тот что я качал, даже не определял их как архивы ;) вроде с офф. сайта даже..
да и вообще, их вроде не архиватор, а еще одна их тулза создает...

--

Но сабж мне больше интерестен ;) как такое можно сделать?


Название: Re: Эимитация сочетания клавиш в стороннем процессе.
Отправлено: BRE от Февраля 27, 2009, 22:50
Но сабж мне больше интерестен ;) как такое можно сделать?
Через winapi only.