запуск приложения, запуск другого exe |
Здравствуйте, гость ( Вход | Регистрация )
запуск приложения, запуск другого exe |
dimetra |
27.9.2011, 10:06
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 27.9.2011 Пользователь №: 2910 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день. Возникла ситуация, открытия сторонней программы, т.е нужено просто открыть ее и вставить некоторые параметры.
каким образом это можно сделать? |
|
|
silver47 |
27.9.2011, 15:28
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Для этого служит класс QProcess. Подробнее в ассистанте или в примерах. Если там будет непонятно, то могу выложить кусок своей программы, запускаем сторонний процесс и перехватываем его вывод.
|
|
|
dimetra |
27.9.2011, 20:32
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 27.9.2011 Пользователь №: 2910 Спасибо сказали: 0 раз(а) Репутация: 0 |
в общем суть пролемы такая, есть программа privat disk, она создает защифрованный файлик, после ввода пароля она подключает дополнительный диск в системе, где хранятся зашифрованные файлы.
есть очень старючий диск, от которого утерян пароль. собственно весь алгоритм: открыть прогу, добавить шифрованный фаил, ввести пароль, проверить не появился ли в системе еще один диск, зарыть, и все это в цикле! ресурсов правда будет жрать. |
|
|
RazrFalcon |
27.9.2011, 21:22
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Программа privat disk c графическим интерфейсом, или она консольная?
Вам нужно пароль подобрать? Если да, то конечно это будет долго. |
|
|
dimetra |
27.9.2011, 21:31
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 27.9.2011 Пользователь №: 2910 Спасибо сказали: 0 раз(а) Репутация: 0 |
Интерфейс графический, подбор пароля по перебору.
Думаю нужно как то кнопки в интефейсе нажимать Пускай будет долго, мне ради спорта, диску 6 лет, просто забыл что на нем лежит, под шумок и qt изучать буду. |
|
|
silver47 |
28.9.2011, 5:28
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
гм... вот как кнопки нажимать не знаю... Читал когда-то про эмуляцию событий мыши\клавиатуры, но не уверен, что это можно вынести за пределы приложения. А для запуска приложения с параметрами подойдет QProcess
|
|
|
Алексей1153 |
28.9.2011, 8:39
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
программа, где вводится пароль, на чём написана ? Палятся ли контролы Spy++ ? Если да - это ГОРАЗДО проще, если нет, то придётся жёстко задать координаты, да и обратная связь похуже будет (мягко говоря). А всё остальное - реализуется относительно несложно (в винде, по крайней мере, и не на Qt, на WinAPI).
ещё абсолютно не исключено, что программа умеет принимать параметры из командной строки. Попробуй вывести справку Сообщение отредактировал Алексей1153 - 28.9.2011, 8:38 |
|
|
dimetra |
5.10.2011, 22:18
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 27.9.2011 Пользователь №: 2910 Спасибо сказали: 0 раз(а) Репутация: 0 |
нашел пример нажатия кнопок но вот только чего то мало получается с ними...
но api #ifdef Q_WS_WIN #include <w32api.h> #include <windows.h> #endif .......... #ifdef Q_WS_WIN SetCursorPos(pos.x(), pos.y()); Sleep(1); mouse_event(MOUSEEVENTF_MOVE, 0, 0, 0, GetMessageExtraInfo()); Sleep(1); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo()); Sleep(1); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo()); #endif Q_WS_WIN - это что то консольное. как тут отследить нажалась кнопка или нет? есть же другой пример, но с ним проблема т.к он создает форму и в ней уже клацает кнопкой, а у меня сторонее приложение запускается: QMouseEvent *pressedLeftMouseButton = new QMouseEvent(QEvent::MouseButtonPress, QPoint(100,0), Qt ::LeftButton, Qt ::LeftButton, Qt ::NoModifier); |
|
|
Алексей1153 |
6.10.2011, 0:44
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Цитата как тут отследить нажалась кнопка или нет? в общем случае - никак. В частном - нужно знать, какая реакция должна последовать , и по этому косвенному признаку узнавать ) А вот если контролы созданы через WinAPI - там чётко по ID нажатие произойдёт |
|
|
Текстовая версия | Сейчас: 28.3.2024, 18:30 |