AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TNA

Ein Thema von Logh · begonnen am 3. Aug 2005 · letzter Beitrag vom 5. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
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
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: TNA

  Alt 3. Aug 2005, 17:40


Zitat von Logh:
-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;
Ist mir ein Rätsel, warum man Registry nicht richtig schreiben kann, wo es doch sogar der Klassenname von Borland korrekt vorgibt. TRegestry klappt ja nicht. Aber das ist nicht der Grund des Postings. Ich will eigentlich auf den Autostart in HKEY_LOCAL_MACHINE hinaus. Das mag unter Windows 95, 98 und ME funktionieren. Evtl. auch noch unter XP Home. Aber bei NT4, 2000 und XP Pro und anderen NT-basierten Systemen kollidierst du dabei u.U. sehr schnell mit den Benutzerrechten.
  Mit Zitat antworten Zitat
4. Aug 2005, 02:45
Dieses Thema wurde von "alcaeus" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Eindeutig eine Delphi-Frage, und damit schon in der falschen Sparte...
Olli
(Gast)

n/a Beiträge
 
#4

Re: TNA

  Alt 4. Aug 2005, 11:20
Is ja herzig. "Wenn ich Windows starte kommt bei mir kein Word." so ungefähr klingt deine "Fehlerbeschreibung" für mich.

a.) Hast du vielleicht mal dran gedacht Fehlerüberprüfungen einzubauen? Fehlercodes auszugeben?
b.) Was meinst du mit "Icon erscheint nicht"? Wird es nicht angezeigt? Wird nichtmal Platz auf der TNA für ein Icon geschaffen? Schlagen die Aufrufe fehl?

Also dein Code ist schön und gut, aber ich hoffe du denkst nicht, daß sich hier jeder potentielle Antworter deinen Code nimmt, ein eigenes Projekt aufmacht und dann austestet was denn nun genau der Fehler sei
  Mit Zitat antworten Zitat
Logh

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

Re: TNA

  Alt 5. Aug 2005, 10:51
hi,

Zitat:
a.) Hast du vielleicht mal dran gedacht Fehlerüberprüfungen einzubauen? Fehlercodes auszugeben?
b.) Was meinst du mit "Icon erscheint nicht"? Wird es nicht angezeigt? Wird nichtmal Platz auf der TNA für ein Icon geschaffen? Schlagen die Aufrufe fehl?
a) Weis nicht wie?
b) Das Icon wird nicht angezeigt. Es wird auch kein platz daür gemacht.
Das Programm liest nicht die ID des iButtons - es tut nichts.
Wenn es ohne Autostart gestartet wird funzt es.

Ich habe niemandem gesagt er solle den Code kopieren und testen.


Das Problem ist wieschon erwähnt, dass das Programm nicht mit dem Autostart funzt.
Kann es sein das alle ico dateien irgendwo bestimt abgespeichert werden müssen?
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#6

Re: TNA

  Alt 5. Aug 2005, 11:03
Moin moin,
Zitat von Logh:
Das Programm liest nicht die ID des iButtons - es tut nichts.
Wenn es ohne Autostart gestartet wird funzt es.
Ist es, nach einem Neustart des PCs, auch wirklich gestartet?
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: TNA

  Alt 5. Aug 2005, 13:14
Zitat von Logh:
Das Problem ist wieschon erwähnt, dass das Programm nicht mit dem Autostart funzt.
Kann es sein das alle ico dateien irgendwo bestimt abgespeichert werden müssen?
Welcher Autostart? Registry, Dateisystem oder wo sonst?

Wenn du die ICOs als Ressourcen in deine EXE eingebunden hast, sollte es wunderbar funktionieren.
  Mit Zitat antworten Zitat
Logh

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

Re: TNA

  Alt 5. Aug 2005, 14:26
hi,

folgende Fehlermeldung erscheint nach dem Starten des Rechners:

Can not open File blabla

Wie geht das it dem res an den Projekt anhängen?
Ich hab es mal ohne mein ico probiert - mit dem Delphi ico ging es!
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

Re: TNA

  Alt 5. Aug 2005, 15:09
Zitat von Logh:
Wie geht das it dem res an den Projekt anhängen?
Ich hab es mal ohne mein ico probiert - mit dem Delphi ico ging es!
Aha ... jetzt sind wir dem Problem, scheint's, dicht auf der Spur.

Eine Ressourcendatei (.RC) erstellst du als Textdatei. Darin legst du für das Icon einen Identifier fest (das ist eine Zahl oder ein String). Außerdem gibst du an von welcher Datei es importiert werden soll (das Icon).

Hier die Syntax:
Code:
[color=red]MAINICON[/color]               ICON   [color=green]DISCARDABLE[/color]    [color=blue]"Assarbad.ico"[/color]
Rot: Der Identifier. Wie gesagt eine Zahl oder ein String
Grün: Attribut. Dieses ist optional.
Blau: Relativer oder absoluter Pfad zum Icon

Der niedrigste Identifier bestimmt das Icon der Anwendung im Explorer!

Das Script (*.RC) mit BRCC32.EXE deines Delphi oder RC.EXE aus dem PSDK kompilieren.

Danach das Resultat (*.RES) mit
Code:
{$R <Pfad zum Resultat>}
einbinden.
  Mit Zitat antworten Zitat
Logh

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

Re: TNA

  Alt 5. Aug 2005, 22:25
danke für die Hilfe.

Ich hab jetzt schon ne Lösung:

Ich hab einfach unter Projekt-Optionen das
gewünschte ico geladen.

trotzdem danke!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz