अद्यतनविंडोज़ फॉर्म एप्लिकेशन में विंडो 10 टैबलेट मोड में प्रवेश करते समय मुझे कैसे पता चलेगा?
नहीं सबसे सुरुचिपूर्ण समाधान, एक विधि काम करने के लिए लगता है कि प्रासंगिक रजिस्ट्री मान को देखने के लिए है है। ऐसा करने के लिए WMI का उपयोग करके एक उदाहरण यहां दिया गया है। अगर किसी से बेहतर समाधान हो तो मुझे किसी से सुनकर खुशी होगी।
using System;
using System.Management;
using System.Security.Principal;
using System.Windows.Forms;
using Microsoft.Win32;
public partial class MainForm : Form
{
public MainForm()
{
this.InitializeComponent();
this.UpdateModeFromRegistry();
var currentUser = WindowsIdentity.GetCurrent();
if (currentUser != null && currentUser.User != null)
{
var wqlEventQuery = new EventQuery(string.Format(@"SELECT * FROM RegistryValueChangeEvent WHERE Hive='HKEY_USERS' AND KeyPath='{0}\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ImmersiveShell' AND ValueName='TabletMode'", currentUser.User.Value));
var managementEventWatcher = new ManagementEventWatcher(wqlEventQuery);
managementEventWatcher.EventArrived += this.ManagementEventWatcher_EventArrived;
managementEventWatcher.Start();
}
}
private void ManagementEventWatcher_EventArrived(object sender, EventArrivedEventArgs e)
{
this.UpdateModeFromRegistry();
}
private void UpdateModeFromRegistry()
{
var tabletMode = (int)Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ImmersiveShell", "TabletMode", 0);
if (tabletMode == 1)
{
Console.Write(@"Tablet mode is enabled");
}
else
{
Console.Write(@"Tablet mode is disabled");
}
}
}
मूल प्रश्न
मैं मेकअप मेरे Windows में कुछ अनुकूलन एक उपयोगकर्ता "टेबलेट मोड" में है या नहीं के आधार पर आवेदन पत्र में दिलचस्पी रखता हूँ (या नहीं) नए विंडोज 10 सातत्य सुविधा का उपयोग कर ।
कैसे https://msdn.microsoft.com/en-us/library/windows/hardware/dn917883(v=vs.85).aspx पर एक UWP परियोजना में यह करने के लिए पर कुछ मार्गदर्शन नहीं है (यानी अगर यह UserInteractionMode.Mouse या UserInteractionMode.Touch है देखने के लिए वर्तमान दृश्य के UserInteractionMode जाँच), हालांकि मुझे यकीन है कि नहीं कर रहा हूँ अगर या मैं कैसे कर सकते हैं विंडोज फॉर्म में ऐसा ही करें।
क्या कोई तरीका है कि मैं अपने विंडोज़ फॉर्म एप्लिकेशन से आवश्यक यूडब्ल्यूपी एपीआई कॉल कर सकता हूं, या क्या कुछ विंडोज़ फॉर्म समकक्ष मैं उपयोग कर सकता हूं?
आपके पास wm_settingchange संदेश में अधिसूचना है। –
आपको अपने "अपडेट" को उत्तर में ले जाना चाहिए। –
उस पर और अधिक https://social.msdn.microsoft.com/Forums/en-US/0610868f-8c30-4749-beac-510063b73913/about-windows-10-tablet-mode-api?forum=windowsuidevelopment –