2 Stimmen

Multimonitor-Taskleiste in .Net

Ich habe eine Idee, eine multimotorische Taskleiste Anwendung in c# für Windows XP zu schreiben. Also, hat jemand irgendwelche Informationen, wie

  • um eine Taskleiste auf dem zweiten Monitor zu legen,
  • damit es Windows-Stile verwendet,
  • um zu verhindern, dass Anwendungen, die auf dem zweiten Monitor laufen, in der Standard Taskleiste erscheinen,
  • und so weiter...

Jede Hilfe wäre ...hilfreich )))

2voto

Hans Passant Punkte 894572

Sie können SHAppBarMessage() mit P/Invoke aufrufen, um eine Taskleiste zu erstellen. Die APPBARDATA.hWnd, die Sie benötigen, könnte einfach der Handle einer Form-Klasse sein. Es ist alles möglich, was Sie anzeigen.

Die Benachrichtigungen zu erhalten, die Sie benötigen, um die Taskleiste von Windows aktiv zu machen, wird sehr viel schwieriger sein. Sie müssen den globalen WH_SHELL-Haken verwenden, der von SetWindowsHookEx() gesetzt wird, um die benötigten Benachrichtigungen zu erhalten. Sie können diesen Hook nicht in C# setzen, sondern benötigen eine nicht verwaltete DLL, die Sie in einen Prozess einfügen können. Wichtige Hilfe finden Sie in dieses Projekt .

Es ist unmöglich, die Windows-Taskleiste dazu zu bringen, ihre normale Aufgabe nicht zu erfüllen, es sei denn, Sie finden irgendwie die undokumentierten Informationen, die Sie benötigen. Microsoft dokumentiert dies aus gutem Grund nicht, denn die Taskleiste ist ein wichtiger Bestandteil der Innovation des Windows-Looks und -Gefühls. In Win7 ist sie gut sichtbar. Sie wollen nicht, dass irgendein Code davon abhängt, denn dann wäre es fast unmöglich, die nächste Version von Windows kompatibel zu halten. Ich würde Ihnen empfehlen, die Windows-Taskleiste komplett zu deaktivieren und durch Ihre eigene zu ersetzen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X