Ganz oben Malen
-
confused schrieb:
Fenster ist net sehr schön
ist zwar das beste, aber wenn du meinst

-
Gibt es denn sonst keine Möglichkeit?
DirectX geht net und Fenster kann ich hierfür nicht gebrauchen, da die einen Fokus bekommen könnten.
-
WM_MOUSEACTIVATE: return MA_NOACTIVATE.
-
wenn ich das mache und drauf klicke bekommt das hintere fenster (falls es eines gibt) keinen Fokus
-
Hallo,
du kannst ein Beispiel bei Codeproject finden: http://www.codeproject.com/w2k/forecast.asp
Das Beispiel erstellt ein Fenster mit den Window-Styles:
WS_EX_LAYERED
WS_EX_TOPMOST
WS_EX_TRANSPARENTMfG
Anakin
-
dazu hätt ich auch ne frage: ist es möglich, dass das quasi nur in den Desktop gezeichnet wird?
und zwar, ihr kennt doch sicher unter linux diese ganzen tools, die die prozessorleistung oder das wetter oder sonst was anzeigen, die nur in den desktop gezeichnet werden (sprich, wenn man ein fenster darüber schiebt sieht man die tools auch nicht mehr
)MfG, Herr-Vorragend
-
dafür benutzt man fenster
-
he? also der desktop soll praktisch die ganzen verknüpfungen haben, ein nettes hintergrundbild und die aktuelle prozessorleistung. vielleicht hab ich mich unverständlich ausgedrückt?
-
weiß niemand ne lösung? gibt es überhaupt eine?
-
Meinst du sowas wie die Startleiste? Oder soll sich das anders verhalten?
-
also, es soll so aussehen (wenn alle fenster minimiert sind):
unten ist die taskleiste, darüber das hintergrundbild, links sind die ganzen verknüpfungen und rechts oben ist die prozessortleistung, einfach nur ne zahl, die sich jede sekunde oder so aktualisiert. also nix mit fenstern oder so, ich will quasi einfach in das hintergrundbild zeichen.
-
gibts dafür nicht active desktop?
-
hm, schon möglich, ich würde das aber gern selbst programmieren

-
Hallo,
eine Möglichkeit wäre das anzuzeigende Fenster mit SetWindowPos in den Vordergrund zu setzen. (hWndInsertAfter = HWND_TOPMOST)
MfG
Anakin
-
hm, dann wärs ja aber über allen anderen fenster, es soll ja aber nur praktisch im hintergrundbild sein...
-
dann hack dich doch in den explorer prozess ein (dll injezieren) und das desktop fenster subclassen und WM_PAINT behandeln.
-
sorry, versteh ich nicht so ganz, also ich kann ja nicht einfach mit SetWindowLong die WndProc ändern, ist ja in externen prozessen nicht erlaubt. was meinst du mit dll injezieren?
-
google?
-
sorry wenn ich nerve ^^
Es gibt mehrere Möglichkeiten.. die 2 gängigsten:
-
einen Message-Hook für einen bestimmten Thread (von dem Prozess in den du die Dll injezieren willst), dann eine WM_NULL Message an den Thread schicken. Dadurch ladet Windows deine Hook-Dll in den Prozessraum des betroffenen Prozesses -> Injektion erfolgreich
-
Mittels CreateRemoteThread einen Thread in einem fremden Prozess erzeugen. Hinweis: CreateRemoteThread funktioniert nur auf NT-Systemen!
das hab ich gefunden, versteh aber beides nicht zu 100%. kann mir einer erklären welche methode hier besser ist, und wenn ja, wie ich sie anwenden muss?
MfG, Herr-Vorragend
-
-
Würde das net gehen wenn du einfach mit GetDesktopWindow() ein Handle auf den Desktop besorgst und dann reinmalst?