Хэндл консольного окна
От: Аноним  
Дата: 10.03.06 08:25
Оценка:
Добрый !
Подскажите, пожалуйста, как получить хэндл окна консольного приложения.
Нужно спрятать окошко, чтобы программа работала в сайлент моде и была не видна юзеру окромя как через таск менеджер — процессы.
Заранее благодарю.
Re: Хэндл консольного окна
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 10.03.06 08:28
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Нужно спрятать окошко, чтобы программа работала в сайлент моде и была не видна юзеру окромя как через таск менеджер — процессы.


Может быть, имеет смысл сделать ее сервисом?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Хэндл консольного окна
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 10.03.06 08:42
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Подскажите, пожалуйста, как получить хэндл окна консольного приложения.


http://gzip.rsdn.ru/?article/?240
Автор(ы): Игорь Вартанов, Александр Шаргин
Дата: 30.04.2001

http://gzip.rsdn.ru/Forum/Message.aspx?mid=334320&amp;only=1
Автор: Alex Fedotov
Дата: 21.11.01
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Хэндл консольного окна
От: ekamaloff Великобритания  
Дата: 10.03.06 08:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый !

А>Подскажите, пожалуйста, как получить хэндл окна консольного приложения.
А>Нужно спрятать окошко, чтобы программа работала в сайлент моде и была не видна юзеру окромя как через таск менеджер — процессы.

Зачем тогда тебе консольное приложение? Можно, как уже посоветовали, сделать сервис, либо обычное win32-приложение (то, которое с WinMain ), и не создавать в нем окон.
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[2]: Хэндл консольного окна
От: Аноним  
Дата: 10.03.06 09:04
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

А>>Нужно спрятать окошко, чтобы программа работала в сайлент моде и была не видна юзеру окромя как через таск менеджер — процессы.

SDB>Может быть, имеет смысл сделать ее сервисом?
Это уже не модно, но хотелось бы поиметь совместимость с Вин 95/98/Ме. К тому же есть и спортивные интерес, можно ли получить хэндл окна в принципе.
Re[2]: Хэндл консольного окна
От: Аноним  
Дата: 10.03.06 09:06
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>http://gzip.rsdn.ru/?article/?240
Автор(ы): Игорь Вартанов, Александр Шаргин
Дата: 30.04.2001

OE>http://gzip.rsdn.ru/Forum/Message.aspx?mid=334320&amp;only=1
Автор: Alex Fedotov
Дата: 21.11.01

Большое спасибо !
Re: Хэндл консольного окна
От: rg45 СССР  
Дата: 10.03.06 09:07
Оценка:
" Аноним " <0@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1773143@news.rsdn.ru...
> Добрый !
> Подскажите, пожалуйста, как получить хэндл окна консольного приложения.
> Нужно спрятать окошко, чтобы программа работала в сайлент моде и была не видна юзеру окромя как через таск менеджер — процессы.
> Заранее благодарю.

Получить хендл консоли немудрено.
Так, например:

#include <windows.h>

int main()

{

HWND hwnd = GetForegroundWindow();

ShowWindow(hwnd, SW_MINIMIZE);

}
Posted via RSDN NNTP Server 2.0
--
Справедливость выше закона. А человечность выше справедливости.
Re[2]: Хэндл консольного окна
От: Аноним  
Дата: 10.03.06 09:15
Оценка: +1
Здравствуйте, rg45, Вы писали:

R>Получить хендл консоли немудрено.

R>Так, например:

R>
R>#include <windows.h>

R>int main()

R>{

R>HWND hwnd = GetForegroundWindow();

R>ShowWindow(hwnd, SW_MINIMIZE);

R>}
R>

Мне кажется это ненадёжный вариант. А что если у тебя стартует несколько приложений и в Foreground будет какое-то другое окно ?
Re: Хэндл консольного окна
От: TSS Россия http://www.sdl.ru
Дата: 10.03.06 09:45
Оценка: :)
Здравствуйте, <Аноним>, Вы писали:

А>Подскажите, пожалуйста, как получить хэндл окна консольного приложения.

А>Нужно спрятать окошко, чтобы программа работала в сайлент моде и была не видна юзеру окромя как через таск менеджер — процессы.

Есть шибко брутальный вариант:
#include <windows.h>
#include <stdio.h>

void main (void)
{
    FreeConsole ();
    MessageBox (NULL, "Нету у нас больше консоли", "", MB_OK);
    AllocConsole ();
    MessageBox (NULL, "А теперь есть", "", MB_OK);
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Signed, [TSS] /SDL/
Re[3]: Хэндл консольного окна
От: rg45 СССР  
Дата: 10.03.06 10:08
Оценка:
" Аноним " <0@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1773319@news.rsdn.ru...
> Здравствуйте, rg45, Вы писали:
>
> R>Получить хендл консоли немудрено.
> R>Так, например:
>
> R>
> R>#include <windows.h>
> 
> R>int main()
> 
> R>{
> 
> R>HWND hwnd = GetForegroundWindow();
> 
> R>ShowWindow(hwnd, SW_MINIMIZE);
> 
> R>}
> R>

> Мне кажется это ненадёжный вариант. А что если у тебя стартует несколько приложений и в Foreground будет какое-то другое окно ?

Конечно же вариант совершенно некорректный, по многим причинам. Он лишь иллюстрирует, что возможно получить хендл консоли.
Более правильно это можно сделать с помощью EnumChildWindows — это немного сложнее, но зато абсолютно надежно и корректно.
Posted via RSDN NNTP Server 2.0
--
Справедливость выше закона. А человечность выше справедливости.
Re[4]: Хэндл консольного окна
От: rg45 СССР  
Дата: 10.03.06 10:28
Оценка:
"rg45" <49596@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1773510@news.rsdn.ru...

При получении HWND консоли могут быть полезны следующие функции:

EnumWindows();
EnumDesktopWindows();
EnumChildWindows();

Posted via RSDN NNTP Server 2.0
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.