我试图从我的WPF应用程序清理计算机剪贴板。代码如下:-
private void Button_Click_1(object sender, RoutedEventArgs e)
{
try
{
Thread thread = new Thread(
() =>
{
Clipboard.Clear();
});
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
thread.Join();
}
catch (Exception er)
{
MessageBox.Show(er.Message);
}
}
但是clear函数不工作,这不会导致异常或任何错误。我猜这是因为Clear方法上的**[SecurityCritical] Attribute**。请帮助我解决这个问题。
1条答案
按热度按时间szqfcxe21#
这需要在具有正确安全上下文的线程上完成,可能是启动应用程序的用户的安全上下文。
当你使用
new Thread
这个线程不会。要做到这一点,你可以使用
RunImpersonated
如下: