|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - Спрятать окно до того как оно отобразилось на экране |
|
|
Win32 API - Спрятать окно до того как оно отобразилось на экране
|
Пользователь Сообщения: 124 |
Профиль | Отправить PM | Цитировать В общем суть вопроса такова:
Есть утилита, которая никак не реагирует на запуск себя как HIDE. Она всё время запускается видимая и с активным фокусом. Если применить ShowWindow hwnd, SW_HIDE сразу после запуска, тогда видно моргание окна, то есть оно сначала появляется и тут же прячется. Нужно как то "спрятать" его сразу после запуска, но до того как окно отобразится... говорят что можно сделать хук на это дело. Правда ли это, и если можно то как именно? |
|
Отправлено: 17:58, 24-08-2010 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Я вот тоже искал ответ на этот вопрос. Но или ярано перестал искать или просто посчитал вполне возможным сделать так:
Просто делаю, чтобы форма не отображала своё присутствие на панели задач, и имела координаты на экране по оси Х: -ширина формы -10 (десять с потолка на всякий случай). C# Проверено, работает: Какая разница как прятать, главное работает. да и антивирус явно не заругается. |
Последний раз редактировалось Casper-SC, 25-08-2010 в 09:31. Причина: Код добавил Отправлено: 21:03, 24-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 232
|
Профиль | Сайт | Отправить PM | Цитировать Можно перехватить API функцию, которая создаёт окно и выставить ей флаг SW_HIDE. Некоторые антивирусы могут ругатся на такое, т.к. большинство вирусов используют перехват API.
|
------- Отправлено: 21:28, 24-08-2010 | #3 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать Знать бы ещё какие функции перехватывать и самое главное КАК ))))
|
Отправлено: 23:37, 24-08-2010 | #4 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Sanchos CreateProcess() - создать (запустить) процесс с атрибутом wShowWindow в STARTUPINFO равному SW_HIDE. Консольные программы при этом даже не показываются, есть шанс что и данная оконная утилита поведёт себя так же.
|
|
Отправлено: 12:56, 25-08-2010 | #5 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать Я пробовал через CreateProcess(), в этом случае возникает куча ошибок в самом приложении.
|
Отправлено: 13:56, 25-08-2010 | #6 |
Старожил Сообщения: 301
|
Профиль | Отправить PM | Цитировать что за утилита, есть исходники?
.StartInfo.UseShellExecute = False пробовал? |
------- Отправлено: 09:52, 26-08-2010 | #7 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать Какие исходники? )))) утилита сторонняя, к тому же является частью недешёвой программы.
Называется BarCode Vizard .StartInfo.UseShellExecute = False это где пробовать? |
Отправлено: 16:08, 26-08-2010 | #8 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Sanchos, а если через эту программу запустить Скрытный запуск приложений (NB: скрытно - значит без промелькиваний)?
p.s. В архиве присутствует исходный код. |
Отправлено: 02:03, 29-08-2010 | #9 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать Спасибо за ссылку. Крутил я эту прогу и так и сяк. Запускать запускает, но всё как обычно.
И ещё, после недавних тестов, отказался от ShowWindow hWnd, SW_HIDE. Почему то на ХР с ним заметно тормознее отсылаются команды приложению. А порой и вообще подвисает. |
Отправлено: 18:10, 30-08-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как сделать чтобы дочернее окно при выходе не закрывало основное окно | assch | AutoIt | 5 | 19-07-2010 02:11 | |
2003/XP/2000 - [решено] Excel | При открытии файла .exl на экране одно только серое окно. | Natalya1505 | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 06-02-2010 18:23 | |
перемещается не окно а его контур,а потом только оно,как это исправить? | Grandi | Хочу все знать | 2 | 10-04-2009 07:37 | |
Как перегрузить комп после того как все авто-настройки приняты? | Cobra_1_Stas | Автоматическая установка Windows 2000/XP/2003 | 9 | 05-03-2008 03:00 | |
Как спрятать? | MrX | Вебмастеру | 1 | 28-05-2003 20:15 |
|