Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение хендла приложения если нет формы


Страницы:   1 2

tradakad ©   (2004-12-21 17:32:00) 

есть приложение но внем нет ни единой формы . как получить хендл приложения?


vladislav80   (2004-12-22 10:09:00) [21]

Создай скрытое окно


tradakad   (2004-12-22 09:38:00) [22]

тогда извиняюсь за безграмотный и неправильно сформулированный вопрос. попробую сказать иначе. есть малькая форма, на ней 2 кнопки одна из них добавляет значок в трей другая прибивает его ооттуда (я просто пробую сам добавлять для этого использую кнопки) вот так

function AddTrayIcon( hWindow:THandle; ID:Cardinal;
ICON:hicon; CallbackMessage:Cardinal; Tip:String) : Boolean;
var
NID : TNotifyIconData;
begin

FillChar( NID, SizeOf( TNotifyIconData ), 0 );

with NID do begin
cbSize := SizeOf(NID);
Wnd:= hWindow;
uID:= ID;
uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := CallbackMessage;
hIcon:= Icon;
if Length( Tip ) > 63 then SetLength( Tip, 63 );
StrPCopy( szTip, Tip );
end;
Result := Shell_NotifyIcon( NIM_ADD, @NID );
end;

function RemoveTrayIcon( hWindow:THandle; ID:Cardinal;
ICON:hicon; CallbackMessage:Cardinal; Tip:String) : Boolean;
var
NID : TNotifyIconData;
begin

FillChar( NID, SizeOf( TNotifyIconData ), 0 );

with NID do begin
cbSize := SizeOf(NID);
Wnd:= hWindow;
uID:= ID;
uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := CallbackMessage;
hIcon:= Icon;
if Length( Tip ) > 63 then SetLength( Tip, 63 );
StrPCopy( szTip, Tip );
end;
Result := Shell_NotifyIcon( NIM_DELETE, @NID );
end;

и это работает. одна кнопка добавляет - другая удаляет. но я хочу приложение БЕЗ ФОРМЫ и чтобы при загрузке иконка добавлялась и удалялась при закрытии программы. я думал RemoveTrayIcon( но тут нужен хендл а я не знаю что там писать , )
Извняюсь сразу за возможно вновь возникшую путаницу..


Digitman   (2004-12-21 18:14:00) [23]

и не приведешь, и не парься ..

ибо там сказано

Provides access to the window handleof the main form (window) of the application.

прочувствуй разницу между хэндлом окна(окна как реально фигурирующего объекта ОС) и хэндлом черт-те что именуемого тобой приложением(а НЕТ таких объектов в ОС ! есть ПРОЦЕСС, ОКНО, и т.д. и т.п.)


Digitman   (2004-12-21 18:06:00) [24]


> ну а как же Application.handle ?


а именно так !

приведи-ка фрагмент текста из офиц.док-ции, где утверждается, что сие св-во возвращает именно значение "хэгдла приложения ...


tradakad   (2004-12-21 18:00:00) [25]

ну а как же Application.handle ?


Digitman   (2004-12-21 17:54:00) [26]


> хендл приложения


у приложения не было, нет и не будет никаких "хэндлов".
ВНЕ зависимости от наличия каких-то там "форм" или отсутствия оных.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо