Форум программистов, компьютерный форум CyberForum.ru

Получить текст из буфера обмена - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать скобочный парсер программного кода http://www.cyberforum.ru/cpp-beginners/thread1637770.html
Напишите программу, которая читает и оформляет одиночные команды, встречаются в операторах цикла и условия, в ажурные скобки. Проверить полученный текстовый код программы компиляций и выполнением на С++
C++ Нюансы использования динамических массивов в качестве данных-членов в классах Здравствуйте! Не могу создать массив объектов. Помогите ... class hashTable { private: sortedlist* arr ; int arrSize; public: hashTable (int l) { arrSize = l; arr = new sortedlist; http://www.cyberforum.ru/cpp-beginners/thread1637735.html
C++ Найти баг в простой функции проверки правильности скобок
Привет! Проходил онлайн тест, нужно было в очень ограниченное время без IDE (форма фиксирует активность, копипаста из IDE не прокатит) написать ф-цию проверки расстановки скобок. Вот что накидал bool check(const std::string &str) { std::stack<char> brackets; for (int i = 0; i < str.length(); i++) { char ch = str; switch (ch) { case '(': case '{':
Помогите разобраться в работе программы C++
Ребят,спасите пожалуйста, не могу сообразить, есть код #include "stdafx.h" #include "iostream" #include "string" #include "stdio.h" using namespace std; class Field { public:
C++ Функция unique для list http://www.cyberforum.ru/cpp-beginners/thread1637627.html
Взято отсюда. The second version (2), takes as argument a specific comparison function that determine the "uniqueness" of an element. In fact, any behavior can be implemented (and not only an equality comparison), but notice that the function will call binary_pred(*i,*(i-1)) for all pairs of elements (where i is an iterator to an element, starting from the second) and remove i from the list if...
C++ Многопоточные функции Написал программу, которая обрабатывает большой объём информации и столкнулся с проблемой производительности. Начал копать в сторону многопоточности, но есть несколько вопросов, ответ на которые не просто найти. Хочу спросить опытных программистов. Я пишу программу на С++ для шиндовс. 1.Существуют ли какие-то запреты на чтение\запись данных нескольких потоков из одного места? 2.Если... подробнее

Показать сообщение отдельно
Sherhanuss
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 1
13.01.2016, 18:19     Получить текст из буфера обмена
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <exception>
#include <iostream>
#include <ostream>
#include <stdexcept>
#include <string>
#include <windows.h>
using namespace std;
 
class RaiiClipboard
{
public:
  RaiiClipboard()
  {
    if (! OpenClipboard(nullptr))
      throw runtime_error("Can't open clipboard.");
      // ... or define some custom exception class for clipboard errors.
  }
 
  ~RaiiClipboard()
  {
    CloseClipboard();
  }
 
  // Ban copy   
private:
  RaiiClipboard(const RaiiClipboard&);
  RaiiClipboard& operator=(const RaiiClipboard&);
};
 
class RaiiTextGlobalLock
{
public:
  explicit RaiiTextGlobalLock(HANDLE hData)
    : m_hData(hData)
  {
    m_psz = static_cast<const char*>(GlobalLock(m_hData));
    if (! m_psz)
      throw runtime_error("Can't acquire lock on clipboard text.");  
  }
 
  ~RaiiTextGlobalLock()
  {
    GlobalUnlock(m_hData);
  }
 
  const char* Get() const
  { 
    return m_psz;
  }
 
private:
  HANDLE m_hData;
  const char* m_psz;
 
  // Ban copy
  RaiiTextGlobalLock(const RaiiTextGlobalLock&);
  RaiiTextGlobalLock& operator=(const RaiiTextGlobalLock&);
};
 
string GetClipboardText()
{
  RaiiClipboard clipboard;
 
  HANDLE hData = GetClipboardData(CF_TEXT);
  if (hData == nullptr)
    throw runtime_error("Can't get clipboard text.");
 
  RaiiTextGlobalLock textGlobalLock(hData);
  string text( textGlobalLock.Get() );
 
  return text;
}
 
int main()
{
  static const int kExitOk = 0;
  static const int kExitError = 1;
  try
  {
    cout << GetClipboardText() << endl;
    return kExitOk;
  }
  catch(const exception& e)
  {
    cerr << "*** ERROR: " << e.what() << endl;
    return kExitError;
  }
}
вот этот код работает так как надо, но не хочет писать русские символы, setlocale пробовал, не прокатило.
 
Текущее время: 22:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru