Deutsch
Forum

Globaler Speicherbereich...

 
Hallo Profaner...

Ich möchte von einem Programm einen Speicherbereich füllen lassen und diesen dann mit einem anderen Programm auslesen.
Folgende Idee:
- Ich stelle mittels GlobalAlloc globalen Speicher bereit.
- Durch den Flag GMEM_FIXEDerhalte ich den Pointer auf diesen Bereich.
- Ich kopiere mit RtlMoveMemory alias CopyMemory eine Variable in diesen Speicherbereich.
- Mittels Usermessage übermittele ich den Pointer des Bereichs an ein zweites Programm.
- Mit CopyMemory kopiere ich dort dann den Bereich in eine Profan Bereichsvariable, die ich dann auslesen kann.

Leider bekomme ich auf diesem Weg nur Müll zurück. Warum? Hat jemand schon mal so etwas ähnliches gemacht??
 
20.01.2005  
 




Uwe
''Pascal''
Niemeier
Hallo Andreas!

Das mit dem GLOBAL solltest du nicht so wörtlich nehmen!
Jeder Prozess hat seinen Speicherbereich, der für andere Anwendungen normalerweise tabu ist.
Eine Lösung wäre die Message WM_COPYDATA. Damit kann man einen Pointer auf einen Datenbereich an ein Fremdfenster senden; der Pointer wird dabei angepasst.
Nachteil: Zur Auswertung ist ein Eingriff in das Message-Handling des Zielfensters nötig, geht also erst ab XProfan8. Und das hat zur Folge, dass vordefinierte Dialoge (LoadFile, SaveFile, Input, Messagebox) keine brauchbaren Ergebnisse mehr liefern, u.U. geht auch Create(Dialog... nicht mehr.
Zwar lässt sich die MSG-Erweiterung einfach ein-und ausschalten, (SetWindowLong mit alter bzw. neuer WndProc-Adresse), trotzdem sollte RGH da mal was machen...

Stark vereinfachte Demo anbei.

HTH
Pascal

2 kB
Hochgeladen:23.01.2005
Ladeanzahl374
Herunterladen
1 kB
Hochgeladen:23.01.2005
Ladeanzahl179
Herunterladen
 
23.01.2005  
 



Komisch - die attachments funzen nicht - die Files liegen auch nicht auf dem Server - könnte Du vielleicht nochmal die Files als .zip posten?

SAlve, iF
 
24.01.2005  
 




Frank
Abbing
Hi,

kannst du das nicht übers Clipboard lösen, Andeas? Würde ich so machen.
 
24.01.2005  
 



Würde mir ein Prog mein Clipboardinhalt zerschießen würde ich es würgen.

Salve, iF
 
24.01.2005  
 




Jörg
Sellmeyer
Hallo Andreas,
Könntest Du dem 2. Programm nicht das Handle eines (unsichtbaren) Edits oder Textfeldes geben?
Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.01.2005  
 




Rolf
Koch
Hi If,

wenn ich z.B. irgendwelchen Inhalt des Clipboars verändere, dann mach ich es immer so, daß der alte gesichert wird und nach Aktion wieder hergestellt wird.

Rolf
 
24.01.2005  
 



Kla Rolf - da bin ich mir sicher - es nutzt aber nix. :|

Clearclip löscht meiner Meinung mehr als nur z.B. den Text.

Es gibt ja z.B. auch OLEObjekte im Clipboard, Bilder bzw. Fremd/Thirdpartyformate - wo halt eine bestimmte Software das Clipboard nutzt um Daten im eigenen Format zu hinterlegen. Nehme man z.B. Goldwave (ein guter Shareware-WavEditor) - dieser speichert bei Copy den markierten Bereich ins Clipboard in einem eigenen Format. - So auch viele andere Programme.

Also Finger wech vom Clipboard.

Salve, iF
 
24.01.2005  
 




Frank
Abbing
Hallo,

warum denn das Clipboard löschen?
Warum nicht als Clipboardformat CF_DSPTEXT wählen.
KompilierenMarkierenSeparieren
 
24.01.2005  
 




Rolf
Koch
Hi If,


[quote:7e47098e7f]
Es gibt ja z.B. auch OLEObjekte im Clipboard, Bilder bzw. Fremd/Thirdpartyformate - wo halt eine bestimmte Software das Clipboard nutzt um Daten im eigenen Format zu hinterlegen. Nehme man z.B. Goldwave (ein guter Shareware-WavEditor) - dieser speichert bei Copy den markierten Bereich ins Clipboard in einem eigenen Format. - So auch viele andere Programme.
[/quote:7e47098e7f]
Also sollte die Funktion Clipboard überflüssig sein, oder?
Wie wäre es?
Erweiterung XPSE?
Realclip() (Idee hat ja Frank bereits geschrieben)
Wäre super, da ich jetzt wirklich drin bin in XPSE!!!
Rolf
 
24.01.2005  
 



[quote:1eb0564b6e=Rolf Koch]Hi If,


[quote:1eb0564b6e]
Es gibt ja z.B. auch OLEObjekte im Clipboard, Bilder bzw. Fremd/Thirdpartyformate - wo halt eine bestimmte Software das Clipboard nutzt um Daten im eigenen Format zu hinterlegen. Nehme man z.B. Goldwave (ein guter Shareware-WavEditor) - dieser speichert bei Copy den markierten Bereich ins Clipboard in einem eigenen Format. - So auch viele andere Programme.
[/quote:1eb0564b6e]
Also sollte die Funktion Clipboard überflüssig sein, oder?
Wie wäre es?
Erweiterung XPSE?
Realclip() (Idee hat ja Frank bereits geschrieben)
Wäre super, da ich jetzt wirklich drin bin in XPSE!!!
Rolf[/quote:1eb0564b6e]
Nein um Gottes Willen überflüssig ist sie nicht - nur Sie sollte nur dann genutzt werden wenn der User es auslöst. Sonst weiß er ja nicht das sein Clipboard überschrieben wird.

Salve, iF
 
24.01.2005  
 



Hallo allee zusammen...

erst einmal vielen Dank für eure zahlreichen Antworten!

@Frank: Es geht mir hier mal wieder ums Lernen und nicht ums Anwendungen schreiben. Trotzdem besten Dank für deinen Vorschlag - so gehts natürlich auch.

@Jörg: Das war bislang auch meine Lösung, über Usermessage Handle eines Textelementes senden und dann auslesen.

@Uwe Pascal Niemeier: Was ist dann der Unterschied zwischen LocalAlloc und GlobalAlloc? Und was sind dann Atome?? Sollen Atome nicht global auslesbare Strings sein???

@Rolf: Deine Ansicht über das Clipboard teile ich - ist aber wohl Ansichtssache...
 
24.01.2005  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

12.239 Betrachtungen

Unbenanntvor 0 min.
Jörg Sellmeyer12.06.2020
Ernst08.05.2016
H.Brill16.11.2013
Michael Borowiak22.12.2012

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie