Seite 1 von 1

[Windows]mit Python dem Desktop Manipulieren

Verfasst: Montag 7. Januar 2008, 14:34
von KC25m
Hallo Leute,
ich habe da mal ne Frage bzw. suche ne lösung.
Ich habe WinXP und möchte mir ein paar Grafiken die ich erstelle auf dem Desktophintergrund ausgeben.

Ich möchte kein Fenster öffnen oder Splashscreen sondern,dass ich wirklich den Hintergrund manipuliere.

Welche Packette müste ich generell haben um auf dem Desktop schreiben oder lesen zu können ?

Würde mir IronPython da was bringen ?
Frage nur weil ich mit IronPython noch nichts gemacht habe, habe standart Py2.4.

(Sollte es nicht hier rein passen, bitte verschieben !!!)


Danke schon mal für die Antworten.

Gruß KC

Re: [Windows]mit Python dem Desktop Manipulieren

Verfasst: Montag 7. Januar 2008, 15:07
von gerold
KC25m hat geschrieben:Ich habe WinXP und möchte mir ein paar Grafiken die ich erstelle auf dem Desktophintergrund ausgeben.
Hallo KC!

Du kannst im Windows XP *Webseiten* oder *Bilder* auf dem Desktop platzieren.

- Rechte Maustaste auf einen freien Bereich des Desktops.
- Eigenschaften
- Desktop
- Desktop anpassen...
- Web

Wenn du willst, dass sich diese auf Knopfdruck ändern, dann kannst du entweder die ausgewählte Bilddatei überschreiben oder einen lokalen Webserver (mit Python) programmieren, der zufällige Bilder anzeigt.

mfg
Gerold
:-)

Verfasst: Montag 7. Januar 2008, 17:47
von KC25m
Das mit dem Web weiss ich , aber ist leider nichts was ich gebrauchen kann.
Webinhalte verdecken teilweisse Icons je nach einstellung.

Ich möchte auf gut Deutsch gesagt direkt in dem Grafikspeicher schreiben und davon lesen.

bewi einen PythonSkript habe ich gesehen,dass man den Bildschirm auslesen kann von Windows und drucken ...
gibt es da nicht irgendwas in der richtung ?
Ich denke mal wenn man von etwas lesen kann , kann man es auch schreiben.

Ich weiss leider auch nicht mehr welches Packet es war :(

Danke für deine Antwort :)

Verfasst: Montag 7. Januar 2008, 18:48
von Leonidas
So kann man den Hintergrund ändern.

Verfasst: Montag 7. Januar 2008, 19:38
von gerold
KC25m hat geschrieben:Ich möchte auf gut Deutsch gesagt direkt in dem Grafikspeicher schreiben und davon lesen.
Hallo KC25m!

Du kannst z.B. direkt auf den Screen zeichnen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import sys
import wx
import time


def main():
    app = wx.PySimpleApp()
    dc = wx.ScreenDC()
    bmp = wx.Bitmap("bild.gif")
    dc.DrawBitmap(bmp, 100, 100)
    time.sleep(3)


if __name__ == "__main__":
    main()

Aber ich weiß nicht ob dir das etwas bringt.

mfg
Gerold
:-)

Verfasst: Dienstag 8. Januar 2008, 00:51
von DER Olf
ich würde sagen, nimm dir die win32 lib-sachen vom activepython packet
und google nach entsprechenden Projekten und Beispielen in C bzw. C++ (meinetwegen auch noch Delphi).

setzt natürlich eine gewisse tiefere Kenntnis der win32api voraus.

desöfteren hab ich auch in c++-foren gelesen, dass die grafik-manipulation mit DirectX (Direct3D) möglich sein soll (weiß aber nicht, wie es mit dx-python bindings aussieht), in wie fern das stimmt, kann ich nicht beurteilen.

bzgl. der winapi: dort findest du auf jeden fall beispiele, die windows Shell anzusprechen, es gibt auch verschiedene COM-Interfaces. aber wie gesagt.. python und COM ... kA

grüße, olf

Verfasst: Mittwoch 9. Januar 2008, 15:27
von KC25m
Ja aber Hallo gerold,
das haut ja rein ... funktioniert wirklich gut.
Nur meine Icons werden auch gleich mit überschrieben.
Aber es funktioniert :)
Habe garnicht gewust das wx so weit ins system rein schreiben kann.



Danke an alle für die Antworten, hilft mir sehr weiter :)
Werde noch ein wenig experimentieren aber denke mal das wird schon klappen :)


Danke noch mal !

Verfasst: Mittwoch 9. Januar 2008, 15:46
von Python 47
gerold hat geschrieben:
Du kannst z.B. direkt auf den Screen zeichnen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import sys
import wx
import time


def main():
    app = wx.PySimpleApp()
    dc = wx.ScreenDC()
    bmp = wx.Bitmap("bild.gif")
    dc.DrawBitmap(bmp, 100, 100)
    time.sleep(3)


if __name__ == "__main__":
    main()
Warum importierst du sys?Nur ein Versehen?