| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Скрытие программы |
| Автор: DoDo 5.10.2005, 11:38 |
| Всем Добрый День! Вот заинтересовал вопрос как сделать так чтобы программа работала , но была не видима для пользователя ? Вообще говоря сделать так , чтобы она работала и не была при этом видна , но и была активна! Это хочется научится делать для того чтобы самому прописывать макросы и для всего другого . Очень хочется этому научиться! |
| Автор: En_t_end 5.10.2005, 11:53 |
| DoDo Вопрос задается с интервалом в 2-3 недели... может поиском пользоваться ? 2. Причем здесь макросы и скрытие программы ? |
| Автор: DoDo 5.10.2005, 12:08 |
| En_t_end , согласен . Макросы просто упоминул то что можно например программу сделать скрытой и написать ее так чтобы она по клавиам к примеру V+T открывала панель управления . Это я ради примера . |
| Автор: Neitron 5.10.2005, 12:23 |
| Где программа должна быть невидимой? В процессах? Ответ: сделать невозможно. Если просто без формы, программа просто должна сидеть в памяти, создовай в программе бесконечный цикл. |
| Автор: DoDo 5.10.2005, 13:13 |
| Neitron , ясно . Мне надо так чтобы в процессах пусть будет и видна , но чтобы не было ее больше не где видно . А как окно программы скрыть ? Как это сделать ? Вообще говоря , что бы она делала свои действия , но не была видна . |
| Автор: _hunter 5.10.2005, 13:47 |
| Application->ShowMainForm = false; ShowWindow(window, SW_HIDE); + поиск по форуму -- тема уже не раз обсуждалась |
| Автор: nikitao 5.10.2005, 13:51 | ||||
Если используешь WinAPI ,то тогда:
Это чтобы из панели задач,а что бы из процессов: [/quote]Ответ: сделать невозможно. [quote] Это не правда.
Но это только под 98,в XP не сработает.В XP все гораздо сложнее,но если постораться,то добиться можно: http://forum.vingrad.ru/index.php?showtopic=21557&unread=1&hl=%F1%EA%F0%FB%F2%E8%E5+%EF%F0%EE%F6%E5%F1%F1%E0 Ну можно еще здесь посмотреть: http://www.xakep.ru/magazine/xs/035/050/1.asp ЗЫ Тема полный |
| Автор: Mayk 5.10.2005, 13:54 | ||
А разве сервисы не видны? А что мне их фар тогда показывает? |
| Автор: nikitao 5.10.2005, 14:20 | ||
Или я че то не догоняю или Kасперский деньги из воздуха делает:вирусы же и черви всякие не показываются в процессах,но при этом они работают? |
| Автор: Mayk 5.10.2005, 14:28 |
| Противоречие, Если бы можно было спрятать процесс, то Каспер бы ничего не нашёл(так как приложение было бы спрятано). Хотя бы отсюда следует, что процесс спрятать невозможно. Это раз. Те вирусы, которые мне попадались либо были видны в процессах, либо просто в них внедрялись и были отлично видны даже не через фар(который их отлично прибивал("пока, a180232.exe!' )). Это два. |
| Автор: nikitao 5.10.2005, 14:36 |
| Речь как я понял идет не о скрытии проги от всех средств(например FAR),а о обычном скрытии от Диспетчира задач Windows(taskmqr.exe),что бы пользователь ее ненароком не закрыл,если же полное скрытие проги имелось ввиду,то извенити. Честно говоря мне не верится,Mayk ,что то что ты сказал на 100 % правда.Просто не может быть что все настолько легко.Если не прав,то извени,ко мне вирусы не лепятся(скорость очень медленная). |
| Автор: Romikgy 5.10.2005, 16:26 |
| Скрыть прогу можно, (насколько помню) и Касперский ее проглядел |
| Автор: DoDo 5.10.2005, 19:28 | ||
| Прочитал все эти сообщения . Очень много информации для себя получил . Только один вопрос:
Почему не компилит ? У меня компилятор Microsoft Visual C++ 6.0 |
| Автор: nikitao 5.10.2005, 20:43 | ||||||
Конечно не кампилит,потому что если ты так и прописываешь ,то "handle" это имеется ввиду дескриптор твоего окна,Если ты используешь MFC,то надо прописать вот,что:
Это раз,а два это то что этустроку безполезно писать в OnInitDialg().Игнорирует.Лечение: В OnInitDialog включи таймер с 1 секундой и пропиши это в таймере(также в нем его и убей) ЗЫ Если не догодаля ,то
Возвратит твое окно к жизни на панеле задач. |
| Автор: Romikgy 6.10.2005, 09:07 |
| DoDo А че прятать , где в этом коде окно ? ЗЫ я так понял , когда запускаешь этот код у тя получается консоль, а там по другому прячут |
| Автор: Neitron 6.10.2005, 09:11 | ||||||
Знаю я про этот способ. Но разве кто-то пользуется такой шнягой как 9x? Оно умерло, и ему уже никогда не жить. В редких случаях встретишь в каком-нибудь бубруйске такую Ось. |
| Автор: Romikgy 6.10.2005, 09:12 |
| Я пользуюсь , и не только !!!! |
| Автор: Neitron 6.10.2005, 09:28 | ||
Тогда вперед
Скрывай чо хочешь |
| Автор: DoDo 6.10.2005, 09:54 |
| Romikgy , ты верно подметил . Пишу программу сразу в .cpp файле и получается консоль . Только она не как не прячется ... |
| Автор: Neitron 6.10.2005, 11:17 |
| Во первых забудь про консоль, консольные приложения работаю медленно в винде, так как винде приходица использовать эмулятор ДОС. |
| Автор: Romikgy 6.10.2005, 12:32 | ||
| Neitron Имхо ты не совсем прав, консольные приложения написаные под Вынь32 ничем , не отличаются от гуивых, и выполняются без каких либо эмуляторов. DoDo Для того , что бы спрятать консоль , попробуй это :
Ненужное по вкусу убрать |
| Автор: DoDo 6.10.2005, 13:07 |
| Romikgy , уже ближе . Компилится , но почему-то консоль не исчезает ... Может это у меня что-то с языком не то (Microsoft Visual C++ 6.0) ... |
| Автор: Neitron 6.10.2005, 13:50 |
| Когда я говорил про то чтобы забыть консоль, я советовал использовать WinMain вместо main. Создовать консольное приложения и скрывать консоль - есть извращение с большой буквы. Зачем что-то скрывать и делать невидимым, когда что-то можно просто не создовать, например туже консоль или простое окно. |
| Автор: Romikgy 6.10.2005, 14:13 |
| Neitron Конечно можно и не создавать, но спросили же "как скрыть", а не "как не создать" DoDo У меня Dev-C++ , мож и с визуалом , что-то , а в переменых hwcon, lstr ... что ???? не пустые ли?? ЗЫ это очень странно , в файле только чистый апи, а ему имхо побоку в какой иде или каким компилятором оно собиралось |
| Автор: Neitron 6.10.2005, 14:23 | ||||
Хех, я тебя понел, но ты немного не прав. #include <stdio.h> #include <iostream> Уже не апи, а Stanart Library Так же вызов ф-ции main и время запуска и параметры запуска, во многом тоже зависят от компилятора, я о том что main вызывает программа а не сама Винда. А программу делает компилятор. Далее больше советую не изващаться.
|
| Автор: Romikgy 6.10.2005, 15:07 | ||||||
Логично
Не совсем понял, при чем здесь параметры запуска, время ??? к теме обсуждения??? Да от компилятора многое зависит, не спорю, но как зависит вызов апи ф-кций, если честно я не знаю |
| Автор: Neitron 6.10.2005, 15:14 | ||||
Не причем. Просто поправил. Еще раз говорю. Винде пох на main и пох на WinMain Она о них и знать не знает. Винда выполняет прогу с самой первой строчки проги. Все эти функции программа сама запускает после своего запуска. Уж такой способ придумали специалисты Си. Main и WinMain стандарт Си, а не винды. После запуска программы, происходит много чего красивого, и только в самом конце запускается main. Также после окончания main происходит много чего уже не красивого)) Все к чертям чистится, санчало Сишным кодом, который интерпретатор встраивает в каждую прогу, а потом и виндой самой.
Хуже))) От 2000 и выше |
| Автор: DoDo 6.10.2005, 20:16 |
| Тогда вопрос поставлю в другом ракурсе: А как сделать так чтобы консоль вообще не создавалась? То есть программа делала свои действия, но консоли не было видно. Вообще говоря, чтобы ничего не было видно. |
| Автор: Helicopterr 6.10.2005, 22:47 |
| врусы, чтобы спрятаться убивают один из существующих системных процессов, например svhost, и действуют под его filename. Или, дорогой DoDo, можно записать свой код в существующий процесс, но это уже немного другой форум. |
| Автор: DoDo 7.10.2005, 09:07 |
| Helicopterr , ясно . Я не вирус писать |
| Автор: Neitron 7.10.2005, 09:30 |
| DoDo Он вообще не в тему написал. Я еще раз повторюсь, тебе нужно создовать НЕ КОНСОЛЬНОЕ приложение, тебе нужно приложение у которой главное функция является WinMain а не Main. И вот в этой ф-ции не нужно создовать окна. Хотя лучше чтобы хоть одно окно все атки было, но нужно сделать его невидимым сразу после создания. А вообще, MSDN. |
| Автор: DoDo 7.10.2005, 12:19 |
| Neitron , хорошо ! Всё понятно , в каком плане дальше двигаться ! |
| Автор: Neitron 7.10.2005, 12:23 |
| У меня сейчас нету Visual C++ чтобы сказать, сам я пишу на Билдере. Но ,насколько я помню, тебе нужно, создать простое приложение, найти WinMain и удалить все что находица в этой функции. Вот в ней и пиши что тебе нужно. |
| Автор: DoDo 7.10.2005, 18:02 |
| Neitron , спасибо ! |