peek und poke????

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 7. Mai 2008, 22:58

~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)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

Donnerstag 8. Mai 2008, 06:33

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.
BlackJack

Donnerstag 8. Mai 2008, 07:18

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. :-)
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 8. Mai 2008, 08:34

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 8. Mai 2008, 15:08

jens hat geschrieben:Aber ich weiß, gerold mag leider keine Wikis :(
Hindert ja dich nicht, es ins Wiki zu schreiben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
~Evil~
User
Beiträge: 13
Registriert: Dienstag 6. Mai 2008, 20:29

Donnerstag 8. Mai 2008, 15:50

vielen dank das wird mir wohl weiter helfen...
Antworten