Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 02.09.2010
Сообщений: 20

Clipboard.GetText() – не дает результат

14.01.2015, 18:54. Показов 3328. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться, Сlipboard.GetText(), не дает искомый результат
Вот кусок кода:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
         IntPtr hWnd = FindWindow("Chrome_WidgetWin_1", null);
         SetForegroundWindow(hWnd);
         //-----------------------------------------------------------
         //позиция курсора над кнопкой голосового распознавания google chrome
         Cursor.Position = new Point(Settings.Default._Chrome_RecognationText_X, Settings.Default._Chrome_RecognationText_Y);
         //небольшая задержка
         Thread.Sleep(3000);
         //нажать и опустить левую кнопку мыши по координатам
         mouse_event((int)(MouseEventFlags.LEFTDOWN), Settings.Default._Chrome_RecognationText_X, Settings.Default._Chrome_RecognationText_Y, 0, 0);
         mouse_event((int)(MouseEventFlags.LEFTUP), Settings.Default._Chrome_RecognationText_X, Settings.Default._Chrome_RecognationText_Y, 0, 0);
         //небольшая задержка
         Thread.Sleep(500);
         SendKeys.Send("^a");
         Thread.Sleep(500);
         SendKeys.Send("{ESC}");
         Thread.Sleep(500);
         SendKeys.Send("^c");
         Thread.Sleep(500);
         MessageBox.Show(Clipboard.GetText());

MessageBox.Show(Clipboard.GetText()) – ничего не отображает, либо отображает предыдущие скопированные данные, не имеющие отношение к программе.

Но если попробовать вставить текст из буфера обмена в какое либо приложение вручную, то текст вставляется правильно, скопированный из поля.
В чем может быть проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2015, 18:54
Ответы с готовыми решениями:

Какое отличие между jEdtorPane.getDocument().getText(.) и jEditorPane.getText()?
Знаю только, что отличие точно есть.

Класс Clipboard - ошибка «Requested Clipboard operation did not succeed»
Пытаюсь скопировать текст программно таким образом: Clipboard.SetText("something") Вместо выполнения поручения, он напрочь отказывается...

(-1)**(1/2) не дает результат 1j
Как это решить, ведь результат не совсем тот, а именно (-1)**(1/2)=(6.123233995736766e-17+1j) вместо 1j. Я понимаю что есть конструктор...

8
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
14.01.2015, 19:45
GetData или GetDataObject пробуй
перед записью в буфер пробуй очистить буфер
0
2 / 2 / 0
Регистрация: 02.09.2010
Сообщений: 20
14.01.2015, 20:47  [ТС]
Цитата Сообщение от Nikeys174 Посмотреть сообщение
GetData или GetDataObject пробуй
перед записью в буфер пробуй очистить буфер
Спасибо за ответ

Данный код наглухо вырубает форму, и ничего не копирует

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
         //очищаю буфер
         Clipboard.Clear();
         //небольшая задержка
         Thread.Sleep(500);
         //нажание программно ctr + "а"
         SendKeys.Send("^a");
         Thread.Sleep(500);
         SendKeys.Send("{ESC}");
         Thread.Sleep(500);
         SendKeys.Send("^c");
         Thread.Sleep(500);
 
 
         IDataObject ClipData = Clipboard.GetDataObject();
            string s = Clipboard.GetData(DataFormats.Text).ToString();
              Label1.Text = s;
Добавлено через 7 минут
Это тоже не пошло
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
         //очищаю буфер
         Clipboard.Clear();
         //небольшая задержка
         Thread.Sleep(500);
         //нажание программно ctr + "а"
         SendKeys.Send("^a");
         Thread.Sleep(500);
         SendKeys.Send("{ESC}");
         Thread.Sleep(500);
         SendKeys.Send("^c");
         Thread.Sleep(500);
 
         IDataObject iData = Clipboard.GetDataObject();
         if (iData.GetDataPresent(DataFormats.Text))
         {
           _LabelClip.Text = (String)iData.GetData(DataFormats.Text);
         }
         else
         {
            _LabelClip.Text = "Не пошло!";
         }
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
14.01.2015, 20:50
В Вышем верхнем коде - Вы сначала помещаете что-то в буфер, а потом создаете объект iData, из которого тянете в переменную s. Попробуйте объявить iData раньше
0
2 / 2 / 0
Регистрация: 02.09.2010
Сообщений: 20
14.01.2015, 21:27  [ТС]
Цитата Сообщение от Nikeys174 Посмотреть сообщение
тянете в переменную s. Попробуйте
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
         string s;
         IDataObject iData = Clipboard.GetDataObject();
         //очищаю буфер
         Clipboard.Clear();
         //небольшая задержка
         Thread.Sleep(500);
         //нажание программно ctr + "а"
         SendKeys.Send("^a");
         Thread.Sleep(500);
         SendKeys.Send("{ESC}");
         Thread.Sleep(500);
         SendKeys.Send("^c");
         Thread.Sleep(1000);
 
         s = (String)iData.GetData(DataFormats.Text);
         Thread.Sleep(1000);
         _LabelClip.Text = s;   //тут пусто
         MessageBox.Show(s); // и тут пусто
Не пашет, не могу понять вроде везде все так советуют, в буфере строка есть в блокнот спокойно ее вставляю, а в программе выводит пустые строки
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
14.01.2015, 21:51
тогда кроме как ставить точку основа на 15 строчку и дальше в окне watch ползать и искать где сидит значение чтобы его выдать в immidiate window эксперементировать
0
2 / 2 / 0
Регистрация: 02.09.2010
Сообщений: 20
14.01.2015, 21:56  [ТС]
Цитата Сообщение от Nikeys174 Посмотреть сообщение
тогда кроме как ставить точку основа на 15 строчку и дальше в окне watch ползать и искать где сидит значение чтобы его выдать в immidiate window эксперементировать
немного недопонимаю, может есть пример кода?
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
14.01.2015, 22:18
тут средствами студии я имею ввиду искать где сидит, то что хранится
0
2 / 2 / 0
Регистрация: 02.09.2010
Сообщений: 20
14.01.2015, 22:28  [ТС]
Цитата Сообщение от Nikeys174 Посмотреть сообщение
тут средствами студии я имею ввиду искать где сидит, то что хранится
да я понял, >>Не удается найти дальнейшую информацию по данному объекту
^
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2015, 22:28
Помогаю со студенческими работами здесь

Ветвления. Дает неправильный результат
Не все значения сравнивает правильно, в итоге - неправильный результат Например: Ввожу a=11 b=10 ответ: -140 Почему так?...

ChildWindowFromPoint даёт неверный результат
Есть WinForms приложение. В основном окне вызывается дочернее вот таким кодом:new RecordForm().ShowDialog(this);В этом дочернем окне...

Декомпиляция дает странный результат
Всем добра! Подскажите в чем проблема. на скрине видно что при декмпиляции exe выдается полный пипец, нет имен, и в коде какие...

Ошибка при работе с Clipboard: "Сannot open clipboard. Отказано в доступе."
Хотел написать программу для автоматической замены текста в буфере обмена, но при обращении к буферу получаю ошибку "Сannot open...

Вычисление по формуле даёт неверный результат
#include <math.h> #include <iostream> #include <cstdlib> double ad,bd; float af,bf; using namespace std; int main() ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru