हेलो प्यारे बाज!
इस लेख में मैं यह दिखाना चाहता हूं कि कैसे मैंने हॉटकीज़ का उपयोग करके कुछ कार्यों को गति देने और सरल बनाने का कार्यक्रम बनाया।
प्रविष्टि
लगभग डेढ़ महीने पहले, उपयोगकर्ता
vvzvlad ने मुझे हॉटकी दबाकर विभिन्न पाठ का अनुवाद करने के लिए एक कार्यक्रम के विचार के लिए प्रेरित किया। मैंने इस कार्यक्रम का उपयोग बहुत लंबे समय के लिए किया था, लेकिन कुछ दिन पहले मुझे इसे सुधारने का विचार आया।
मैंने अलग-अलग क्रियाओं के लिए विभिन्न हॉटकीज़ असाइन करने की क्षमता जोड़ने का फैसला किया। इसके लिए, मैंने एक प्लग-इन सिस्टम का उपयोग किया।
परिणाम HotKeyHelper प्रोग्राम है, जिसे आप
यहां डाउनलोड कर सकते
हैं ।

परियोजना फ़ाइल
यहाँ है ।
कटौती के तहत आप कार्यक्रम के स्रोत कोड और इसके लिए स्पष्टीकरण देखेंगे।
कार्यक्रम
जैसा कि मैंने ऊपर लिखा था, मैंने प्लग-इन सिस्टम का उपयोग करने का निर्णय लिया।
ऐसा करने के लिए, हमें एक प्लगइन इंटरफ़ेस लिखना होगा:
public delegate void PluginHandler(string text);
और प्लगइन्स लोड करने के लिए एक विधि लिखें:
private void LoadPlugins() {
हमें WinApi विधियों को भी कॉल करना होगा, इसके लिए हम उन्हें आयात करते हैं:
[DllImport("User32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); [DllImport("User32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool UnregisterHotKey(IntPtr hWnd, int id); [DllImport("user32.dll", SetLastError = true)] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
और हम कुछ प्लगइन्स की कार्यक्षमता को निष्पादित करने के लिए आवश्यक 2 तरीके लिखेंगे
हम कस्टम हॉटकी के भंडारण के लिए एक वर्ग भी लिखते हैं:
public class HotKey {
अब प्लगइन्स लोड करने के बाद हम कस्टम हॉटकी डाउनलोड कर सकते हैं और उनकी सदस्यता ले सकते हैं:
HotKeys = HotKey.LoadHotKeys("HotKeys.txt");
हॉटकी के लिए साइन अप करने के बाद, WM_HOTKEY संदेश हमारी विंडो पर भेजा जाएगा। यह पता लगाने के लिए कि उपयोगकर्ता ने कब आवश्यक संयोजन क्लिक किया, हमें विधि को फिर से लिखना होगा:
protected override void WndProc(ref Message m) {
अब हमें हॉटकीज़ बनाने के लिए अधिक सुविधाजनक इंटरफ़ेस जोड़ना होगा। इसमें, मुझे लगता है, कुछ भी दिलचस्प नहीं है, हालांकि मैं दिखाऊंगा कि मैंने कैसे दबाए गए संयोजन को रिकॉर्ड करने के लिए एक प्रणाली बनाई।
ऐसा करने के लिए, हमें KeyDown और KeyUp फॉर्म की घटनाओं की सदस्यता लेनी होगी:
private void button1_Click(object sender, EventArgs e) { if (button1.Enabled) { button1.Enabled = false; isRecord = true; } }
खैर, यह बात है। कार्यक्रम तैयार है। यह केवल कुछ प्लग-इन लिखने के लिए उपयोग करना शुरू करने के लिए बना हुआ है।
प्लगइन
ताकि हम प्रोग्राम में प्लगइन का उपयोग कर सकें, हमें IPlugin से मुख्य वर्ग विरासत में प्राप्त करना चाहिए।
ऐसा करने के लिए, हमें अपने कार्यक्रम के लिए एक लिंक जोड़ने की आवश्यकता है। अब हम एक सरल प्लगइन का कार्यान्वयन लिख सकते हैं। उदाहरण के लिए, मैंने एक प्लगइन लिखा है जो चयनित पाठ को
pastebin.com पर पोस्ट करेगा:
public class PastebinSender : IPlugin { public string Name { get { return "PastebinSender"; } } public bool NeedSelectedText { get { return true; } } public event PluginHandler ShowBaloonHandler; public event PluginHandler ShowFormHandler; public event PluginHandler PasteTextHandler;
Http अनुरोधों के लिए इन प्लग इन में मैंने
xNet का उपयोग किया है
मैंने चयनित पाठ के अनुवाद के लिए एक प्लगइन भी लिखा है:
public class GoogleTranslator : IPlugin { public string Name { get { return "GoogleTranslator"; } } public bool NeedSelectedText { get { return true; } } public event PluginHandler ShowBaloonHandler; public event PluginHandler ShowFormHandler; public event PluginHandler PasteTextHandler;
प्लगइन लिखने और संकलित करने के बाद, हमें इसे प्रोग्राम के साथ 1 फ़ोल्डर में रखने की आवश्यकता है, और अगली बार जब आप शुरू करेंगे, तो आप इस प्लगइन के निष्पादन को एक विशिष्ट हॉटकी से "बाइंड" कर सकते हैं।