AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WH_CALLWNDPROC-Hook // SystemMenu-Items
Thema durchsuchen
Ansicht
Themen-Optionen

WH_CALLWNDPROC-Hook // SystemMenu-Items

Ein Thema von bepe · begonnen am 12. Apr 2008 · letzter Beitrag vom 12. Apr 2008
 
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#4

Re: WH_CALLWNDPROC-Hook // SystemMenu-Items

  Alt 12. Apr 2008, 15:45
Hi,

bist du dir schon sicher, dass dein WndProc richtig definiert ist? Hooks habe ich ehrlichgesagt erst einmal gebraucht (um TerminateProcess zu hooken), ist aber schon lange her, deswegen weiss ich da nicht mehr so gut bescheid.

In Delphi habe ich das WndProc auch noch nie wirklich gebraucht, in C++ geht es aber soo:

Code:
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Bei dir sind die Parameter ja etwas anders:
WndProc(nCode : Integer; wParam: longint; lParam : longint): LRESULT Und so würde auf das Systemmenü zugreifen:

Code:
     hMenu = GetSystemMenu (hwnd, FALSE) ;
     
     AppendMenu (hMenu, MF_SEPARATOR, 0,          NULL) ;
     AppendMenu (hMenu, MF_STRING, IDM_SYS_ABOUT, TEXT ("Info über...")) ;
     AppendMenu (hMenu, MF_STRING, IDM_SYS_HELP,  TEXT ("Hilfe...")) ;
     AppendMenu (hMenu, MF_STRING, IDM_SYS_REMOVE, TEXT ("Erweiterungen recyceln")) ;

....

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     switch (message)
     {
     case WM_SYSCOMMAND:
          switch (LOWORD (wParam))
          {
          case IDM_SYS_ABOUT:
               MessageBox (hwnd, TEXT ("Ein Menü für arme Leute\n")
                                 TEXT ("(c) Charles Petzold, 1998"),
                           szAppName, MB_OK | MB_ICONINFORMATION) ;
               return 0 ;
               
          case IDM_SYS_HELP:
               MessageBox (hwnd, TEXT ("Hilfestellung noch nicht implementiert!"),
                           szAppName, MB_OK | MB_ICONEXCLAMATION) ;
               return 0 ;
               
          case IDM_SYS_REMOVE:
               GetSystemMenu (hwnd, TRUE) ; // zurück zum Original
               return 0 ;
          }
          break ;
         
     case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}
(aus dem Buch "Windows Programmierung - 5. Auflage")
  Mit Zitat antworten Zitat
 


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 05:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz