3

我们将使用自定义键(没有 Ctrl、Alt 和 ...)创建一个虚拟键盘(屏幕键盘)。问题是当我们将应用程序设置为时Topmost="Ture",无法找到最后一个活动应用程序的窗口以将选定的键发送给它。(键盘应用程序现在处于活动状态。)我们进行了一些搜索,但找不到任何有用的东西。

4

2 回答 2

3

在将 prperty 设置为 true 之前保留最后一个窗口的句柄,查看GetForegroundWindow()GetActiveWindow(),然后在完成键盘应用程序后使用SetActiveWindow()将其设置回来。

using System;
using System.Runtime.InteropServices;

namespace Foreground {
  class GetForegroundWindowTest {

    [DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
    public static extern IntPtr GetForegroundWindow();

    public static void Main(string[] args){
        IntPtr fg = GetForegroundWindow(); //use to keep the last active window
        // set the topmost property to your keyboard        
        //Set fg to be active again when needed using SetActiveWindow()
    }
  }
}
于 2013-03-04T05:27:58.760 回答
0

感谢您的帮助和回答。我找到了 Wosk,它解决了我的问题。您可以查看代码。

于 2013-03-06T05:29:25.223 回答