Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Zapisywanie tekstu ze zmiennej do schowka

Ostatnio zmodyfikowano 2013-11-30 14:04
Autor Wiadomość
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 :)
P-97902
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.

C/C++
#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;
}
P-97903
1 « 2 »
Poprzednia strona Strona 2 z 2