Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Befehl an Systemmenü anhängen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.05.2005, 15:26 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, ich kann ja mit GetSystemMenu(hWnd,FALSE); das aktuelle Systemmenü eines Fensters "herholen" und ändern. Nur: wie krieg ich es hin das ich die angehängten Befehle in meiner Anwendung empfangen kann? Die Anwendungen die das Addon kriegen kann ich nicht verändern (auch dll-injection scheidet aus)
Ich bastel nämlich grad einem Unix-Style-Virtual-Desktop Tool und würde nun gern dann so buttons "Send to Desktop x" den Anwendungsfenstern hinzufügen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.05.2005, 16:40 Uhr
Spacelord
Hoffnungsloser Fall


Wie sieht es denn mit nem Systemhook aus der die WM_SYSCOMMAND Nachrichten filtert?

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.05.2005, 17:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hmm stimmt an nen hook hab ich gar nicht gedacht, meinst du den WH_SYSMSGFILTER ? Naja werds ausprobieren, im Notfall muss ich halt WH_CALLWNDPROC nehmen. Aber ginge ja auch
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.05.2005, 22:38 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ok mit WH_CALLWNDPROC krieg ich zwar die Fensternachrichten, nur die von den Menü's werden nicht gesendet? oder hab ich irgendwo nen denkfehler:


C++:
HMENU SysMenu = GetSystemMenu(hWnd,FALSE);
AppendMenu(SysMenu, MF_STRING, WM_USER+1000, "Bla");



Eigentlich müsste er doch dann WM_SYSCOMMAND mit wParam WM_USER+1000 senden?

selbst WM_COMMAND mit HIWORD(wParam) kommt nix im Hook an?!? Ich finde das irgendwie seltsam.


C++:
achja der Hook erhält die MENUSELECT-Nachrichten, nicht aber WM_COMMAND/SYSCOMMAND der Menuitems????


--
class God : public ChuckNorris { };

Dieser Post wurde am 15.05.2005 um 23:08 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.05.2005, 23:11 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Bei WM_COMMAND musst du LOWORD(wParam) abfragen um die ID des Menüeintrags zu erhalten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.05.2005, 10:23 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


jo klar, das HIWORD sollte aber z.b BN_CLICKED liefern, tut es aber nicht



Bearbeitung:

habe nun erfahren das WH_CALLWNDPROC wiedermal nicht alle Nachrichten liefert ...
mit WH_GETMESSAGE funktioniert nun das ich die Click-Nachrichten erhalte (WM_MENUSELECT krieg ich da z.b aber wieder nicht mehr :lol


--
class God : public ChuckNorris { };

Dieser Post wurde am 16.05.2005 um 11:12 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.06.2005, 19:23 Uhr
~TrialReg
Gast


OK... dann sagen wir mal die Lösung... Trommelwirbel...
Achtung achtung:

DLL mit dem Hook damit er global wird... danach bitte auch das fenster subclassen die das Menu enthält denn sonst bekommt das Fenster die Nachricht und nicht du ;-P

mfg trialreg@trialreg.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.06.2005, 19:38 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


jo weiß ich schon so hab ichs auch gemacht. funktioniert ja nun, das subclassen konnte ich mir sparen indem ich einfach WH_GETMESSAGE als Hook genommen habe...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.06.2005, 19:40 Uhr
~TrialReg
Gast


Wie gesagt ich hätte es gesubclassed dann kann ich nämlich jedes mal auch prüfen was in dem programm läuft und gezielt meldungen abfangen... und du sagst es läuft.... finde ich ja gut
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.06.2005, 21:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja wie gesagt, ich kann schlecht komplett Windows subclassen Das Programm fügt nämlich "Anhängsel" an das Systemmenü jeder x-beliebigen Anwendung hinzu.

( wenn man den post gelesen hätte wüsste man das auch )

Momentan hab ich noch ein paar Fehler beim wechseln des virtuellen Desktops, aber das krieg ich noch hin
--
class God : public ChuckNorris { };

Dieser Post wurde am 01.06.2005 um 22:52 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: