ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > In Clipboard schreiben | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
29.05.2002, 13:48 Uhr Steffen Posts: 407 Nutzer |
Hi, das Brett hat Petra aber schnell eingerichtet Nun zu meiner Frage: Wie öffnet man das Clipborddevice um die Systemweite Clipbordfunktion (Alt+C) nutzen zu können (schreiben)? Ich nutze BB2 und brüchte sowas wie: Clipboard öffnen Text reinschreiben Clipboard schließen ohne irgend son Zeug wie Lib öffnen/schließen usw. also nur das nötigste, den Rest macht ja Blitz2 automatisch. (Habe aber auch leichte Kenntnisse in C) -- Steffen [ - Antworten - Zitieren - Direktlink - ] |
29.05.2002, 14:19 Uhr Micha1701 Posts: 938 Nutzer |
Hi! Aus dem stehgreif würd ich sagen, einfach nach CLIPS: schreiben. Ist das Device nicht dafür da? PIPE: funktioniert ähnlich. Benutzt hab ichs aber noch nicht.... (also unter umständen eine unqualifizierte Antwort) -- Micha Look at my HP: http://www.lanser-online.de.vu [ - Antworten - Zitieren - Direktlink - ] |
29.05.2002, 15:05 Uhr TriMa Posts: 2793 [Ex-Mitglied] |
Amiga+c ist copy amiga+v ist einfügen amiga+x ist ausschneiden nicht alt+c -- MfG TriMa -- Look there -> http://www.trimaweb.de [ - Antworten - Zitieren - Direktlink - ] |
29.05.2002, 15:15 Uhr DOM Posts: 1044 Nutzer |
Joh, einfach nen Editor nehmen und den Text nach Clips mit Namen 0 (Null) speichern... [ - Antworten - Zitieren - Direktlink - ] |
29.05.2002, 16:07 Uhr Steffen Posts: 407 Nutzer |
@DOM Funktioniert leider nicht. @all Wie öffnet mann das Clipboarddevice und schreibt darin (Mit welcher Funktion) -- Steffen [ - Antworten - Zitieren - Direktlink - ] |
29.05.2002, 16:47 Uhr David Posts: 65 Nutzer |
Hallo Steffen, die iffparse.library stellt für solche Sachen Funktionen zur Verfügung. Da ich kein BB2 kann , da du schreibt das du leichte C Kenntnisse hast, kann ich nur ein Beispiel in C geben. #define ID_FTXT MAKE_ID('F','T','X','T') #define ID_CHRS MAKE_ID('C','H','R','S') char *str="Der Text der ins Clipboard soll"; struct IFFHandle *iff=0; iff=AllocIFF(); if(iff) { iff->iff_Stream=(ULONG)OpenClipboard(0); if(iff->iff_Stream) { InitIFFasClip(iff); if(OpenIFF(iff,IFFF_WRITE)==0) { PushChunk(iff,ID_FTXT,ID_FORM,IFFSIZE_UNKNOWN); PushChunk(iff,0,ID_CHRS,IFFSIZE_UNKNOWN); WriteChunkBytes(iff,str,strlen(str)); PopChunk(iff); PopChunk(iff); CloseIFF(iff); } CloseClipboard((struct ClipboardHandle *)iff->iff_Stream); } FreeIFF(iff); } mfg David [ - Antworten - Zitieren - Direktlink - ] |
30.05.2002, 08:41 Uhr Steffen Posts: 407 Nutzer |
Anhang diesen Beispiels habe ich folgenes geschrieben: ;#define ID_FTXT MAKE_ID('F','T','X','T') ;#define ID_CHRS MAKE_ID('C','H','R','S') String_$="Der Text der ins Clipboard soll" + Chr$(0) *iff.IFFHandle=AllocIFF_(); If(*iff) NPrint "AllocIFF" *iffiff_Stream= OpenClipboard_(0); If(*iffiff_Stream) NPrint "OpenClip" InitIFFasClip_ *iff; If(OpenIFF_(*iff,#IFFF_WRITE)=0) NPrint "OpenIFF" Test$ = "FTXT" + Chr$(0) PushChunk_ *iff,&Test$,#ID_FORM,#IFFSIZE_UNKNOWN Test2$ = "CHRS" + Chr$(0) PushChunk_ *iff,&Test2$,&String_$,#IFFSIZE_UNKNOWN; WriteChunkBytes_ *iff,&String_$,Len(String_$) PopChunk_(*iff); PopChunk_(*iff); CloseIFF_(iff); EndIf CloseClipboard_(*iffiff_Stream); EndIf EndIf FreeIFF_(*iff); Delay_ 100 End Wenn das Programm ausgeführt und beendet wurde, komm es, wenn die Taste amiga-V aufgerufen wird zu einen Absturz des Systems. Wo Liegt der Fehler? -- Steffen [ - Antworten - Zitieren - Direktlink - ] |
30.05.2002, 10:53 Uhr AND Posts: 9 Nutzer |
Hi Steffen, Du kannst dir ja so behelfen: Aus dem C-Fragment machst du CLI-Kommando, dass den übergebenen Paramter ins Clipboard schreibt. Dann kannst aus BB2 einfach dieses (externe) Kommando aufrufen und den Text so ins Clipboard manövrieren. Ich weiss, das ist umständlich, aber wenns funktioniert. Das vollständige C-Programm sieht so aus: #include <clib/iffparse_protos.h> #include <libraries/iffparse.h> #define ID_FTXT MAKE_ID('F','T','X','T') #define ID_CHRS MAKE_ID('C','H','R','S') extern struct Library *IFFParseBase; char *str="Der Text der ins Clipboard soll"; struct IFFHandle *iff=0; void main(int argc, char **argv) { if(argc > 1) str = argv[1]; iff=AllocIFF(); if(iff) { iff->iff_Stream=(ULONG)OpenClipboard(0); if(iff->iff_Stream) { InitIFFasClip(iff); if(OpenIFF(iff,IFFF_WRITE)==0) { PushChunk(iff,ID_FTXT,ID_FORM,IFFSIZE_UNKNOWN); PushChunk(iff,0,ID_CHRS,IFFSIZE_UNKNOWN); WriteChunkBytes(iff,str,strlen(str)); PopChunk(iff); PopChunk(iff); CloseIFF(iff); } CloseClipboard((struct ClipboardHandle *)iff->iff_Stream); } FreeIFF(iff); } } Es lässt sich mit SAS/C in 1 Sek. kompilieren und funktioniert ohne Probleme. Gruss Andre [ - Antworten - Zitieren - Direktlink - ] |
30.05.2002, 15:25 Uhr Steffen Posts: 407 Nutzer |
Habe nur den StormC4-GCC oder StromC3 compiler und da kommt leider "parse error before '', linie 22 & 24" (PushChunk) und das mehre male. Wie muss mann den Source abändern damit der Funktioniert (Könnte den Source dann auch für spätere C-Projekte nutzen)An der SElben Stelle bin ich übrigens auch mit Blitz gescheitert (wuste nicht wie ich das einbinden sollte) -- Steffen [ Dieser Beitrag wurde von Steffen am 30.05.2002 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
30.05.2002, 16:54 Uhr David Posts: 65 Nutzer |
Hallo Steffen, so lässt es sich auch mit StormC3 compilieren ist einwenig abgeändert von AND. Es werden alle Argumente in einen eigenen Chunk gespeichert. Code: #include <clib/exec_protos.h> #include <clib/iffparse_protos.h> #include <proto/iffparse.h> #include <libraries/iffparse.h> #include <string.h> struct Library *IFFParseBase=0; #define ID_FTXT MAKE_ID('F','T','X','T') #define ID_CHRS MAKE_ID('C','H','R','S') void main(int argc, char **argv) { if(argc>1) { IFFParseBase=OpenLibrary("iffparse.library",36); if(IFFParseBase) { struct IFFHandle *iff=0; iff=AllocIFF(); if(iff) { iff->iff_Stream=(ULONG)OpenClipboard(0); if(iff->iff_Stream) { InitIFFasClip(iff); if(OpenIFF(iff,IFFF_WRITE)==0) { int i=0; PushChunk(iff,ID_FTXT,ID_FORM,IFFSIZE_UNKNOWN); for(i=1;i<argc;i++) { if(PushChunk(iff,0,ID_CHRS,IFFSIZE_UNKNOWN)==0) { WriteChunkBytes(iff,argv[i],strlen(argv[i])); PopChunk(iff); } } PopChunk(iff); } CloseClipboard((struct ClipboardHandle *)iff->iff_Stream); } FreeIFF(iff); } CloseLibrary(IFFParseBase); } } else { // keine Argumente } } mfg david [ - Antworten - Zitieren - Direktlink - ] |
30.05.2002, 21:28 Uhr DOM Posts: 1044 Nutzer |
@Steffen äää ja Sorry die Datei muß FTXT (IFF-Format) sein, ist aber nicht schwierig sowas zu machen... [ - Antworten - Zitieren - Direktlink - ] |
31.05.2002, 08:53 Uhr Steffen Posts: 407 Nutzer |
@David Ich dhabe dir eine EMail geschickt -- Steffen [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > In Clipboard schreiben | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |