![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить hWnd моего приложения, если [D5]
Igel © (2002-09-09 09:54:00)...я его делаю консольным?
Т.е. убираю следующие вставки:
uses Forms;
...
Application.Initialize;
Application.run;
Igel (2002-09-11 09:06:00) [1]KSergey, вы правы, н-да, минус мне!!
Я хотел использовать API-функцию MessageBox. Для вывода диалога сообщения (думал прога поменьше будет, если только АПИ использовать). Оказалось нужен хендл. Раньше просто с этим разбирался. А тут в тупик встал! Вот и возникла эта дискуссия... :))
KSergey (2002-09-10 15:08:00) [2]Song © (10.09.02 14:11) к сожалению автор так толком и не сказал что на Handle ему нужен и зачем. Возможно в противном случае ответ бы нашелся намного быстрее. Так-то вот, товарищ автор. А то вдруг хендл процесса ему оказывается понадобился...
Song (2002-09-10 14:11:00) [3]0 - рабочий стол.
Igel (2002-09-10 14:02:00) [4]Всем спасибо, разобрался... по крайней мере, что меня интересовало...
Оказывается, если неоконное приложение, то вместо handle пишется 0. Т.е. к текущему процессу... что-то в этом роде..
still (2002-09-09 13:52:00) [5]
> Виктор Щербаков © (09.09.02 13:48)
>
> > Не работает FindWindow для консольных приложений
>
> Это почему?
Ну не знаю почему. Но факт. По крайней мере в NT4
Виктор Щербаков (2002-09-09 13:48:00) [6]
> Не работает FindWindow для консольных приложений
Это почему?
still (2002-09-09 13:42:00) [7]
> Ketmar © (09.09.02 10:14)
> установить заголовок консольного окна в нечто совсем уникальное,
> потом сделать FindWindow.
Не работает FindWindow для консольных приложений
Игорь Шевченко (2002-09-09 13:39:00) [8]Igel © (09.09.02 11:12)
У приложения нету Handle. Вообще. Есть Handle у процесса, потока, окна и еще 57 типов объектов :-)
Romkin (2002-09-09 11:39:00) [9]2Igel чушь несусветная, оконный хендл есть только у окна, а то, что перечислено - классы, имеющие окна (TApplication просто создает невидимое окно, так удобно) либо просто оболочка вокруг окна (TForm, TButton)
RTFM
Виктор Щербаков (2002-09-09 11:15:00) [10]
> Ну, уж нет! Каждое приложение имеет свой hWnd.
Не каждое. Например:
program Project1;
begin
end.
А объект Application можно не создавать. Достаточно выкинуть из Uses модуль Forms.
Igel (2002-09-09 11:12:00) [11]Виктор Щербаков, хэндлов (hWnd) окон может и нет, но должон быть хэндл приложения...
Внук:
Ну, уж нет! Каждое приложение имеет свой hWnd. И не важно есть окно или нет! Опять-же в дельфи наглядно видно:
1. Есть hWnd для окна приложения: Application.Handle
2. Есть hWnd для формы приложения. Form1.Handle
3. Есть hWnd для каждого компонента формы. button.Handle
memo1.Lines.add(inttostr(Application.handle));
memo1.Lines.add(inttostr(handle));
Внук (2002-09-09 10:48:00) [12]"И как у безоконногоопределить hWnd(Window Handle)?"
Может, я совсем тупой, но это вроде бы взаимоисключающие вещи, нет? :)
Виктор Щербаков (2002-09-09 10:46:00) [13]
> И как у безоконного определить hWnd ?
У безоконного приложения нет окон, следовательно нет и хэндлов (hWnd) окон.
Igel (2002-09-09 10:43:00) [14]Пусть безоконное. А в чем отличие от консольного? И как у безоконного определить hWnd ?
Ketmar (2002-09-09 10:15:00) [15]и еще: если вы просто убрали вышеприведенные строки, то это еще не значит, что ваше приложение стало консольным. оно стало просто "безоконным" (макое тоже бывает). дабы сделать его консольным, добавьте в начало проекта строчку
{$APPTYPE CONSOLE}
Satanas Nobiscum! 09-Sep-XXXVII A.S.
Ketmar (2002-09-09 10:14:00) [16]установить заголовок консольного окна в нечто совсем уникальное, потом сделать FindWindow.
Satanas Nobiscum! 09-Sep-XXXVII A.S.