2009-09-17 5 views
7

का उपयोग कर विंडोज बटन प्रोग्रामेटिक रूप से कैसे दबाएं मूल रूप से मैं विंडोज़ बटन पर क्लिक करने वाले उपयोगकर्ता को कोड में अनुकरण करना चाहता हूं। मुझे पता है कि SendKeys है जो मुझे विंडोज़ को कुंजी प्रेस भेजने की इजाजत देता है अगर मुझे उनके लिए एक संभाल मिलती है, लेकिन जो मैं समझ नहीं पा रहा हूं वह है कि मुझे विंडोज बटन कमांड भेजने के लिए एक हैंडल प्राप्त करने की आवश्यकता है। जैसे विंडोज बटन + एल। इसे थोड़ा सा पढ़ने के बाद ऐसा लगता है कि CTRL-ESC को स्टार्ट मेनू भी पॉप अप करना चाहिए, लेकिन यह सुनिश्चित नहीं है कि विंडोज़ को चाबियाँ भेजने के लिए इसे कैसे बताना चाहिए (यदि यह भी संभव है)। कोई भी सहायताकाफी प्रशंसनीय होगी।सी # SendKeys

चीयर्स!

उत्तर

-2

आपको अपने एप्लिकेशन के बाहर कीबोर्ड में हुक करने के लिए वैश्विक कीबोर्ड हुक का उपयोग करने की आवश्यकता है। here को कैसे करें इस पर एक लेख है।

+2

गलत। यह केवल तभी होता है जब आप कीस्ट्रोक सुनना चाहते हैं, न कि अगर आप कीस्ट्रोक भेजना चाहते हैं। –

9

मुझे नहीं लगता कि आप SendKeys का उपयोग करके ऐसा कर सकते हैं, इसके बजाय आपको CTRL + ESC या Windows कुंजी भेजने के लिए शायद keybd_event पर एपीआई फ़ंक्शन को पी/इनवॉज़ करना होगा।

Here वीबी और here में स्टार्ट मेनू खोलने का एक उदाहरण है पिनवोक.net पर इसके सी # हस्ताक्षर के साथ keybd_event है।

5

कुछ चीजें जो उपयोगकर्ता WinKey शॉर्टकट के माध्यम से करते हैं, वे अन्य तरीकों से प्रोग्रामेटिक रूप से किए जा सकते हैं। अपने Winkey + L उदाहरण लेते हैं, आप के बजाय सिर्फ निम्न कथन इस्तेमाल कर सकते हैं:

Process.Start("rundll32.exe", "user32.dll,LockWorkStation"); 

आप वास्तव में क्या आप को पूरा करने के प्रयास कर रहे हैं पर विस्तृत सकता है, शायद वहाँ keybd_event तुलना में एक बेहतर तरीका है (के रूप में डेल ने सुझाव दिया है)।

+0

उपरोक्त आपके कथन में, क्या आप एक विशिष्ट उपयोगकर्ता को लॉक करना संभव है यदि आप तीन पीसी के नेट्रोक में हैं उदाहरण के लिए? –