एक साधारण एप्लिकेशन बनाना, इसलिए जब उपयोगकर्ता विंडोज से लॉग आउट करता है, तो यह निश्चित रूप से एप्लिकेशन को बंद कर देता है। हम एक साधारण यूएसबी अलर्ट एप्लिकेशन बना रहे हैं जो उपयोगकर्ता कोWM_QUERYENDSESSION मुझे समस्याएं पैदा कर रहा है
लॉग इन कर रहा है, तो यूएसबी का पता लगाया गया है, तो एसटीओपीएस बंद हो रहा है। यह अब तक कोड है।
public Form1()
{
InitializeComponent();
}
private static int WM_QUERYENDSESSION = 0x11;
private static bool systemShutdown = false;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == WM_QUERYENDSESSION)
{
//MessageBox.Show("queryendsession: this is a logoff, shutdown, or reboot");
systemShutdown = true;
m.Result = (IntPtr)0;
}
// If this is WM_QUERYENDSESSION, the closing event should be
// raised in the base WndProc.
m.Result = (IntPtr)0;
base.WndProc(ref m);
} //WndProc
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (systemShutdown)
{
systemShutdown = false;
bool hasUSB = false;
foreach (DriveInfo Drive in DriveInfo.GetDrives())
{
if (Drive.DriveType == DriveType.Removable)
{
hasUSB = true;
}
}
if (hasUSB)
{
e.Cancel = true;
MessageBox.Show("You still have USB device plugged in, please unplug it and log off again");
}
else
{
e.Cancel = false;
}
}
}
क्या हो रहा है विंडोज फोर्स कार्यक्रम से बाहर निकलें कि करने के लिए स्क्रीन प्रदर्शित किया जा रहा है, मैंने कहीं पढ़ा अगर आप 0 यह इस प्रदर्शित नहीं करता है WM_QUERYENDSESSION पर लौटने, लेकिन यह अभी भी इस प्रदर्शित कर रहा है ... है
कोई विचार?
संपादित करें:
हम कोड है कि किसी के साथ जवाब दिया करते थे, लेकिन हम अभी भी इस स्क्रीन हो रही है।
पहली जगह में एक अच्छा विचार को बंद करने से सिस्टम को रोक रहा है करने के लिए, कुछ भी नहीं किया गया है, लेकिन कोड काम करने के लिए लगता है धन्यवाद? –
लेकिन हम एक प्रोग्राम बना रहे हैं, कि यदि किसी उपयोगकर्ता ने यूएसबी को प्लग किया है, तो वे इसे हटाए जाने तक बंद या बंद नहीं कर सकते हैं। – x06265616e