检测控制键是否已在应用程序外部按下

时间:2013-12-24 06:06:53

标签: c# .net wpf visual-studio-2010

我有以下情况:

enter image description here

在此当我拖放网格上的任何文件夹时,它会打开一个具有导入选项的窗口,如果我按下控制键,当我进入应用程序时拖放然后它超过该窗口并直接导入文件。

到目前为止,我已对功能进行了编码。

但我想在其中添加一个条件,如果在应用程序外按下控制键(拖放时),那么它也应超过该wimport窗口。

对于我试过的但它既没有检测到keydown事件也没有满足if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))条件,如果在拖放文件夹的同时在应用程序外按下了控制键。

我保持如下条件:

if (!bFound)
{
    if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
    {
        return;
    }
    // bool isImportEnabled = true;
    string caption = checkDropContent(files);//, out isImportEnabled);
    WindowImport win = new WindowImport(dbc, this, caption);//, isImportEnabled); //Opens Import XAML Window
    win.paths = files.ToList<string>();
    win.ShowDialog();
}

保留调试器,但不起作用。

1 个答案:

答案 0 :(得分:1)

你需要添加一个全局键盘钩子,有一个good article about it on the codeproject site