Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Как узнать HWND окна?   Найти похожие ветки 

 
Shira333   (2004-09-27 13:19) [0]

Как узнать HWND окна? Если у меня приложение консольное, Applications добавить не могу, т.к. Windows.pas отключен. Какжется можно как-то по Api узнать, не подскажете???


 
Digitman ©   (2004-09-27 13:24) [1]


> Как узнать HWND окна?


чьего окна ?


 
Shira333   (2004-09-27 13:41) [2]

Моего, т.е. моего окна консольного приложения.


 
Digitman ©   (2004-09-27 14:02) [3]


> Shira333   (27.09.04 13:41) [2]


это окно не относится к "когорте" GUI-окон

а зачем тебе это понадобилось ? поясни ...


 
Игорь Шевченко ©   (2004-09-27 14:08) [4]

Shira333   (27.09.04 13:41) [2]


> Моего, т.е. моего окна консольного приложения.


Это не твое окно. У консольных приложений нету окон. Узнать можно, перебрав окна и сравнивая имя оконного класса с ConsoleWindowClass и GetWindowThreadProcessId с ID своего процесса.


 
Digitman ©   (2004-09-27 14:14) [5]


> Игорь Шевченко


он, видимо, хочет получив хэндл этого окна использовать этот хендл как таргет для Post/SendMessage


 
Shira333   (2004-09-27 15:24) [6]

Короче, одним словом, я хочу послать окну команду SW_HIDE, или по другому говоря, сделать его невидимым!


 
Игорь Шевченко ©   (2004-09-27 15:30) [7]

Shira333   (27.09.04 15:24) [6]


> я хочу послать окну команду SW_HIDE, или по другому говоря,
> сделать его невидимым!


Вопрос только в том, захочет ли этого окно. Впрочем, как искать, я написал, дальше пробуй.


 
Shira333   (2004-09-27 15:32) [8]

Дело в том, что GetForegroundWindow показывает хэндл, если прогу сам запускал. А когда прога грузится при запуске винды из реестра, то не помогает... Я думаю, что есть какая то функция(вроде GetForegroundWindow</), которая дает хэндл своего окна


 
Shira333   (2004-09-27 15:37) [9]

Как узнать АйДи своего процесса?


 
Digitman ©   (2004-09-27 15:41) [10]


> Shira333   (27.09.04 15:37) [9]


Get - получить
Current - текущий
ProcessId - идент-р процесса

все вместе = получить идент-р текущего процесса = GetCurrentProcesId

поискать по станд.справке - не судьба ... не говоря уже о том чтобы догадаться


 
KSergey ©   (2004-09-28 08:16) [11]

> [6] Shira333   (27.09.04 15:24)
> Короче, одним словом, я хочу послать окну команду SW_HIDE,
> или по другому говоря, сделать его невидимым!

Дык может тогда консольное приложние вовсе и не нужно? Оно по определению открывает окно (система для него). А ты сделай не консольное - и ничего прятать не придется, пока сам явно не покажешь.


 
MetalFan ©   (2004-09-28 10:36) [12]


> сделай не консольное - и ничего прятать не придется

оченб верное замечание? смысл консольного приложение, если окно консоли прятать?


 
Shira333   (2004-09-28 17:21) [13]

Спасибу, уже сделал то, что хотел!!!
А консольное сделал, чтоб минимум весило!!!


 
Digitman ©   (2004-09-28 17:32) [14]


> консольное сделал, чтоб минимум весило


диагноз подтвердился


 
Shira333 ©   (2004-09-28 18:07) [15]

Какой???


 
Lin7   (2004-09-28 18:13) [16]

Ужастный!!!


 
Shira333 ©   (2004-09-28 18:21) [17]

Может объясните, чтобы в будущем не ошибался, если ошибся...


 
Lin7   (2004-09-28 18:24) [18]

Если хочешь сделать очччень маленькую программу - сделай процесс БЕЗ окон, а не консоль. И лучше на WinAPI. И лучше найди (это даже проще и быстрее чем писать самому) примеры в инете.

Удачи.


 
Shira333 ©   (2004-09-28 18:26) [19]

Как процесс создавать??? Вроде посмотрел, но не увидел...


 
Lin7   (2004-09-28 18:51) [20]

А как же сервисы?
О сервисах смотри на www.rsdn.ru в статьях.


 
Lin7   (2004-09-28 19:02) [21]

Или ещё вариант: создаёшь проект Application, открываешь View Source проекта (в меню Project) и чистишь всё, кроме

program Project1;
begin
// твой код
end.

и удаляешь из проекта единственный юнит-форму. Всё!
Скомпилишь - получишь exe-шник ~8k размером и без окна.
Заметь, пустая консолька весит столько же.
Напишешь на WinAPI - должно быть меньше ИМХО.

Удачи!


 
y-soft ©   (2004-09-29 08:21) [22]

>Игорь Шевченко ©   (27.09.04 14:08) [4]

Это не твое окно. У консольных приложений нету окон. Узнать можно, перебрав окна и сравнивая имя оконного класса с ConsoleWindowClass и GetWindowThreadProcessId с ID своего процесса.

???

Обратимся к первоисточнику:

Microsoft Knowledge Base Article - 124103
"How To Obtain a Console Window Handle (HWND)"

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q124/1/03.asp&NoWebCo ntent=1

Но:

...The resulting HWND is not guaranteed to be suitable for all window handle operations...

С уважением



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1097603817
zolll
2004-10-12 21:56
2004.10.31
Данные


3-1096878888
Alibaba
2004-10-04 12:34
2004.10.31
TQuery -> в текстовый файл


6-1093020458
доброжелатель
2004-08-20 20:47
2004.10.31
OnRecv и прочее...


14-1097747995
1008
2004-10-14 13:59
2004.10.31
О! Вот это наши люди!!! %)


1-1097683247
Mihail
2004-10-13 20:00
2004.10.31
как присоеденить скаченый компонент, поместить его на палитру ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский