AGB  ·  Datenschutz  ·  Impressum  







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

TNA, wer kennt es nicht ;-)

Ein Thema von perle · begonnen am 1. Dez 2004 · letzter Beitrag vom 1. Dez 2004
Antwort Antwort
perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#1

TNA, wer kennt es nicht ;-)

  Alt 1. Dez 2004, 14:35
hiho, hab ne kurze und wahrscheinlich auch nicht so schwierige Frage, aber ich komm einfach nicht drauf.

Ich will eine beliebige Anzahl von Fenster durch das drücken eines Hotkeys in die TNA minimieren (also das Fenster unsichtbar machen und dafür ein Icon erstellen).

nen Hotkey erstellen usw kann ich und auch das Erzeugen des Icons und das verstecken des Fensters nicht, das einzige wo ich nicht weiter weiss ist Folgendes :

- wie kann ich das WM_LBUTTONDOWN so machen, dass auch nur das Programm wiederhergestellt wird, auf dessen Icon ich geklickt hab? Denn wenn ich jedem Icon die selbe Callbackmsg zuweise, dann würden ja alle bzw nur das letzte Fenster wiederhergestellt oder?
Ich hoffe man versteht mein Problem.

- Das zweite Problem ist das Icon. Wie kann ich das Iconhandle von dem per FindWindow gefundenen Fenster bekommen und meinem Icon zuweisen?

Vielen Dank für jede Hilfe im Vorraus
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: TNA, wer kennt es nicht ;-)

  Alt 1. Dez 2004, 14:36
Ja, du hast Recht. Jeder hier kennt die Hier im Forum suchenTNA.

Ich habe deinen Beitrag zwar nur überflogen, aber IMHO wurden alle Fragen auf die ein oder andere Weise schon mal geklärt. Sei also nicht sauer, dass ich dich nur kurz an die Suchergebnisse (s. Link) verwiesen habe.


Okay, präziser:
Zitat von perle:
- wie kann ich das WM_LBUTTONDOWN so machen, dass auch nur das Programm wiederhergestellt wird, auf dessen Icon ich geklickt hab? Denn wenn ich jedem Icon die selbe Callbackmsg zuweise, dann würden ja alle bzw nur das letzte Fenster wiederhergestellt oder?
Musst du mal ausprobieren. Ich glaube, das macht nichts. Ich habe irgendwo schon mal zwei Programme gesehen, die die selbe TNA-Message nutzen.

Zitat:
Ich hoffe man versteht mein Problem.
Weiß nicht. Habe ich?

Zitat:
- Das zweite Problem ist das Icon. Wie kann ich das Iconhandle von dem per FindWindow gefundenen Fenster bekommen und meinem Icon zuweisen?
Willst du das Icon von anderen TNA-Programmen austauschen? Von externen, die nicht von dir sind? Oder wie?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: TNA, wer kennt es nicht ;-)

  Alt 1. Dez 2004, 14:40
Bessere/Schnellere Ergebnisse sind in der Code-Library zu finden: TNATNA

Nachtrag: Vielleicht habe ich dich auch falsch verstanden, jetzt, wo ich Mathias' Nachtrag sehe
  Mit Zitat antworten Zitat
perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TNA, wer kennt es nicht ;-)

  Alt 1. Dez 2004, 15:03
Zitat von MathiasSimmack:
Weiß nicht. Habe ich?
keine Ahnung, ich versteh die Antwort nich


Ich erklärs mal mit nem Beispiel :

Nehmen wir an ich wollte ein Programm schreiben, dass unsichtbar im Hintergrund läuft und auf das drücken eines Hotkeys wartet.
Sobald der Hotkey gedrückt worden ist hole ich mir das Handle des Fensters , dass den Focus hat (GetForeGroundWindow),
mache dies Unsichtbar (SendMessage(DasHandle,SW_HIDE)) und erstelle stattdessen ein TNA Icon....das hab ich normalerweise so gemacht :

Delphi-Quellcode:
const
  WM_TNAEVENT = WM_USER + 1;
...
var
  IconIndex: Word;
begin
  with TNA_Icon do
   begin
     cbSize := SizeOf(TNA_Icon);
     Wnd := Handle;
     uID := 0;
     uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
     szTip := 'blub';
     hIcon := Application.Icon.Handle;
     uCallbackMessage := WM_TNAEVENT;
   end;
   Shell_NotifyIcon(NIM_ADD,@TNA_Icon);
...
soooo wenn ich jetzt auf dieses Icon klicke, dann wird WM_TNAEVENT ausgelöst, wie kann ich nun in meinem Programm abfragen, welches Icon angeklickt wurde? Denn für jedes Fenster, dass ich per Hotkey in den Tray "geschickt" hab, hat ja ein Icon bekommen.
Außerdem sollte ja noch jedes TNA ICON, das icon des Prozesses bekommen, der gerade Versteckt wurde. Das hatte ich so versucht :

ExtractAssociatedIcon(HInstance,'D:\Programme\Mozilla Thunderbird\thunderbird.exe',IconIndex); // <-- der feste Pfad war zum Testen aber es wurde nie ein Icon angezeigt obwohl es das Programm dort gibt.


Ich hoffe nun war es verständlicher?
  Mit Zitat antworten Zitat
perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TNA, wer kennt es nicht ;-)

  Alt 1. Dez 2004, 16:04
ok das erste Problem habe ich inzwischen selber lösen können, das einzige was noch nicht klappt, ist das Icon einer anderen Anwendung auszulesen und dem hIcon meiner NotifyIconData zuzuweisen. Falls da jemand nen Tipp hat wäre ich sehr dankbar.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:27 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