crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> запуск приложения, запуск другого 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


фрилансер
******

Группа: Участник
Сообщений: 2886
Регистрация: 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


фрилансер
******

Группа: Участник
Сообщений: 2886
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата
как тут отследить нажалась кнопка или нет?


в общем случае - никак. В частном - нужно знать, какая реакция должна последовать , и по этому косвенному признаку узнавать ) А вот если контролы созданы через WinAPI - там чётко по ID нажатие произойдёт
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.9.2019, 23:55