Seite 1 von 2

Re: peek und poke????

Verfasst: Mittwoch 7. Mai 2008, 22:58
von gerold
~Evil~ hat geschrieben:würde gern eine tmp datei aus dem speicher kopieren
Hallo ~Evil~!

Ich glaube nicht, dass du das brauchen kannst, da es eine Kooperation mit dem anderen Programm erfordert.

Ich hatte mich vor Kurzem mal mit dem Modul *mmap* http://docs.python.org/lib/module-mmap.html befasst. Damit kann man unter *Windows*, einem Speicherbereich einen "Namen" geben, diesen beschreiben und auslesen. Das funktioniert seit Python 2.5. Auf diesen Speicherbereich können mehrere Programme parallel zugreifen. In Verbindung mit systemweiten Events/Locks kann man damit einen sehr schnellen Datenaustausch zwischen Programmen (da nur im Speicher) realisieren. Das ist aber keine einfache Sache. Da ich keinen Bedarf dafür hatte, habe ich mich nicht näher damit befasst. Ein paar kleine Tests und das war's auch schon.

Dann gibt es noch die Windows-Funktion *CopyMemory* http://msdn.microsoft.com/en-us/library/aa366535.aspx

In wie weit der Speicherschutz gilt weiß ich nicht. Das Schreiben in einen Speicherbereich eines anderen Programmes funktioniert ziemlich sicher nicht. Aber ob es möglich ist, aus dem Speicher eines anderen Programmes zu lesen? Ich weiß es nicht mehr.

Auf die Funktion CopyMemory sollte man über *ctypes* zugreifen können. CopyMemory kommt aus der *kernel32.dll*. Visual Basic Beispiel: http://paste.pocoo.org/show/48513/

Die Schwierigkeit dürfte in deinem Fall eher sein, die Adresse des Speicherbereichs heraus zu finden.

Und BlackJacks Code sollte man auch mal ausprobieren. Vielleicht stellt das einen pythonischen Ersatz für die API-Funktion CopyMemory dar. Mit ctypes kenne ich mich leider noch nicht aus.

mfg
Gerold
:-)

PS:
- http://msdn.microsoft.com/en-us/library ... S.85).aspx (die Klammern gehören dazu)
- http://msdn.microsoft.com/en-us/library ... S.85).aspx (die Klammern gehören dazu)

Verfasst: Donnerstag 8. Mai 2008, 06:33
von lunar
Wie immer wieder ein sehr ausführliches Posting von dir zum Thema "direkter Speicherzugriff"... nur glaube ich nicht, dass der OP *wirklich* direkten Speicherzugriff braucht. Für dieses "Unlocker"-Zeugs braucht man es jedenfalls nicht.

Verfasst: Donnerstag 8. Mai 2008, 07:18
von BlackJack
Aber es passt zum Titel und zur formulierten Fragestellung, auch wenn's letztendlich für den OP die falsche Frage war. So finden Leute, die *wirklich* ``peek`` und ``poke`` suchen, wenigstens erhellende Informationen. :-)

Verfasst: Donnerstag 8. Mai 2008, 08:34
von jens
Auf der anderen Seite ist es IMHO Sinnvoller, solche Ausführlichen Informationen ehr ins Wiki zu schreiben und dann hier zu verlinken. Dieser Thread wird untergehen und ist nur durch die schlechte phpBB Suche wieder zu finden...

Aber ich weiß, gerold mag leider keine Wikis :(

Btw. zum Thema schlechte phpBB Suche: http://www.python-forum.de/topic-14585.html

Verfasst: Donnerstag 8. Mai 2008, 15:08
von Leonidas
jens hat geschrieben:Aber ich weiß, gerold mag leider keine Wikis :(
Hindert ja dich nicht, es ins Wiki zu schreiben.

Verfasst: Donnerstag 8. Mai 2008, 15:50
von ~Evil~
vielen dank das wird mir wohl weiter helfen...