Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2009, 14:59   #1
[Qj]
Новичок
Джуниор
 
Регистрация: 17.08.2009
Сообщений: 2
По умолчанию Clipboard

Данный метод посылает нажатие клавиш и строку текста из буфера обмена в окно Проблема в том что этот поток нужно выполнять в созданном потоке, а функции с Clipboard можно выполнять только из главного потока. Я уже около двух дней не могу написать так чтобы при вызове этого метода операция над буфером проходила в главном потоке а все остальное в потоке из которого данный метод вызван.
PHP код:
public static void SendTextToWindows(string text)
{
try
{
string data Conversions.ToString(Clipboard.GetData(DataFormats.Text));
Clipboard.SetDataObject(texttrue);
if (
Operators.ConditionalCompareObjectEqual(Clipboard.GetData(DataFormats.Text), textfalse))
{
PostMessage(mem.WindowHandle0x10013, (int)IntPtr.Zero);
PostMessage(mem.WindowHandle0x10113, (int)IntPtr.Zero);
Thread.Sleep(50);
PostMessage(mem.WindowHandle0x1000xa2, (int)IntPtr.Zero);
PostMessage(mem.WindowHandle0x1000x56, (int)IntPtr.Zero);
Thread.Sleep(200);
PostMessage(mem.WindowHandle0x1010xa2, (int)IntPtr.Zero);
Thread.Sleep(50);
PostMessage(mem.WindowHandle0x1008, (int)IntPtr.Zero);
Thread.Sleep(50);
PostMessage(mem.WindowHandle0x10013, (int)IntPtr.Zero);
PostMessage(mem.WindowHandle0x10113, (int)IntPtr.Zero);
PostMessage(mem.WindowHandle0x1010x56, (int)IntPtr.Zero);
PostMessage(mem.WindowHandle0x1018, (int)IntPtr.Zero);
Clipboard.SetDataObject(datatrue);
}
}
catch (
Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception exception1;
ProjectData.ClearProjectError();
}

[Qj] вне форума Ответить с цитированием
Старый 21.08.2009, 18:50   #2
armivl
Пользователь
 
Регистрация: 26.07.2009
Сообщений: 19
По умолчанию

объяви делегат обратного вызова и используй метод Invoke формы
и функция которую привяжешь к делегату будет вызвана в основном потоке
armivl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать был ли вставлен текст из ClipBoard? Dux Общие вопросы Delphi 11 25.10.2008 18:03
копирование определенного набора данных из dbgrid в clipboard kate158 Общие вопросы Delphi 9 15.10.2008 18:20
RichEdit - работа с Clipboard GAGARIN-NEW Компоненты Delphi 5 16.12.2007 20:30
Вставка данных(Excel) из clipboard в DBGrid mahsus Общие вопросы Delphi 1 07.10.2007 02:02
обработка изображений, clipboard borodaj Общие вопросы Delphi 2 02.05.2007 16:10