1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
||||||
1 | ||||||
Как работать с запущенным внешним приложением?13.02.2016, 18:17. Показов 2766. Ответов 19
Метки нет Все метки)
(
Доброго времени суток. Прошу помочь с следующей проблемой: есть exe-ник который считает контрольную сумму файла. Надо с его помощью открыть файл вычислить контрольную сумму и передать ее моей программе.
Программу запустил:
заранее спасибо.
0
|
|
13.02.2016, 18:17 | |
Ответы с готовыми решениями:
19
Утилита для работы с запущенным оконным приложением Как работать с запущенным консольным приложением?
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
13.02.2016, 18:44 | 2 |
KoSeOl, все зависит от того, что там за программа. Если консольная, то читайте про перенаправление потоков ввода/вывода.
0
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
13.02.2016, 18:51 [ТС] | 3 |
приложение Windows Forms
0
|
Нарушитель
5775 / 1433 / 350
Регистрация: 07.05.2015
Сообщений: 2,820
|
|
13.02.2016, 18:52 | 4 |
KoSeOl, что значит "контрольную сумму"? Хэш? Хэш можно вычислить и с помощью .NET типов.
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
13.02.2016, 18:56 | 5 |
KoSeOl, чужое приложение на винформах проще будет разобрать .NET Reflectorом и вытащить из него нужный код, чем заморачиваться с программным управлением им(если оно там, конечно, не предусмотрено создателями). Да и есть подозрение, что оно и не надо, и все можно сделать проще
![]()
0
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
13.02.2016, 19:59 [ТС] | 6 |
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
13.02.2016, 20:29 | 7 |
![]() Ну что-нибудь вообще про эту программу известно? Куда она выводит нужную информацию и как? Как можно сказать что-то информативное про управление чужой программой, не не зная про нее ничего? ![]() И про функционал, который в той программе реализован, что-то известно? Нельзя ли его, как пишет greg zakharov, просто продублировать в своем приложении, а не заморачиваться с такими вещами? Добавлено через 18 минут В общем случае-для управления чужим приложением, у которого есть окно, можно использовать оконные сообщения(WinApi функция PostMessage/SendMessage, а так же Spy++). В более тяжелых случаях понадобятся DLL иньекция, разного рода хуки, а так же долгое вдумчивое копание в дизассемблированном коде.
0
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
13.02.2016, 22:48 [ТС] | 8 |
Визуально программа работает так:
в программе есть TreeView, ListView, TextBox и кнопка. в TreeView - выбор папки в ListView - выбор файла нажимаем на кнопку и в TextBox появляется контрольная сумма файла выбранного в ListView Добавлено через 5 минут вот пример контрольной суммы "CSVT-8CLR", каким образом ее получает программа мне не известно
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
14.02.2016, 05:02 | 10 |
Солидарен с insite2012, функционал программы простой, проще его переписать в С# чем заморачиваться. В противном случае-берете Spy++ и шлете нужные сообщения нужным контролам.
0
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
14.02.2016, 20:00 [ТС] | 11 |
переписать не проще потому что я не знаю как реализовано формирование контрольной суммы. А по поводу нужных сообщений нужным контролам ссылку не дадите где можно почитать.
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
14.02.2016, 20:15 | 12 |
KoSeOl, spy++ откройте(где-то в папке со студией под названием spyxx), выберите в нем нужное окно и сами все увидите. По каждому оконному сообщению есть инфа на MSDN, а функции, какими они шлются, я уже указал-PostMessage и SendMessage. Но все, это, конечно, как-то через задницу, по уму надо таки узнать да переписать
![]()
1
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
||||||
21.02.2016, 01:06 [ТС] | 13 | |||||
EvilFromHell, спасибо за подсказку частично получилось, а именно считать контрольную сумму после того как вручную в программе выбрал нужный файл. А вот программно передать в запущенную программу адрес файла и заставить просчитать контрольную сумму не получается да и что душой кривить не хватает мне знаний и навыков. Но нашел другой способ. Перетягивая мышкой нужный мне файл на екзешник программы она открывается с вычисленной контрольной суммой. Питался это реализовать с помощью следующего кода передав адрес файла как аргумент при запуске
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
21.02.2016, 07:10 | 14 | |||||
KoSeOl, чтобы программа обрабатывала таким образом поданные аргументы, в ней должно быть это написано. В программе на шарпе они вот тут:
0
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
21.02.2016, 13:45 [ТС] | 15 |
EvilFromHell, Вы меня не поняли я не в окно программы перетягиваю, а на ее ярлык и она запускается с параметрами файла который я перетянул на иконку (или ярлык) приложения. От сюда делаю выводи что args-аргумент в виде пути к файлу все же передается из проводника в программу подсчета контрольной суммы. А вот перетягивание на само окно приложения не работает.
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
22.02.2016, 10:55 | 16 |
KoSeOl, да, извиняюсь, я что-то был уставший и читал невнимательно. Тогда я с ходу не скажу в чем дело, по идее должно было бы работать. Если хотите-можете скинуть программу, попробую.
0
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
22.02.2016, 21:39 [ТС] | 17 |
EvilFromHell, был бы очень благодарен вот программка
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
25.02.2016, 09:33 | 18 | |||||
![]() Решение
KoSeOl, дошли таки руки посмотреть.
1
|
1 / 1 / 0
Регистрация: 01.02.2016
Сообщений: 14
|
|
25.02.2016, 20:12 [ТС] | 19 |
EvilFromHell, да мой вариант тоже работает если путь к файлу передавать в виде
Код
"\"path"\" Код
\" Но теперь есть одно "НО". При поиске в нете я не видел ни разу такой записи аргумента как показали Вы, даже на msdn путь передается просто строкой. Если не тяжело объясните что означает Код
\" Тема закрыта.
0
|
976 / 871 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
25.02.2016, 20:50 | 20 |
KoSeOl, это означает обычные кавычки, которые экранируются, чтобы они считались именно кавычками как символ, а не теми, что ограничивают строку. Нужны они тут для того, чтобы попадающиеся в пути пробелы не делили ее на несколько аргументов, что некорректно обрабатывалось бы прогой.
0
|
25.02.2016, 20:50 | |
Помогаю со студенческими работами здесь
20
Мониторинг используемых файлов запущенным приложением Программное управление внешним приложением Не пойму, как работать с внешним прерыванием ATMega8 Как дальше работать с открытым приложением?
Как работать с ASP.NET MVC 5 приложением после развертывания на сервере? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |