Entwickler-Ecke

Windows API - Contextmenue auf die Windows Uhr Legen


Corpsman - Mo 26.02.07 17:52
Titel: Contextmenue auf die Windows Uhr Legen
Hallo Leutz,

Ich bastle mal wieder ein Kleines Tool

Bin auch schon gut voran gekommen. Nun fehlt mir nur noch " ein kleines Bischen "

Aber erst mal was das Tool schon kann.

Ist das Tool gestartet so mist es permanent die CPU load und den verbrauchten Ram des systems und zeigt diese Informationen dann mittels rotem und Grünen Balken über und Unter der Windows Uhr an.

Bei 2 CPU systemen läst sich wahlweise der Rote Balken aufspalten so das man dann die CPU Load jeder CPU sehen kann ( momentan gehts auch nur so , der Durchschnitt Load soll aber später Optional Hinzu kommen. )

Da ich selbst aber leider keinen Duo Core Rechner habe würde ich mich über einen entsprechenden Screenshot freuen.

Nun zu meiner Frage.

Ich möchte nun das wenn ich mit der Rechten Maustaste auf die Uhr Schaltfläche Klicke das dann ein Popup menue Kommt das ich schon erstellt habe , nur wie kriege ich das hin das Windoof dann mein Popup öffnet, und nicht das standart Menue ?

Und weis jemand wie ich es abstellen kann das beim Minuten Wechsel meine Application überzeichnet wird ?

Danke schon mal für eure Hilfe

Corpsman

ach falls es was hilft könnt ihr auch den Source haben der mir das Handle der Uhr hohlt :


Delphi-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:
  Var
  ClockHandle: Longint;
  Clock: TCanvas;
  ClockRect: Trect;

Function GetAppHandle(AppName, ClassName: String): Longint;
Var
  h1: HWND;
Begin
  H1 := FindWindow(PCHAR(ClassName), PCHAR(Appname));
  Result := H1;
End;

Function GetClockWndHandle: Longint;
Var
  H_Shell_TrayWnd,
    H_TrayNotifyWnd,
    H_TrayClockWClass: Longint;
Begin
  H_Shell_TrayWnd := GetAppHandle('''Shell_TrayWnd');
  H_TrayNotifyWnd := FindWindowEx(H_Shell_TrayWnd, 0, PCHAR('TrayNotifyWnd'), Nil);
  H_TrayClockWClass := FindWindowEx(H_TrayNotifyWnd, 0, PCHAR('TrayClockWClass'), Nil);
  Result := H_TrayClockWClass;
End;


// Form Create
  ClockHandle := GetClockWndHandle;
  Clock := TCanvas.Create;
  Clock.Handle := GetDC(ClockHandle);

// und zum Zeichnen

  UpdateWindow(ClockHandle);


ThunderDragon - Sa 10.03.07 02:15

Falls du es noch brauchst:


Corpsman - Mo 19.03.07 23:10

Endlich geschafft.

der Beenden Bug von TclockEx [http://tyrann.deadbyte.de/corpsman/klickcounter.php?url=download/tclockex.zip] konnte behiben werden.

ver 0.03 ist on.