Zwischenablage
-
Die API Funktion heißt SetClipboardData
-
Aahhh darin liegt der Hund begraben
-
??? wer kann mich da mal aufklären??
Weiß jemand zumindest zu welche headerdatei GetClipboardText() gehört??
und gibt es irgendwo auch ein deutsches MSDN??mfg SHark
-
windows.h
Die Funktion heißt allerdings GetClipboardData.
SetClipboardText ist doch eine selbstgeschriebene Funktion.
-
Wusst ichs doch das es etwas komplizierter sein muss als einfach die Daten an die WinAPI zu verschicken *g*.
Nein es gibt keine MSDN - sie ist zwar zT eingedeutscht (kannst dir kaufen), aber immer noch nicht vollständig. Und gerade was die WinAPI betrifft hast du weiterhin viel mit der englischen Sprache zu tun.
MfG SideWinder
-
Nein es gibt keine MSDN
-
Keine MSDN in deutsch
:p
MfG SideWinder
-
Ich habe jetzt sehr lange gesucht (google) und nichts gefunden! Ich finde immer nur Beispiele wie man etwas in der Konsole in die ZWischenablage kopiert, aber nicht mehr heraus! Naja vieleicht weiß einer von euch wie dass zu schaffen wäre
mfg Shark
-
Dafür hab ich nicht mal 1 Minute gebraucht.
-
jo aber beim beispiel steht auch nur wie man einen einen text in die zwischenablage kopiert! und wenn ich das bsp ausprobiere kommen nur fehler
mfg Shark
-
Auszug aus der Online MSDN.
VOID WINAPI EditPaste(VOID) { PLABELBOX pbox; HGLOBAL hglb; LPTSTR lptstr; PLABELBOX pboxCopy; int cx, cy; HWND hwnd; pbox = hwndSelected == NULL ? NULL : (PLABELBOX) GetWindowLong(hwndSelected, 0); // If the application is in edit mode, // get the clipboard text. if (pbox != NULL && pbox->fEdit) { if (!IsClipboardFormatAvailable(CF_TEXT)) return; if (!OpenClipboard(hwndMain)) return; hglb = GetClipboardData(CF_TEXT); if (hglb != NULL) { lptstr = GlobalLock(hglb); if (lptstr != NULL) { // Call the application-defined ReplaceSelection // function to insert the text and repaint the // window. ReplaceSelection(hwndSelected, pbox, lptstr); GlobalUnlock(hglb); } } CloseClipboard(); return; } // If the application is not in edit mode, // create a label window. if (!IsClipboardFormatAvailable(uLabelFormat)) return; if (!OpenClipboard(hwndMain)) return; hglb = GetClipboardData(uLabelFormat); if (hglb != NULL) { pboxCopy = GlobalLock(hglb); if (pboxCopy != NULL) { cx = pboxCopy->rcText.right + CX_MARGIN; cy = pboxCopy->rcText.top * 2 + cyText; hwnd = CreateWindowEx( WS_EX_NOPARENTNOTIFY | WS_EX_TRANSPARENT, atchClassChild, NULL, WS_CHILD, 0, 0, cx, cy, hwndMain, NULL, hinst, NULL ); if (hwnd != NULL) { pbox = (PLABELBOX) GetWindowLong(hwnd, 0); memcpy(pbox, pboxCopy, sizeof(LABELBOX)); ShowWindow(hwnd, SW_SHOWNORMAL); SetFocus(hwnd); } GlobalUnlock(hglb); } } CloseClipboard(); }
Edit: Code-Tags fehlten
-
was sind code tags??
-
Wenn du eine Nachricht schreibst, dann siehst unter dem Eingabefeld eine Zeile mit Smilies und darunter ist nochmal eine Zeile. Wenn du in dieser zweiten Zeile auf einen der "Buttons" klickst, dann fügt er dir einen Tag ein. Beim nächsten draufklicken auf den gleichen "Button" erscheint der Ende-Tag. Ein Code-Tag ist dann das, wo C/C++ bzw. Code steht. Die meisten nehmen C/C++, weils besser aussieht. Das ist dazu da, Quellcode in der Nachricht übersichtlicher zu gestallten.
Hat mein Auszug aus der MSDN dir jetzt geholfen??
-
lol achso du meinst das im Forum! sorry bin irgendwie auf da LEitung gestanden!
ABer zum COde selber, der zeigt 23 Fehler an... Der erste ist "PLABELBOX - nicht deklarierter Bezeichner".mfg Shark
-
<windows.h> includiert?
MfG SideWinder
-
jep hab ich! hmm... keine ah woran das liegen könnte!
mfg Shark
-
*kopfschüttel*
Was wird wohl eine P LABEL BOX sein?? Außerdem hab ich nicht beabsichtigt, dass du das Beispiel einfach kopierst und ausführst. Du sollst dir anschauen, wie man die Daten von der Zwischenablage rauskriegt.
Also folgendermaßen musst du vorgehen, um dir den Text aus der Zwischenablage zu holen:
1. Du rufst GetClipboardData() auf und speicherst das zurückgelieferte HANDLE in einer Variablen.
2. Du prüfst ab, ob das HANDLE überhaupt gültig ist.
3. Du holst dir einen Zeiger auf char bzw. auf den Text mit GlobalLock(). (HANDLE übergeben!)
4. Du gibst den Inhalt des Zeigers auf dem Bildschirm aus.
5. GlobalUnlock() nicht vergessen!Alles klar??
-
+gg+ was erwartest du dir von einem Anfänger...
Aber ich schau mal, danke für die Vorgehensweise, schau mal ob ich es zusammenbring.
mfg Shark
-
Das wichtigste für einen Anfänger ist zu wissen, wo man was findet. Hier im Forum hast du ja schon mal den Anfang gemacht ;). Das mit der MSDN ist auch recht einfach. Wenn du mal den Namen der Funktion weißt, dann brauchst du diesen nur in der Suche eingeben, dann brauchst du nur noch auf den richtigen Link zu klicken und schon erscheint auch die richtige Seite. Etwas Geduld beim Suchen muss man natürlich auch mitbringen
-
brauch nochmal HIlfe!
Wie benutz ich LPCTSTR und HGLOBAL???
mfg Shark