Thema: TNA

Einzelnen Beitrag anzeigen

Logh

Registriert seit: 2. Nov 2004
21 Beiträge
 
#1

TNA

  Alt 3. Aug 2005, 17:18
hi,

ich hab ein kleines Programm geschrieben, welches ir die id eines iButton bestimmt.
Das Ploblem ist, dass beim Autostart das Programm nicht richtig funktioniert bzw.
das Icon in der TNA nicht da ist.

Hier der Code:

-für die Regestry
Delphi-Quellcode:
 
Procedure TiButtonSecuritySystem.CreateAutorunEntry;
var
 Reg: TRegistry;
begin
 Reg := TRegistry.create;
 try
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
   Reg.WriteString(Application.Title,ParamStr(0));
 finally
   Reg.Free;
 end;
end;

-und die TNA
Delphi-Quellcode:
procedure TiButtonSecuritySystem.TaskBarAddIcon;
var
    tnid: TNotifyIconData;
    Owner: HWnd;
begin
  with tnid do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := iButtonSecuritySystem.Handle;
    uID := 1;
    uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage := WM_TASKBAREVENT;
    hIcon := Application.Icon.Handle;
  end;
  StrCopy(tnid.szTip, 'iSS');
  Shell_NotifyIcon(NIM_ADD, @tnid);
  Owner:=GetWindow(iButtonSecuritySystem.Handle,GW_OWNER);
  If Owner<>0 Then
    ShowWindow(Owner,SW_HIDE);
end;



procedure TiButtonSecuritySystem.TaskBarRemoveIcon;
var
    tnid: TNotifyIconData;
    Owner: HWnd;
begin
  tnid.cbSize := SizeOf(TNotifyIconData);
  tnid.Wnd := iButtonSecuritySystem.Handle;
  tnid.uID := 1;
  Shell_NotifyIcon(NIM_DELETE, @tnid);
  Owner:=GetWindow(iButtonSecuritySystem.Handle,GW_OWNER);
  If Owner<>0 Then Begin
    ShowWindow(Owner,SW_Show);
    ShowWindow(Owner,SW_Normal);
  End;
end;




procedure TiButtonSecuritySystem.WMTaskbarEvent(var Message: TMessage);
var
  Point: TPoint;
begin
  case Message.LParamLo of
     WM_LBUTTONDOWN: showmessage('ok');
     WM_RBUTTONDOWN: begin
                          SetForegroundWindow(Handle);
                          GetCursorPos(point);
                          popupmenu1.popup(point.x,point.y);
                     end;
  end;
end;


procedure TiButtonSecuritySystem.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 TaskBarRemoveIcon;
end;
-und beim createn
Delphi-Quellcode:
 Icon.LoadFromFile('iss_normal.ICO');
 Application.Icon.LoadFromFile('iss_normal.ico');
Schonmal Danke

[edit=Admin]Codetags durch Delphitags ersetzt. Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat