Autor Beitrag
Pipecheck
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 23.06.02 15:06 
Hi Leutz!
ich hoffe das ist das richtige Board dafür: Wie mache ich das, das mein Programm immer bei den Trayicons ist (für Unwissende: das sind die Symbole rechst in der Ecke :wink: ).
Also, immer wenn ich das Programm minimiere soll es von der Taskleiste verschwinden und bei den Tayicons weiter arbeiten.

2. Wenn ich will, das mein Prorgamm von Anfang an (sprich: mit Windows läd) läuft, kann ich es in den Autostartordner reinschieben. Gibt es da auch noch eine Andere Möglichkeit?

hoffentlich kann mir wieder jemand helfen :wink:

_________________
auf grund mehrer beschwerden ist hier vor erst nix zu sehen
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: So 23.06.02 15:21 
Moinsen!

Ich kann Dir zumindest zu Deiner zweiten Frage helfen.
Zur ersten eigentlich auch, doch da müsste ich mich selbst erst einmal informieren. Eventuell zu späterer Zeit.

Also, um Dein Programm beim Windows-Start automatisch starten zu lassen, gibt es mehere Möglichkeiten.

Die eine ist, wie Du selbst schon sagtest, ist der Autostart-Ordner.

Eine andere Möglichkeit wäre die Registry.
Dort gibt es speziell zwei Schlüssel.
Einer unter HKLM, der andere unter HKCU. Letzterer kommt eigentlich nur in Frage, da unter HKLM nur mit Admin-Rechten geschrieben werden kann.

Also, schau doch mal hier hin in der Registry:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Dort musst Du nun eine neue Zeichenfolge (REG_SZ) anlegen. Der Wert der Zeichenfolge ist der Pfad (absolut) zu Deinem Programm.
Bei Start von Windows wird nun Dein Programm aufgerufen.

Eventuell ein Beispiel gefällig?

Grüße

Torsten
mathias
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58
Erhaltene Danke: 3



BeitragVerfasst: So 23.06.02 16:04 
Hier ein Beispiel mit der Tray. Vieleich hilft es Dir weiter. :)
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, Menus;

const
  WM_TASKABAREVENT = WM_USER + 1;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    Close1: TMenuItem;
    procedure FormDestroy(Sender: TObject);
    procedure Close1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    NotifyIconData: TNotifyIconData;
    { Private-Deklarationen }
    procedure TaskbarEvent(var Msg: TMessage); Message WM_TASKABAREVENT;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TaskbarEvent(var Msg: TMessage);
begin
  case Msg.LParam of
    WM_LBUTTONDBLCLK:
      begin
        //Mach etwas nach einem Doppelklick...
      end;
    WM_LBUTTONUP:
      begin
        //Mach etwas nach einem Linksklick...
      end;
    WM_RBUTTONUP:
      begin
        // Rechtsklick
        SetForegroundWindow(Handle);
        PopupMenu1.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y);
      end;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  with NotifyIconData do begin
    Wnd   := Self.Handle;
    szTip := 'Punkt';
  end;
  Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end;

procedure TForm1.Close1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  ShowWindow(GetWindow(Handle,GW_OWNER), SW_HIDE);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.ShowMainForm:= False;
  Fillchar(NotifyIconData,Sizeof(NotifyIconData),0);
  with NotifyIconData do begin
    cbSize           := Sizeof(NotifyIconData);
    Wnd              := Handle;
    uFlags           := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage := WM_TASKABAREVENT;
    hIcon            := Application.Icon.Handle;
    szTip            := 'Meine Anwendung';
  end;
  Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;

end.
Pipecheck Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 23.06.02 17:39 
ich kann mich nur mal wieder herzlichst bedanken!!!!
BTW: das mit dem Tray iss net so perfekt, das macht ein programm, was nur dort bleibt, aber für meine Zwecke genügt das vollkommen!

_________________
auf grund mehrer beschwerden ist hier vor erst nix zu sehen