[英]Disable virtual Keyboard in Windows 10 Tablet Mode for one Application
[英]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.