Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Спрятать консольную апликашку (C#)  (Прочитано 8920 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« : 12-01-2007 07:46 » 

Есть код :
Код:
[DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

public enum CmdShowCommands : int
    {
        SW_HIDE = 0,
        SW_NORMAL = 1,
        SW_SHOWMINIMIZED = 2,
        SW_MAXIMIZE = 3,
        SW_SHOWNOACTIVATE = 4,
        SW_SHOW = 5,
        SW_MINIMIZE = 6,
        SW_SHOWMINNOACTIVE= 7,
        SW_SHOWNA = 8,
        SW_RESTORE = 9,
        SW_SHOWDEFAULT = 10,
        SW_FORCEMINIMIZE = 11
    }
Далее в Мэйне пишу :
Код:
IntPtr winHandle = Process.GetCurrentProcess().MainWindowHandle;
ShowWindow(winHandle, (int) CmdShowCommands.SW_MINIMIZE);
Отлично работает. Но когда вместо SW_MINIMIZE пишу SW_HIDE - не срабатывает Жаль
Хочу спрятать консольную апликашку, чтобы её на экране не было видно.
Что на самом деле делает SW_HIDE ? Прячет процесс чтоли а не саму апликашку ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #1 : 12-01-2007 09:53 » 

единственное, что удалось найти... http://forums.microsoft.com/msdn/showpost.aspx?postid=640449&siteid=1

а SW_HIDE включает режим прорисовки окна "не рисовать"...
Записан

Удачного всем кодинга! -=x[PooH]x=-
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 12-01-2007 14:58 » 

Я думаю АПИ не так работает. SW_HIDE это для графических окон. А тут по сути у тебя (твоей апликашки) окна нет. Можно попробовать отловить консольное окно и ему послать SW_HIDE. Только гемморно это будет.

В тему, ИМХО не с той стороны подходишь. Надо просто консольку запускать без окна. Убей не помню - как? Время будет поковыряюсь. Или даже у нас на форуме было?...
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 15-01-2007 09:52 » new

Запускай с пускачём.  пускач - графическое приложение, которое
1.  не рисует своего окна
2.  Запускает CreateProcess (или как оно в Си# называется) твоё приложение
3.  После чего, не дожидаясь завершения порождённого процесса, завершается.

В результате консольный процесс будет создан без окна.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines