首页 > 解决方案 > 检查剪贴板是否锁定或捕获异常

问题描述

我已经多次尝试解决这个问题,并且多次谷歌搜索以找到适合的解决方案,但似乎没有什么是正确的。

User32 方法将让您锁定或解锁剪贴板,但我只想检查它是否已解锁。我不希望我的应用程序干扰使用剪贴板的其他应用程序。通常似乎是办公室阻止了这个,所以我目前正在检查这些应用程序。

我需要这样做的唯一原因是,尽管使用了 try/catch,但我的应用程序仍然崩溃,并且不会在此处或我的 main 方法中抛出任何异常(请参阅下面的摘录)。

所以我需要一个关于如何检查剪贴板是否被锁定的建议,或者如何在剪贴板被锁定时实际捕获异常。

第二个线程:

private static string GetCurrentText()
        {
            try
            {
                if (!Process.GetProcessesByName("winword.exe").Any() && !Process.GetProcessesByName("excel.exe").Any() && !Process.GetProcessesByName("powerpnt.exe").Any() && !Process.GetProcessesByName("msaccess.exe").Any() && Clipboard.ContainsText())return Clipboard.GetText(); 
                else return "";
            }
            catch { return ""; }
        }

主线:

 try
                {
                    Application.ThreadException += Application_ThreadException;
                    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
                    Application.Run(new frmMain());
                }
                catch (Exception e)
                {
                    clsDeBugNotification.displayError(e);
                }

标签: c#winformsexceptionclipboard

解决方案


推荐阅读