![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение хендла приложения если нет формы
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]
> хендл приложения
у приложения не было, нет и не будет никаких "хэндлов".
ВНЕ зависимости от наличия каких-то там "форм" или отсутствия оных.