![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > Clipboard benutzen | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2007-11-26, 23:49 h MaikG Posts: 5172 User |
Ich hab noch nie das Clipboard benutzt. NDK hab ich gelesen. Muss ich nur das clipboard.device öffnen und ein CMD_Write reinschicken? Was ist mit der Unit, andere Programme benutzen es ja auch? Oder mit Shared öffnen? [ - Answer - Quote - Direct link - ] |
2007-11-27, 10:10 h ZeroG Posts: 1488 User |
@MaikG: Auch schon in das RKM:Devices geguckt? Da ist ein ganzes Kapitel dem Clipboard zugedacht. Mit Beispielen. Was die Unit angeht, ist es eine gute Idee dem Benutzer eine Einstellmöglichkeit zu geben und als default 0 zu benutzen. [ - Answer - Quote - Direct link - ] |
2007-11-27, 15:10 h MaikG Posts: 5172 User |
>Auch schon in das RKM:Devices geguckt? Hab die Developer CD 2.1 noch nicht finden können... >Was die Unit angeht, ist es eine gute Idee dem Benutzer eine >Einstellmöglichkeit zu geben und als default 0 zu benutzen. Also können alle Programme die Unit 0 öffnen ohne einen Fehler zurück zubekommen? [ - Answer - Quote - Direct link - ] |
2007-11-27, 15:32 h thomas Posts: 7721 User |
@MaikG:Zitat: http://www.vesalia.de/d_developer2.htm Zitat: Natürlich immer nur eins zur Zeit. Sonst gäbe es Kuddelmuddel. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2007-11-27, 15:32 h ZeroG Posts: 1488 User |
@MaikG: Auch schon etwas her das ich mit dem Clipboard gespielt hab und im moment hab ich leider keine Zeit mein RKM rauszukrammen und nachzugucken. Normalerweise kann man ja z.B. in Multiview Text ausschneiden und dann praktisch überall einfügen. Das geht natürlich nur wenn die Programme die gleiche Unit benutzen, normalerweise ist das Unit 0, die anderen 255 Units sind für fortgeschrittene Benutzer gedacht. Alle Programme können Unit 0 benutzen, aber natürlich nur nacheinander, für die genauen Regeln mußt du wohl in dein RKM gucken. [ - Answer - Quote - Direct link - ] |
2007-11-27, 16:30 h MaikG Posts: 5172 User |
>Natürlich immer nur eins zur Zeit. Sonst gäbe es Kuddelmuddel. Also muss ich öffnen - machen schliessen und beim nächsten zugriff das selbe? >Normalerweise kann man ja z.B. in Multiview Text ausschneiden und >dann praktisch überall einfügen. Das geht natürlich nur wenn die >Programme die gleiche Unit benutzen, normalerweise ist das Unit 0, >die anderen 255 Units sind für fortgeschrittene Benutzer gedacht. Ich brauche das gegenteil, ich schreibe was ins Clipboard und alle anderen sollten darauf zugreifen können. [ - Answer - Quote - Direct link - ] |
2007-11-27, 16:43 h thomas Posts: 7721 User |
C code:BOOL write_clipboard (UBYTE *buffer,ULONG unit) { BOOL ok = FALSE; struct IFFHandle *iff; if (iff = AllocIFF()) { if (iff->iff_Stream = (ULONG) OpenClipboard (unit)) { InitIFFasClip (iff); if (!OpenIFF (iff, IFFF_WRITE)) { if (!PushChunk (iff, ID_FTXT, ID_FORM, IFFSIZE_UNKNOWN)) { if (!PushChunk (iff, 0, ID_CHRS, IFFSIZE_UNKNOWN)) { ULONG len = strlen (buffer); if (WriteChunkBytes (iff, buffer, len) == len) { if (!PopChunk (iff)) ok = TRUE; } } if (ok) if (PopChunk (iff)) ok = FALSE; } CloseIFF(iff); } CloseClipboard ((struct ClipboardHandle *)iff->iff_Stream); } FreeIFF (iff); } return (ok); } So oder so ähnlich soll man es machen. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2007-11-27, 18:15 h MaikG Posts: 5172 User |
>So oder so ähnlich soll man es machen. Edit: Ah, achso jetzt hab ich es gesehen ich muss einen IFF-Header davor setzen. [ Dieser Beitrag wurde von MaikG am 27.11.2007 um 18:18 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2007-11-27, 19:58 h Der_Wanderer Posts: 1229 User |
@tomas Interessant. Hast du auch noch das "read_Clipboard" Äquivalent ? -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2007-11-27, 20:26 h thomas Posts: 7721 User |
C code:struct List *read_clipboard (ULONG unit) { struct List *list = NULL; struct Node *node; struct IFFHandle *iff; struct ContextNode *cn; long err; BOOL ok = FALSE; if (iff = AllocIFF()) { if (iff->iff_Stream = (ULONG) OpenClipboard (unit)) { InitIFFasClip (iff); if (!OpenIFF (iff, IFFF_READ)) { if (!StopChunk (iff, ID_FTXT, ID_CHRS)) { if (list = AllocVec (sizeof (struct List),MEMF_CLEAR)) { NewList (list); ok = TRUE; do { err = ParseIFF (iff,IFFPARSE_SCAN); if (err == IFFERR_EOC) continue; if (err == IFFERR_EOF) break; ok = FALSE; if (err != 0) break; cn = CurrentChunk(iff); if ((cn) && (cn->cn_Type == ID_FTXT) && (cn->cn_ID == ID_CHRS)) { if (node = AllocVec (sizeof(struct Node) + cn->cn_Size + 1,MEMF_CLEAR)) { node->ln_Name = (char *)(node + 1); if (ReadChunkBytes (iff,node->ln_Name,cn->cn_Size) == cn->cn_Size) { AddTail (list,node); ok = TRUE; } else FreeVec (node); } } } while (ok); if (!ok) { while (node = RemHead (list)) FreeVec (node); FreeVec (list); list = NULL; } } } CloseIFF(iff); } CloseClipboard ((struct ClipboardHandle *)iff->iff_Stream); } FreeIFF (iff); } return (list); } Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2007-11-27, 20:29 h Bjoern Posts: 1730 User |
thomas der Code-Guru ![]() [ - Answer - Quote - Direct link - ] |
2007-11-27, 20:36 h Der_Wanderer Posts: 1229 User |
@thomas Danke! -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2007-11-27, 23:49 h MaikG Posts: 5172 User |
Ja, lag am Fehlenden IFF-Header. Ich berechne jetzt einfach die beiden Byte Angaben und setzte den Header dazu. Dann ab mit CMD_Write und alles geht. Einfacher als ich dachte. Danke! [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Clipboard benutzen | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |