Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как заблокировать ClipBoard


Автор: VictorBondarenko 2.10.2006, 19:16
Уважаемые друзья!
Не подскажет ли кто-нибудь ( лучше кодом)
как сделать так, чтобы моя прога, начав работать
сделала бы невозможным работу с буфером обмена (ClipBoard),
а перед окончанием работы разблокировала бы эту возможность.

С уважением,
      Виктор

Автор: Romikgy 2.10.2006, 19:39
сделай так , если твоя прога активна , шли по таймеру , что либо в буфер обмена
Цитата(VictorBondarenko @  2.10.2006,  18:16 Найти цитируемый пост)
лучше кодом

тогда в центр помощи!

Автор: 0x07L 2.10.2006, 20:51
Выдержка из MSDN по поводу функции OpenClipboard():
Цитата

OpenClipboard fails if another window has the clipboard open

Тестовая программа:
Код

#include <windows.h>

int APIENTRY WinMain(HINSTANCE instance, HINSTANCE, LPSTR, int)
{
    {
        HWND hwnd = 0;
        {
            const LPCSTR className = "just a class name";
            {
                WNDCLASSA wc = {0};
                wc.hInstance = instance;
                wc.lpfnWndProc = DefWindowProc;
                wc.lpszClassName = className;                

                RegisterClassA(&wc);
            }
            hwnd = CreateWindowA(className, 0, 0, 0, 0, 0, 0, 0, 0, instance, 0);
        }

        if (OpenClipboard(hwnd) == FALSE)
        {
            MessageBoxA(0, "OpenClipboard() failed", 0, 0);
            return 0;
        }
    }

    EmptyClipboard();

    MessageBoxA(0, "Clipboard locked. Press Ok button to unlock", 0, 0);

    CloseClipboard();

    return 0;
}

Если передать в OpenClipboard() ноль, то буфер обмена не блокируется, так что окно обязательно!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)