| |
|
|
- Seite 1 - |
|
| 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?? |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
| Würde mir ein Prog mein Clipboardinhalt zerschießen würde ich es würgen.
Salve, iF |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
Frank Abbing | |
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| [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 |
|
|
| |
|
|
|
| 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... |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| AAAAAAAAH...
So langsam beginne ichs zu verstehen. GlobalAlloc und LocalAlloc scheint es nur noch aus kompatibilitätsgründen zu 16-Bit Windows zu geben. Unter 32-Bit Windows gibts da keinen Unterschied mehr.
Aber es gibt scheinbar andere APIsm mit denen man Speicher teilen kann, und die werde ich mir ansehen! Besten Dank also nochmals an Uwe Pascal Niemeier! Hast den den Knoten gelöst!!! (hoffentlich) |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute, hallo Andreas!
Das mit den Atomen habe ich auch schon gehört Aber da ist in den Dokus auch die Rede davon, dass deren Anzahl begrenzt ist.
Aber ich habe da nochwas: FileMapping Dabei wird eine Art virtuelle Datei (also nur im Speicher) angelegt, auf die man von überall her zugreifen kann. Scheint mir die einfachste Lösung zu sein; muss natürlich noch unter XP/NT getestet werden!
Der Vollständigkeit halber habe ich auch die CopyData-Demos noch mit eingepackt, weils ja da Probleme beim Runterladen gab.
HTH Pascal |
|
|
| |
|
|
|
| Bingo!
Filemapping habe ich gemeint - die Möglichkeit gibt es noch. Bevor ich mir deine Quelltexte ansehe, werde ich erst mal versuchen, mir selbst was zu basteln - will ja was lernen... |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute! Kleiner Nachtrag: In die FileMapping-Demos hat sich ein kleiner Fehler eingeschlichen. Am Ende der Codes muss es korrekterweise heissen
~UnmapViewOfFile(ViewHandle&) und nicht ~CloseHandle(ViewHandle&)
Sorry! Pascal |
|
|
| |
|
|