Autor Beitrag
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 07.01.03 18:39 
Stop! Kein Angst, ich weiß wie man auf "dem" Desktop zeichnen kann. Allerdings interresiert mich nicht "der" Desktop, sondern der Hintergrund-Desktop. Also der Desktop auf dem die Icons liegen. Am besten noch der Desktop der unter den Icons liegt.

Da es sich eigentlich nur indirekt um eine Grafikfrage hantelt, hab ich die Frage hier gestellt. Es hat mehr mit Windows zu tun als mit Grafik. Ich las mich gerne berichtigen, aber die unterste Ebene müßte eigentlich der "Progman" sein. Stimmt das? Kann man auf seine Zeichenfläche zugreifen? Die einzige Möglichkeit die ich bis jetzt kenne, daß ich das Hintergrundbild. Allerdings dauert das wechseln des Hintergrundbildes zu lange für das was ich vorhabe.

Ich hab vor langer Zeit gesehen (war noch unter Win3.1) wie ein Programm die Kontrolle über den Desktop übernommen hat und eine kleine GrafikDemo drauf ausgeführt hat. Dazu mußte das Windows nicht neu gestartet werden. Die Demo wurde unter dem Icons (also auf dem Desktop) ausgeführt. Es war eine Art animiertes Hintergrundbild.

Jetzt ist mir das wieder eingefallen und ich frag mich wie die das gelöst haben. Wie gesagt, es ist nicht der normale Desktop.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 07.01.03 19:03 
Es gibt nur einen Desktop 8wenn wir m,al davon ausgehen, dass nicht der ActiveDesktop aktiviert ist). Der desktop ist einfach nur ein Listview in der Icon-Ansicht. Nicht mehr und nicht weniger. Wenn du jetzt eine Animation da ablaufen lassen willst, müßtest du auf dem Canvas des Listviews zeichnen.

Nur da dürftest du nicht so einfach dran kommen. Grund: Der Listview gehört zu den Steuerelemente die unter Win95 neu waren und es zu 16-Bit-Zeiten noch nicht gab. Auf diese neuen Steuerelemente kann man nicht so einfach draufzugreifen, wie zum Beispiel auf eine Listbox in Fremdanwendungen. Unter 16-Bit ging das noch ohne weiteres, da die Prozesse noch nicht in streng von ein ander abgegrenzen Adressräumen liefen und um die kompatibilität älterer Programme unter Win95 zu gewährleisten, kuckt Windows um was für eine Message es sich handelt (LB_GETTEXT zum Beispiel) und mapped den Zeiger auf den Buffer, der die Zeichenkette empfängt in einen gemeinsamen Speicherbereich. Bei den neuen Steuerelemeten hat Micorsoft es nicht für nötig befunden dies zu erlauben, da es aus kompatibilitäts Gründen nicht notwendig war. Einzigste Lösung: Eine DLL in den Explorer-Prozess zu injezieren, der für den Listview zu ständig ist.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 07.01.03 20:10 
Ich hab mich an etwas erinnert. Es gibt einen Reg-Schlüssel mit dem man die Icons ausschalten kann (leider kann ich mich an den Schlüssel nicht erinnern). In Wirklichkeit wird aber nur die Oberfläche ausgewechselt. SysListView32 wird gegen SHELLDLL_DefView ausgetuscht. Vielleicht kann man da was machen?

Da ich mich an den Schlüssel nicht erinnern kann, hab ich ein altes Tool genommen: Vielleich willst du es selbst testen?

mitglied.lycos.de/popov3/temp/MagicDsk.exe
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 07.01.03 20:21 
Lycos ist selbst mit DSL langsam ohne Ende. Und Downloads aknn man anscheinend nicht direkt verlinken. Ich muß über die Startseite gehen. Und auf der HP habe ich es nicht gefunden.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 07.01.03 20:54 
Luckie hat folgendes geschrieben:
Einzigste Lösung: Eine DLL in den Explorer-Prozess zu injezieren, der für den Listview zu ständig ist.

Es gibt noch eine andere Lösung. Mit VirtualAllocEx() kann man Speicher im fremden Prozess reservieren, den man dann übergibt, und mit Write/ReadProcessMemory diesen dann im eigenen Programm nutzen.

_________________
Ist Zeit wirklich Geld?
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 07.01.03 21:39 
Luckie hat folgendes geschrieben:
Lycos ist selbst mit DSL langsam ohne Ende. Und Downloads aknn man anscheinend nicht direkt verlinken. Ich muß über die Startseite gehen. Und auf der HP habe ich es nicht gefunden.


Versuchs mit:

free.pages.at/popov3/temp/MagicDsk.htm
Ist die Frage beantwortet? Das Problem gelöst?

Dann klicke hier, um das Thema entsprechend zu markieren!