| |
|
|
| 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?? |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
Frank Abbing | Hi,
kannst du das nicht übers Clipboard lösen, Andeas? Würde ich so machen. |
|
|
| |
|
|
|
| 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... |
|
|
| |
|
|