[C++] Zapisywanie tekstu ze zmiennej do schowka
Ostatnio zmodyfikowano 2013-11-30 14:04
mgrD Temat założony przez niniejszego użytkownika |
» 2013-11-30 14:03:20 No tak, dziękuję - zastosowałem się do twojej instrukcji z innego tematu: Jeśli chodzi o obsługę schowka to: OpenClipboard() EmptyClipboard() SetClipboardData() CloseClipboard() I działa, dzięki wielkie :) |
|
leon_w |
» 2013-11-30 14:04:20 Znalazłem na stronie forum.dobreprogramy.pl" kod, który odczytuje i zapisuje do schowka. Kod sprawdzony - działa prawidłowo. #include <iostream> #include <string> #include <Windows.h>
std::string getClip() { std::string res; if( !OpenClipboard( 0 ) ) return res; HANDLE hMem = GetClipboardData( CF_OEMTEXT ); if( !hMem ) { CloseClipboard(); return res; } char * p =( char * ) GlobalLock( hMem ); if( !p ) { CloseClipboard(); return res; } res = p; GlobalUnlock( hMem ); CloseClipboard(); return res; }
bool setClip( const std::string & txt ) { HANDLE hMem = GlobalAlloc( GMEM_MOVEABLE, txt.length() + 1 ); if( !hMem ) return false; char * p =( char * ) GlobalLock( hMem ); if( !p ) { GlobalFree( hMem ); return false; } for( size_t i = 0; i <= txt.length(); ++i ) p[ i ] = txt[ i ]; GlobalUnlock( hMem ); if( !OpenClipboard( 0 ) ) { GlobalFree( hMem ); return false; } EmptyClipboard(); SetClipboardData( CF_OEMTEXT, hMem ); CloseClipboard(); return true; }
int main() { std::cout << getClip() << std::endl; std::string t; std::getline( std::cin, t ); setClip( t ); return 0; }
|
|
1 « 2 » |