Показать сообщение отдельно
Старый 04.01.2008, 20:07
Kogrom вне форума Посмотреть профиль Отправить личное сообщение для Kogrom Посетить домашнюю страницу Kogrom Найти все сообщения от Kogrom
  № 2  
Ответить с цитированием
Kogrom
 
Аватар для Kogrom

Регистрация: Aug 2005
Адрес: Уфимец в СПб
Сообщений: 360
Отправить сообщение для Kogrom с помощью ICQ
Попробовал решить эту задачу на C++

Код:
#include <windows.h>
#include <string>

using namespace std;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    string fromClipboard;  // в эту переменную сохраним текст из буфера обмена
    if ( OpenClipboard(NULL) )  // открываем буфер обмена
    {
        HANDLE hFile;
        DWORD dwWritten;
        HANDLE hData = GetClipboardData(CF_TEXT);  // извлекаем текст из буфера обмена
        if (hData == NULL) return -1; // если в буфере не текст - выходим
        fromClipboard = (char*)GlobalLock(hData);
        GlobalUnlock(hData);  // разблокируем память
        CloseClipboard();  // закрываем буфер обмена
        // открываем файл
        hFile = CreateFile("Clipboard.txt", GENERIC_WRITE, 0, NULL,
                CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
        // записываем содержимое буфера в файл
        WriteFile(hFile, fromClipboard.c_str(), fromClipboard.size(), &dwWritten, NULL);
        // закрываем файл
        CloseHandle(hFile);
    }

    // для просмотра содержимого буфера
    //MessageBox(NULL, fromClipboard.c_str(), "Hello Message Box", MB_OK);
    return 0;
}
Компилировать как win32 Application в бесплатно распространяемых IDE Code::Blocks или DevC++. Скорее всего скомпилируется и в Microsoft Visual C++.


Последний раз редактировалось Kogrom; 04.01.2008 в 20:19.