Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

работа в трее   Найти похожие ветки 

 
Рустам   (2008-02-24 18:35) [0]

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


 
Сергей М. ©   (2008-02-24 18:42) [1]

Никак.

В трее нет никаких "работающих прог", в трее есть просто иконки, которые те или иные "проги" там создают.


 
Johnmen ©   (2008-02-24 19:13) [2]

Ищи по фразе "Там, где часики" (c)


 
Dark ©   (2008-02-24 20:30) [3]

Нет, ищи по "как запуздырить" (с)


 
md10   (2008-02-25 12:04) [4]

program TrayWithoutVCL;

uses
 Windows,
 Messages,
 ShellAPI;

const
AppName = "WinApiTrayApp";
WM_TRAYMSG = WM_USER + 100;

var
WndClass: TWndClassEx;
WndHandle: HWND = 0;
Msg: TMsg;
IconData: TNotifyIconData;
IconMenu: HMENU = 0;
SecondIcon: HICON;

function WndFunc(Wnd, Msg: DWORD; wParam, lParam: integer): integer; stdcall;
var
P: TPoint;
begin
case Msg of
  WM_DESTROY, WM_QUERYENDSESSION:
    begin
      Result := Integer(Msg = WM_QUERYENDSESSION);
      PostQuitMessage(0)
    end;
  WM_TRAYMSG:
    begin
      Result := 0;
      if (lParam = WM_RBUTTONDOWN) and GetCursorPos(P) then
      begin
        SetForegroundWindow(Wnd);
        TrackPopupMenuEx(IconMenu, 0, P.X, P.Y, Wnd, nil);
        PostMessage(Wnd, WM_NULL, 0, 0)
      end
    end;
  WM_COMMAND:
    begin
      Result := 0;
      case wParam and $FFFF of
        0: begin
             if IconData.hIcon = SecondIcon then
               IconData.hIcon := WndClass.hIcon
             else
               IconData.hIcon := SecondIcon;
             Shell_NotifyIcon(NIM_MODIFY, @IconData)
           end;
        1: PostMessage(Wnd, WM_CLOSE, 0, 0)
      end
    end;
  else
    Result := DefWindowProc(Wnd, Msg, wParam, lParam)
end
end;

{ -------------------------------------------------------------------------------------------- }

begin { main }
with WndClass do
begin
  cbSize := SizeOf(WndClass);
  Style := CS_HREDRAW or CS_VREDRAW ;
  lpfnWndProc := @WndFunc;
  hIcon := LoadIcon(0, IDI_EXCLAMATION);
  hCursor := LoadCursor(0, IDC_ARROW);
  hbrBackground := hBrush(COLOR_WINDOW);
  lpszMenuName := nil;
  lpszClassName := AppName;
  hIconSm := hIcon
end;
WndClass.hInstance := hInstance;
if RegisterClassEx(WndClass) = 0 then
  Exit;
WndHandle := CreateWindowEx(WS_EX_TOOLWINDOW, AppName, AppName, WS_OVERLAPPEDWINDOW,
  0, 0, 0, 0, 0, 0, hInstance, nil);
if WndHandle = 0 then
  Exit;
with IconData do
begin
  cbSize := SizeOf(IconData);
  Wnd:= WndHandle;
  uID := 100;
  uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
  uCallbackMessage := WM_TRAYMSG;
  hIcon:= WndClass.hIcon;
  szTip := AppName
end;
if Shell_NotifyIcon(NIM_ADD, @IconData) then
try
  IconMenu := CreatePopupMenu;
  if IconMenu <> 0 then
  try
    if AppendMenu(IconMenu, MF_STRING, 0, "Сменить иконку") and
       AppendMenu(IconMenu, MF_STRING, 1, "Выход") then
    begin
      SecondIcon := LoadIcon(0, IDI_QUESTION);
      while GetMessage(Msg, 0, 0, 0) do
      begin
        TranslateMessage(Msg);
        DispatchMessage(Msg)
      end
    end
  finally
    DestroyMenu(IconMenu)
  end;
finally
  Shell_NotifyIcon(NIM_DELETE, @IconData)
end
end.


 
Amoeba ©   (2008-02-26 17:11) [5]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=618



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

Текущий архив: 2008.03.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
15-1202320985
Dmitry_V
2008-02-06 21:03
2008.03.23
насколько трудоёмко программирование ActiveX?


15-1202657329
No_Dead
2008-02-10 18:28
2008.03.23
&amp;laquo;Пиратское&amp;raquo; железо%)


2-1204031664
Uno-84
2008-02-26 16:14
2008.03.23
Компонент ListBox


11-1186338197
Vedun
2007-08-05 22:23
2008.03.23
Выделенные ячейки в mdvXLGrid


6-1182958151
апвып
2007-06-27 19:29
2008.03.23
WebBrowser