Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String im Arbeitsspeicher "hinterlegen" (https://www.delphipraxis.net/110145-string-im-arbeitsspeicher-hinterlegen.html)

gabneo 13. Mär 2008 15:58


String im Arbeitsspeicher "hinterlegen"
 
Hallo dp-Gemeinde,

ganz frei heraus Frage ich einfach mal: Gibt es eine Möglichkeit Text im Arbeitsspeicher so zu hinterlegen, dass Windows diesen nicht freigibt wenn meine Application beendet wird?
Natürlich wäre dieser nach einem Neustart weg, doch würde mich interessieren ob es Möglich ist, einen bestimmten Speicherbereich mit text zu füllen und für die dauer der Windows-session zu halten, so dass ich bei neustart meiner Application wieder darauf zugreifen kann?

PS: Es geht hierbei nur um die befriedigung meines wissensdurstes :mrgreen:

Viiiieeeelen Dank :dp:
greez
gabneo

Namenloser 13. Mär 2008 16:01

Re: String im Arbeitsspeicher "hinterlegen"
 
Ab Windows NT dürfte das wohl nicht mehr gehen.

Bernhard Geyer 13. Mär 2008 16:07

Re: String im Arbeitsspeicher "hinterlegen"
 
Dürfte auf keinem Betriebssystem mit unterstützung von virtueller Speicherverwaltung gehen.

Neotracer64 13. Mär 2008 16:10

Re: String im Arbeitsspeicher "hinterlegen"
 
Als Workaround könntest du die Registry oder eine Datei benutzen.
Oder auch Atoms.
http://msdn2.microsoft.com/en-us/lib...8VS.85%29.aspx

EDIT: Bei Edits gibts keinen roten Kasten. :D
Ich meine auch das was OregonGhost meint.

OregonGhost 13. Mär 2008 16:11

Re: String im Arbeitsspeicher "hinterlegen"
 
Direkt geht das ganz bestimmt nicht. Aber wie wär's z.B. mit einem Atom? :)
Das dürfte dem, was du beschrieben hast, noch am ehesten nahe kommen. Neben den im roten Kasten genannten Möglichkeiten.

Edit: He, Neotracer, vorhin hattest du noch nichts von Atom geschrieben :mrgreen:

gabneo 13. Mär 2008 16:14

Re: String im Arbeitsspeicher "hinterlegen"
 
Und könnte man den text vielleicht in dem speicherbereich eines anderes programmes hinterlegen das mit windows mitläuft?
Soweit ich das verstehe, gibt es keine Möglichkeit Speicherbereich zu beanspruchen ohne Windows den Eigentümer dafür zu nennen?!
Und wenn der Eigentümer meine Application ist, die gerade geschlossen wird, dann kann laut windows der bereich freigestellt werden?!
Ist das so richtig...?

@Neotracer64
Das würde ich ja machen...ist aber nicht so spannend wie den Arbeitsspeicher nutzen.. :zwinker:

@oregon
Atom? ^^
Muss man sich bei Atomen(^^) um deren Löschung kümmern, oder übernimmt das Windows z.b. beim Herunterfahren?

OregonGhost 13. Mär 2008 16:16

Re: String im Arbeitsspeicher "hinterlegen"
 
Ich weiß es auch nicht, ich sah bisher keinen Anlass, mich mit Atomen zu beschäftigen. Aber die entsprechende Doku, auf die Neotracer verweist, hat da einiges an Informationen zu bieten.

bluesbear 13. Mär 2008 16:34

Re: String im Arbeitsspeicher "hinterlegen"
 
Ich bin da vielleicht wirklich etwas altmodisch, aber was mir als erstes zu der Eingangsfrage einfiel war eine Ramdisk. :wink:

hathor 13. Mär 2008 16:58

Re: String im Arbeitsspeicher "hinterlegen"
 
Da gibt es noch die Umgebungsvariablen, wenn es nicht zu viel Text ist...

taaktaak 13. Mär 2008 18:08

Re: String im Arbeitsspeicher "hinterlegen"
 
Moin, Moin,
wären für solch einen Anwendungsfall nicht MMF (MemoryMappedFiles) eine praktikable Lösung: "sauschnell" und anwendungsübergreifend nutzbar

hathor 13. Mär 2008 18:24

Re: String im Arbeitsspeicher "hinterlegen"
 
Zitat:

Zitat von taaktaak
Moin, Moin,
wären für solch einen Anwendungsfall nicht MMF (MemoryMappedFiles) eine praktikable Lösung: "sauschnell" und anwendungsübergreifend nutzbar

Wenn Du SHARED MEMORY meinst:

Ich habe vor 1 Std. damit experimentiert, aber nach dem Beenden des Programms und Programm-Neustart war es immer wieder weg.
Eine Lösungsmöglichkeit wäre:

Ein Programm läuft im Hintergrund und erzeugt das SHARED MEMORY, andere Programme können dann JEDERZEIT darauf zugreifen.
Wenn man das Creator-Programm im Autostart-Ordner aufruft, dann hat man es immer greifbar.

Luckie 14. Mär 2008 09:16

Re: String im Arbeitsspeicher "hinterlegen"
 
Zitat:

Zitat von gabneo
Gibt es eine Möglichkeit Text im Arbeitsspeicher so zu hinterlegen, dass Windows diesen nicht freigibt wenn meine Application beendet wird?

Wozu soll das gut sein? Was hast du vor?

gabneo 14. Mär 2008 20:39

Re: String im Arbeitsspeicher "hinterlegen"
 
ich möchte in deinem Arbeitsspeicher das wort "virus" hinterlegen :roll:

Zitat:

Zitat von gabneo
PS: Es geht hierbei nur um die befriedigung meines wissensdurstes :mrgreen:

Ich möchte mein Wissen um den Arbeitsspeicher erweitern!

Luckie 14. Mär 2008 20:57

Re: String im Arbeitsspeicher "hinterlegen"
 
Reservier dir Speicher in einem fremden Prozess mit MSDN-Library durchsuchenVirtualAllocEx und beschreib ihn mit MSDN-Library durchsuchenWriteProcessmemory und lies ihn mit MSDN-Library durchsuchenReadProcessmemory wieder aus. Allerdings die Adresse musst du dir trotzdem irgendwie merken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz