String in die Zwischenablage kopieren?
-
Ich hab ein kleines Konsolenprogramm geschrieben. Ich würde gerne den String in die Zwischenablage (Clipboard) kopieren. Habe schon gegoogelt aber keinen verständlichen CodeSnippet gefunden, das dürfte doch eigentlich kein Problem sein oder? Das ganze sollte in C sein...
-
Is eigentlich recht einfach..
#include <windows.h> void copyToClipboard(const char *str) { if(!OpenClipboard(NULL)) return; EmptyClipboard(); HGLOBAL hClipboardData; hClipboardData = GlobalAlloc(GMEM_DDESHARE, strlen(str)+1); char *pchData; pchData = (char*)GlobalLock(hClipboardData); strcpy(pchData, str); GlobalUnlock(hClipboardData); SetClipboardData(CF_TEXT, hClipboardData); CloseClipboard(); } int main() { copyToClipboard("Copy me to clipboard"); return 0; }
-
JustSomeCoder schrieb:
Is eigentlich recht einfach..
Jup, allerdings auch schon WinAPI!
-
code_pilot schrieb:
JustSomeCoder schrieb:
Is eigentlich recht einfach..
Jup, allerdings auch schon WinAPI!
So heißt ja auch das OS *grins*
-
Scheppertreiber schrieb:
code_pilot schrieb:
JustSomeCoder schrieb:
Is eigentlich recht einfach..
Jup, allerdings auch schon WinAPI!
So heißt ja auch das OS *grins*
-
Hätte mir nie gedacht dass das mit so wenig Code zu bewerkstelligen ist.
-
THE_ONE schrieb:
Hätte mir nie gedacht dass das mit so wenig Code zu bewerkstelligen ist.
Eine der Stärken von C: 2 Seiten Pascal in eine einzige Zeile quetschen :-))))
Ich liebe es ...
-
Hi,
Ich will mir ein Programm machen, das mir bestimmte Zahlenfolgen erstellt und in die Zwischenablage kopiert. Leider sind meine Programmierkentnisse noch nicht ganz so weit... Die Zahlenfolgen waren nicht das Problem, die habe ich jetzt so vorliegen:
x[0]= Wert 1
x[1]= Wert 2
...
x[n]= Wert nFür das in die Zwischenablage kopieren hab ich mich von dem obigen Bsp bedient.
1. Nur muss ich jetzt die Werte noch in einen String bekommen oder?
2. Und wie gebe ich es dann hier an: copyToClipboard("Text");hier mein Code:
#include <stdio.h> #include <windows.h> void copyToClipboard(const char *str); void main (void) { int i,k,m,n,p,q,x[1000]; char r; do { do { printf("\nSollen die Zahlen 1,2,5,6,... ausgegeben werden druecke 1 \n"); printf("Sollen die Zahlen 3,4,7,8,... ausgegeben werden druecke 2 "); scanf("%i",&q); } while (q!=1 && q!=2); printf("\nAnzahl der hoechsten Seitenanzahl eingeben: "); scanf("%i",&n); printf("\n"); p=r=i=0; if(q==1) { for (k=1 ; k<=n ; k=k+4) for (m=0 ; m<2 ; m++) { p=m+k; x[i]=p; printf("%i; ",x[i]); i++; } } if(q==2) { for (k=3 ; k<=n ; k=k+4) for (m=0 ; m<2 ; m++) { p=m+k; x[i]=p; printf("%i; ",x[i]); i++; } } printf("\n"); copyToClipboard("Hier Text für Zwischenablage"); printf("\nProgramm wiederholen? j/n "); scanf("%s",&r); }while (r=='j'); printf("\n"); } void copyToClipboard(const char *str) { if(!OpenClipboard(NULL)) return; EmptyClipboard(); HGLOBAL hClipboardData; hClipboardData = GlobalAlloc(GMEM_DDESHARE, strlen(str)+1); char *pchData; pchData = (char*)GlobalLock(hClipboardData); strcpy(pchData, str); GlobalUnlock(hClipboardData); SetClipboardData(CF_TEXT, hClipboardData); CloseClipboard(); }
-
Wenn ich dich jetzt richtig verstanden hab, dann willst du eine int Variable ins Clipboard kopieren.
Ich hab mal meinen damaligen Code angepasst.. deiner war mir zu unübersichtlich.
#include <windows.h> void copyToClipboard(const char *str) { if(!OpenClipboard(NULL)) return; EmptyClipboard(); HGLOBAL hClipboardData; hClipboardData = GlobalAlloc(GMEM_DDESHARE, strlen(str)+1); char *pchData; pchData = (char*)GlobalLock(hClipboardData); strcpy(pchData, str); GlobalUnlock(hClipboardData); SetClipboardData(CF_TEXT, hClipboardData); CloseClipboard(); } int main() { int n = 123; char str[11]; _itoa(n, str, 10); copyToClipboard(str); return 0; }
-
Hi,
erstmal danke für deine schnelle Antwort!
ich will nicht nur eine Variable in die Zwischenablage kopieren, sondern mehrere und am besten getrennt durch ein Semikolon.
Also z.B.: 1; 2; 5; 6; 9; 10; 13; 14
und ich habe die Daten bis jetzt im Format:
int x[50];x[0]= 1
x[1]= 2
x[2]= 5Ich müsste also alle int Zahlen hintereinander, getrennt durch Semikolon, in einen String schreiben !?
(So unübersichtlich finde ich mein Programm gar nicht
)
-
char buffer[1000]; char tmp[20]; int i; int x[50]; <--- mit 50 ints befüllen, und dann: _itoa(x[0], tmp, 10); strcpy(buffer, tmp); for(i = 1; i < 50; ++i) { _itoa(x[i], tmp, 10); strcat(buffer, ";"); strcat(buffer, tmp); }
Danach mit buffer die von JustSomeCoder vorgestellte Funktion aufrufen.
-
hey klasse, funktioniert einwandfrei
Danke!