Я разработал приложение, которое перехватывает все Clipboard текста:Winform приложения случайные сбои
protected override void WndProc(ref Message m)
{
try
{
switch (m.Msg)
{
case WM_DRAWCLIPBOARD:
{
if (Clipboard.GetText() != string.Empty)
//I analyze the data then
if (ClipboardObject.CheckNewData(Clipboard.GetText()))
ClipboardObject.UpdateClipboardData(Clipboard.GetText());
SendMessage(nextClipboardViewer, m.Msg, m.WParam, m.LParam);
break;
}
case WM_CHANGECBCHAIN:
if (m.WParam == nextClipboardViewer)
nextClipboardViewer = m.LParam;
else
SendMessage(nextClipboardViewer, m.Msg, m.WParam, m.LParam);
break;
default:
base.WndProc(ref m);
break;
}
}
catch (Exception ex)
{
}
}
Когда событие взошло, я заполнить данные в объекте, который является общим для всей моего приложения, то таймер, который клещи каждую половину секунды я продолжаю проверять, есть ли новые данные в этом объекте.
На каждом компьютере я установил это приложение на странные вещи начинают происходить с окнами, даже когда мое приложение не работает:
- Windows, продолжает врезаться случайно
- На окнах некоторых PC мини-сублимационной происходит (случается со мной каждый раз)
- когда-то окна будут врезаться, как только я нажимаю мышь правой кнопкой мыши на любую папку или файл
я боролся с эти проблемы в течение длительного времени, и я действительно не могу найти решение моей проблемы, любая помощь приветствуется.
Я не вижу COM здесь? – Thorarin
* даже когда мое приложение не работает * похоже, что вы забыли удалить установленный крючок. – Sinatr
Можете ли вы сказать мне, как снять крючок? Означает ли это, что каждый раз, когда я запускаю приложение, я прикрепляю крючок, так что это означает, что есть несколько запусков или только один крюк может быть присоединен только? Есть ли все равно, чтобы проверить, есть ли уже крюк? – ykh