Zum Inhalt springen

Systemmenü eines fremden Prozesses öffnen


Segfault_ii

Empfohlene Beiträge

Guten Morgen.

Aufgrund eines Tipps einer Freundin bin ich hier in dieses Forum gekommen. Sie meinte hier würd man echt gut Hilfe bekommen.

Dann werd ich das direkt mal versuchen in Anspruch zu nehmen ;-)

Also, es geht mir um folgendes:

Ich schreibe einen kleinen Ersatz für den Windows-Explorer als Desktop-Shell.

Hierzu benötige ich natürlich eine Art Taskleistenfunktion.

Die Taskleiste an sich funktioniert auch wunderbar, aber:

Ich möchte, wenn ich mit der rechten Maustaste auf ein TaskItem in meinem Programm klicke, dass das Systemmenü des jeweiligen Prozesses aufgerufen wird.

Bisher versuche ich es mit folgendem Code:

void TaskListButton::contextMenuEvent( QContextMenuEvent* ptrEvent )

{

HMENU systemMenu = GetSystemMenu( this->taskObject()->handle(), false );

BOOL b = TrackPopupMenu( systemMenu, TPM_LEFTALIGN | TPM_TOPALIGN, ptrEvent->globalX(), ptrEvent->globalY(), 0, taskObject()->handle(), 0 );

// taskObject()->handle() ist das HWND-handle des Fensters, dessen Systemmenü ich erhalten möchte

}

Wird dieser Code für meinen eigenen Prozess ausgeführt, funktioniert dies.

Wenn ich dies für ein HWND eines fremden Prozesses ausführe, erhalte ich ein ungültiges HMENU-handle.

Eben diese oben erwähnte Freundin meinte, laut der Doku von MS wäre die Funktion auch gar nicht geeignet um das Menü eines fremden Prozesses zu beziehen.

Siehe hierzu: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/getsystemmenu.asp

Hat irgendjemand einen Tipp für mich, wie ich das Lösen kann?

Bin ich mit GetSystemMenu überhaupt auf dem richtigen Weg?

Ich verzweifel so langsam daran....

Für etwaige Hilfe möchte ich mich im Vorfeld bedanken.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...