C# 在Windows 10平板电脑模式下关闭win form应用程序后返回开始菜单

C# 在Windows 10平板电脑模式下关闭win form应用程序后返回开始菜单,c#,windows,winforms,tablet,C#,Windows,Winforms,Tablet,我有一个winform应用程序(C#),我正在以平板电脑模式运行的windows平板电脑上运行。但是,当我关闭应用程序时,屏幕会转到桌面,在平板电脑模式下,桌面只是带有空白屏幕的任务栏。直到你点击屏幕,它才会调出开始菜单 出于某种原因,这似乎与任何在平板电脑模式下运行的winform应用程序一致,但无论如何,我想找到一种方法,在关闭应用程序后只需打开“开始”菜单 我尝试在应用程序通过调用关闭后模拟鼠标单击(归功于): 但这是行不通的。我尝试过使用任务栏设置,看看它是否可以在没有运气的情况下通过W

我有一个winform应用程序(C#),我正在以平板电脑模式运行的windows平板电脑上运行。但是,当我关闭应用程序时,屏幕会转到桌面,在平板电脑模式下,桌面只是带有空白屏幕的任务栏。直到你点击屏幕,它才会调出开始菜单

出于某种原因,这似乎与任何在平板电脑模式下运行的winform应用程序一致,但无论如何,我想找到一种方法,在关闭应用程序后只需打开“开始”菜单

我尝试在应用程序通过调用关闭后模拟鼠标单击(归功于):

但这是行不通的。我尝试过使用任务栏设置,看看它是否可以在没有运气的情况下通过Windows修复


有人知道如何在通过代码或设置关闭winform应用程序后简单地打开“开始”菜单吗?

我在这篇文章的帮助下解决了这个问题:

看起来,与其发送鼠标单击,不如发送LWin键的向下键和向上键来实现以下功能:

    [DllImport("user32.dll")]
    private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

    private const int KEYEVENTF_EXTENDEDKEY = 1;
    private const int KEYEVENTF_KEYUP = 2;


    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
         keybd_event((byte)Keys.LWin, 0, KEYEVENTF_EXTENDEDKEY, 0);
         keybd_event((byte)Keys.LWin, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
    }
当然,这段代码需要一些额外的检查,以确保我们实际上处于平板电脑模式

    [DllImport("user32.dll")]
    private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

    private const int KEYEVENTF_EXTENDEDKEY = 1;
    private const int KEYEVENTF_KEYUP = 2;


    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
         keybd_event((byte)Keys.LWin, 0, KEYEVENTF_EXTENDEDKEY, 0);
         keybd_event((byte)Keys.LWin, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
    }