簡體   English   中英

在Windows 10平板電腦模式下關閉Win Form應用程序后返回開始菜單

[英]Return to start menu after closing win form application in Windows 10 tablet mode

我有一個在平板電腦模式下運行的Windows平板電腦上運行的Winform應用程序(C#)。 但是,當我關閉應用程序時,屏幕轉到桌面,在平板電腦模式下,桌面只是空白的任務欄。 直到您單擊屏幕時,它才會拉起開始菜單。

由於某種原因,這似乎與在平板電腦模式下運行的任何winform應用程序一致,但是無論我想找到一種方法在關閉應用程序后簡單地調出開始菜單。

我嘗試在應用程序關閉后通過調用模擬鼠標單擊(貸記到https://www.gamedev.net/topic/321029-how-to-simulate-a-mouse-click-in-c/ ):

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

private const int MOUSEEVENTF_LEFTDOWN = 0x02;    

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
    mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}

但這不起作用。 我試過玩任務欄設置,看它是否可以通過Windows修復而沒有運氣。

有誰知道在通過代碼或設置關閉Winform應用程序后如何簡單地調出開始菜單?

我在這篇文章的幫助下解決了該問題: SendKeys.Send和Windows Key

看起來就像發送鼠標按下,而不是發送鼠標單擊,然后發送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);
    }

當然,此代碼需要進行一些其他檢查,以確保我們實際上處於平板電腦模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM