Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.68
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
#1

Скрытый запуск внешней программы - C++

10.09.2009, 15:02. Просмотров 5063. Ответов 13
Метки нет (Все метки)

Здравствуйте, товарищи!

Подскажите, можно ли запустить как-то чужую программу в скрытом режиме (в Windows)?

Я запускаю программу при помощи CreateProccess, но при этом в трее появляется ее значок...
Мне же необходимо, чтобы внешне это никак не проявлялось. Есть ли какие-то способы это осуществить?

За ранее спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2009, 15:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Скрытый запуск внешней программы (C++):

Запуск внешней программы - C++
В программе создается некое изображение, которое потом нужно открыть внешней программой. Но до для начала хотелось бы понять как просто...

Запуск внешней программы перед компиляцией - C++
Задача следующая: Есть код типа: #define SITUATION(N, description) {return N;} void (SomeFunc(){ if (/*some_condition*/...

Скрытый запуск exe файла - C++
Мне нужно запустить exe так, чтобы окно не появилось, но программа работала (как бы в фоне). Создал Win32 приложение (пустое). Делал...

Запуск программы без создания окна. Запуск фоновой программы - C++
Вопрос, как сделать, чтобы консольное приложение при запуске не создавало окошко консоли. Т.е. запустился процесс, но визуально ничего не...

Обработка события внешней программы - C++
Привет всем, Пытаюсь написать плагин на C++ для приложения KD. Данное приложение взаимодействует с библиотекой написанной на VB6, или...

Не ждать завершения запущенной внешней программы - C++
Я запускаю из своей программы внешний экзешник при помощи system(command). Но данный вариант меня не устраивает, т.к. приходится ждать...

13
Aleksanderac
45 / 18 / 1
Регистрация: 01.02.2009
Сообщений: 168
10.09.2009, 15:35 #2
Цитата Сообщение от Haster Посмотреть сообщение
Здравствуйте, товарищи!

Подскажите, можно ли запустить как-то чужую программу в скрытом режиме (в Windows)?

Я запускаю программу при помощи CreateProccess, но при этом в трее появляется ее значок...
Мне же необходимо, чтобы внешне это никак не проявлялось. Есть ли какие-то способы это осуществить?

За ранее спасибо!!!
STARTUPINFO Startlnfo = { sizeof(TStartupInfo) };
PROCESS_INFORMATION Proclnfo;
LPCTSTR s;
Startlnfo.cb = sizeof(Startlnfo);
Startlnfo.dwFlags = STARTF_USESHOWWINDOW;
Startlnfo.wShowWindow = SW_HIDE;
SW_HIDE; запуск программы в скрытом режиме или оно не помогает?
1
-=ЮрА=-
Заблокирован
Автор FAQ
10.09.2009, 15:42 #3
Можно запустить программу. а потом найти её окошко (например через EnumWindows) и использовать функцию ShowWindow(hWnd,SW_HIDE);, Aleksanderac тоже самое прописал в Startlnfo.wShowWindow ...
1
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
10.09.2009, 17:25  [ТС] #4
В принципе, я так и запускаю программу, с установленным атрибутом SW_HIDE, но окошко вылезает именно в трее (т.е. там где часы размещены). А главное окно, как и следовало, скрыто
0
Aleksanderac
45 / 18 / 1
Регистрация: 01.02.2009
Сообщений: 168
10.09.2009, 17:36 #5
Цитата Сообщение от Haster Посмотреть сообщение
В принципе, я так и запускаю программу, с установленным атрибутом SW_HIDE, но окошко вылезает именно в трее (т.е. там где часы размещены). А главное окно, как и следовало, скрыто
Тогда имеет смысл поковыряться в настройках проги и снять флажок показывать в трее или сворачиваться в трей, что-нибудь в этом роде...

А что за прога, если не секрет?
1
-=ЮрА=-
Заблокирован
Автор FAQ
10.09.2009, 17:50 #6
Тогда с треем предлагаю разобраться так :
сначала окошко проги отображаем как
ShowWindow(hWnd,SW_MAXIMIZE);
а после этого
ShowWindow(hWnd,SW_HIDE);

Хотя такое покатит если трей у программы при её минимизации предусмотрен
Даже самому интересно стало, на днях по-любому напишу что у меня вышло по этой проблемме, сажусь проект писать...
1
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
11.09.2009, 09:05  [ТС] #7
Aleksanderac, внешняя программа - Pspice.exe - ПО из комплекта OrCAD 10.5, предназначенная для симуляции электрических схем.

-=ЮрА=-, если интересно, то могу выслать Pspice, чтобы было на чем экспериментировать )))
А вообще, по моему если окну присвоить флаг SW_MAXIMIZE, то не будет ли на миг распахиваться окно программы?
А вообще вопрос действительно интересный, а главное нужный )) Пойду копать дальше, если что - отпишусь )))
0
Aleksanderac
45 / 18 / 1
Регистрация: 01.02.2009
Сообщений: 168
11.09.2009, 09:35 #8
Хм. Самому интересно стало. Отпишитесь о результатах плиз
И так, чисто думки:
-=ЮрА=- развернуть и потом скрыть, тоже мысль. Но вдруг Pspice.exe при запуске изначально ставит иконку в трей, хоть программа свернута, хоть открыта. Как например аська - qip,miranda.
Надо посмотреть в просторах интернета, может кто сталкивался с этим...
0
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
11.09.2009, 09:42 #9
Haster,
В принципе, я так и запускаю программу, с установленным атрибутом SW_HIDE, но окошко вылезает именно в трее (т.е. там где часы размещены). А главное окно, как и следовало, скрыто
перед запуском программы нужно установить хук на функцию Shell_NotifyIcon, который ничего не будет делать (например просто возвращать статус ошибки)
как поставить хуки - гоогле "как поставить хуки"
1
schdub
2952 / 1297 / 239
Регистрация: 19.01.2009
Сообщений: 3,409
Завершенные тесты: 1
11.09.2009, 09:48 #10
Без помощи "хаков", ты никак не удалишь, запущенную тобою прогу из списка процессов. Копай в сторону:

В журнале ][акер за май этого года есть отличная статья Александра Эккерта - "Игры в прятки на уровне ядра" - советую почитать.

Статья в MSDN :
What Goes On Insade Windows 2000: Solving the Misteries of the Loader.

Three Ways to Inject Your Code into Another Process.
http://www.codeproject.com/threads/winspy.asp
Dll Injection
http://codebreakersjournal.com/content/view/127/97
1
-=ЮрА=-
Заблокирован
Автор FAQ
12.09.2009, 11:29 #11
Цитата Сообщение от Haster;264057...[b
-=ЮрА=-[/b], если интересно, то могу выслать Pspice, чтобы было на чем экспериментировать )))
...
Давай прогу, буду думать, так даже правельней будет - под конкретную задачу работать, всё что могу сказать пока не увижу прогу что для снятия трей иконки в проге всегда юзаю Shell_NotifyIcon(NIM_DELETE,&nf); где NOTIFYICONDATA nf. Жду объекта для экспериментов
0
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
14.09.2009, 10:08  [ТС] #12
Думал над Shell_NotifyIcon, но не прокатывает... Ей для работы нужно знать хэндл окна и ID-иконки треевской, который не получить.
Кроме того, адача усложняется тем, что Pspice.exe запускается с ключами /R /E, в итоге прога запускается, симулирует схему и сразу же завершается... В общем, у меня пока тупик ;-)


-=ЮрА=-, я уезжаю в отпуск, инета там, скорей всего, не будет... Так что не удивляйся, что долго не буду отвечать ;-))) Желаю удачи, сам тоже буду работать над проблемой!

P.S. Скидывать Pspice накладно, так как у него куча зависимостей, а со всеми Dll-ками получается много места. Если будет желание, то OrCAD 10.5 можно скачать тут:
ссылка
http://kazus.ru/programs/viewdownload/kz_0/cid_220.html
0
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
12.10.2009, 14:44  [ТС] #13
-=ЮрА=-, только что вернулся из Донецка )
Ну как, ничего не получилось?
0
RealHeroes
8 / 8 / 1
Регистрация: 28.02.2011
Сообщений: 49
10.04.2011, 22:46 #14
Hamachi запускается открыто даже если стоит параметр SW_HIDE
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2011, 22:46
Привет! Вот еще темы с ответами:

Win32 скрытый запуск - C++
Есть консольное приложение Win32 сответственно при запуске открывается консоль как сделать так что б консоль неоткрывалась тоесть как...

Не является внутренней или внешней командой - ошибка не при компиляции а при работе программы - C++
В VS скомпилировал код #include <iostream> using namespace std; int main() { int a; cout<<"Hallo"; cin>>a; cout<<a; ...

Запуск G++ из программы - C++
Друзья! Я написал транслятор (превращает код на своем языке в .cpp). Теперь хотелось бы прикрутить к нему g++, что бы программа могла бы...

Запуск программы - C++
Не знаю в какую лучше тему написать. Такая проблема - написал программу на С, она пишет свой лог-файл. Дело в том что при запуске...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
10.04.2011, 22:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru