Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Как записать string в буффер обмена?

  • Автор темы Автор темы kirkraft
  • Дата начала Дата начала
C++:
Expand Collapse Copy
void Clipboard(HANDLE hMem)
{
    OpenClipboard(NULL); // hWnd is set to NULL
    EmptyClipboard(); // Sets clipboard ownership to someone don't know
    SetClipboardData(CF_TEXT, hMem);  // Successfully data to clipboard!
    CloseClipboard();
}
 
C++:
Expand Collapse Copy
void Clipboard(HANDLE hMem)
{
    OpenClipboard(NULL); // hWnd is set to NULL
    EmptyClipboard(); // Sets clipboard ownership to someone don't know
    SetClipboardData(CF_TEXT, hMem);  // Successfully data to clipboard!
    CloseClipboard();
}
И? как записать? Где ты string создал? Везде этот код видел а как с ним работать хз.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
auto copytoclipboard(char* str) -> void
{
    if (OpenClipboard(0))
    {
        EmptyClipboard();
        char* clip_data = (char*)(GlobalAlloc(GMEM_FIXED, MAX_PATH));
        lstrcpy(clip_data, str);
        SetClipboardData(CF_TEXT, (HANDLE)(clip_data));
        LCID* lcid = (DWORD*)(GlobalAlloc(GMEM_FIXED, sizeof(DWORD)));
        *lcid = MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_NEUTRAL), SORT_DEFAULT);
        SetClipboardData(CF_LOCALE, (HANDLE)(lcid));
        CloseClipboard();
    }
}
 
C++:
Expand Collapse Copy
void Clipboard(HANDLE hMem)
{
    OpenClipboard(NULL); // hWnd is set to NULL
    EmptyClipboard(); // Sets clipboard ownership to someone don't know
    SetClipboardData(CF_TEXT, hMem);  // Successfully data to clipboard!
    CloseClipboard();
}
Эта штука текст записывает, а мне нужно string, к примеру есть string который hwid получает, как его записать?
C++:
Expand Collapse Copy
string a()
{
    тут код
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
void Clipboard(string text)
{
    HGLOBAL h = GlobalAlloc(GMEM_MOVEABLE, text.size() * sizeof(CHAR*));
    LPVOID gl = GlobalLock(h);
    memcpy(gl, text.c_str(), text.size() * sizeof(CHAR*));
    GlobalUnlock(gl);
    OpenClipboard(NULL); // hWnd is set to NULL
    EmptyClipboard(); // Sets clipboard ownership to someone don't know
    SetClipboardData(CF_TEXT, h);  // Successfully data to clipboard!
    CloseClipboard();
}
 
Каво?

Ты понял что ты высрал?)
Ладно :roflanEbalo: открой для себя что-то новое
1617893819492.png
 
C++:
Expand Collapse Copy
auto copytoclipboard(char* str) -> void
{
    if (OpenClipboard(0))
    {
        EmptyClipboard();
        char* clip_data = (char*)(GlobalAlloc(GMEM_FIXED, MAX_PATH));
        lstrcpy(clip_data, str);
        SetClipboardData(CF_TEXT, (HANDLE)(clip_data));
        LCID* lcid = (DWORD*)(GlobalAlloc(GMEM_FIXED, sizeof(DWORD)));
        *lcid = MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_NEUTRAL), SORT_DEFAULT);
        SetClipboardData(CF_LOCALE, (HANDLE)(lcid));
        CloseClipboard();
    }
}
Тогда стоит уточнить, что для использования lstrcpy с таким набором параметров, необходимо изменить кодировку компилятора через настройки проекта на многобайтовую. В противном случае, будет возникать ошибка "аргумент типа несовместим с параметром типа"
Свойства проекта -> Свойства конфигурации -> Дополнительно -> Набор символов. Устанавливаем значение Использовать многобайтовую кодировку
 
Назад
Сверху Снизу