सवाल मैं कैसे निर्धारित कर सकता हूं कि विंडोज़ में हॉटकी की कौन सी प्रक्रिया है?


एक हॉटकी को देखते हुए, मैं कैसे पा सकता हूं कि कौन सा प्रोग्राम इसका मालिक है?


84
2017-07-23 09:49


मूल


खिड़कियों का कौन सा संस्करण? - Ivo Flipse♦


जवाब:


सावधान: यदि आप विन 8 या बाद में उपयोग करते हैं, तो इस उपयोगिता का उपयोग न करें क्योंकि यह कुछ परेशानी पैदा करेगा - टिप्पणियां देखें।

यदि आप Windows 8 से पहले Windows चला रहे हैं, तो Windows Hotkey Explorer शायद आप क्या चाहते हैं। स्टैक ओवरफ्लो प्रश्न में यह भी उल्लेख किया गया है: पता लगाएं कि किस प्रक्रिया ने ग्लोबल हॉटकी पंजीकृत की है? (विंडोज एपीआई)


45
2017-09-21 13:14



HotKey एक्सप्लोरर विंडोज 8 में बहुत बुरी तरह खराब हो जाता है - स्टार्टअप पर यह मूल रूप से हर हॉटकी को "दबाता है", जिससे सभी प्रकार की अजीब चीजें होती हैं, जिसके बाद यह ताला लगा जाता है और उसे मारना पड़ता है। - Nathan Ridley
@NathanRidley उह। काश मैं पहले आपकी टिप्पणी पढ़ता हूं। यह Win8 और Autohotkey के साथ एक भयानक संयोजन था। इस तरह के कीबोर्ड bashing भी कुछ गंभीर नुकसान हो सकता था। - VitalyB
विंडोज 10 पर हॉटकी एक्सप्लोरर का उपयोग न करें। यह वही बात @NathanRidley का उल्लेख किया है। बस मुश्किल रास्ता पता चला। - Artem Russakovskii
विंडोज 7 पर भी बहुत खराब है। यह मेरे मुख्य मॉनीटर के रिज़ॉल्यूशन को 640x480 (बहु मॉनिटर सेट अप) पर स्विच करता है। - Costa
मेरी इच्छा है कि हॉटकी एक्सपोरेर जैसे एक हालिया टूल थे जो विंडोज 8 और 10 के लिए काम करता है - Flion


यह Win10 (और संभवतः विंडोज़ के सभी अन्य अस्पष्ट-हाल के संस्करणों) में भी मेरे लिए काम करता है ... यहां से भी कॉपी किया गया है https://stackoverflow.com/a/43645062/995048 चूंकि यह पृष्ठ खोज परिणामों में पहले आया है:

एक संभावित तरीका का उपयोग करना है विजुअल स्टूडियो टूल जासूस ++

इसे आज़माएं:

  1. उपकरण चलाएं (मेरे लिए, यह है C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\spyxx_amd64.exe)
  2. मेनू बार में, चुनें जासूस -> लॉग संदेश ... (या हिट Ctrl + एम)
  3. चेक सिस्टम में सभी विंडोज़ में अतिरिक्त विंडोज़ ढांचा
  4. पर स्विच करें संदेश टैब
  5. दबाएं सभी साफ करें बटन
  6. चुनते हैं WM_HOTKEY सूची बॉक्स में, या जांचें कीबोर्ड में संदेश समूह (यदि आप अधिक संभावित शोर के साथ ठीक हैं)
  7. दबाएं ठीक बटन
  8. प्रश्न में हॉटकी दबाएं (जीत + आर, उदाहरण के लिए)
  9. को चुनिए WM_HOTKEY में लाइन संदेश (सभी विंडोज़) विंडो, राइट क्लिक करें, और चुनें गुण... संदर्भ मेनू में
  10. में संदेश गुण संवाद, क्लिक करें खिड़की हैंडल लिंक (यह संदेश प्राप्त करने वाली विंडो के लिए हैंडल होगा)
  11. दबाएं सिंक्रनाइज़ करें बटन पर विंडो गुण संवाद। यह विंडो को मुख्य जासूस ++ विंडो ट्रीव्यू में दिखाएगा।
  12. पर विंडो गुण संवाद, का चयन करें प्रक्रिया टैब
  13. दबाएं प्रक्रिया आईडी संपर्क। यह आपको प्रक्रिया दिखाएगा (मेरे में जीत + आर मामला: EXPLORER)

34
2018-04-27 17:38



यह एक अच्छा जवाब है, यह बहुत सारे कदम हैं लेकिन पूरी तरह से विस्तृत जानकारी देता है। ध्यान दें कि आपको किसी भी तरह SPY ++ इंस्टॉल करने की आवश्यकता होगी और आपको 64 बिट पीसी पर 64 बिट संस्करण चलाने की आवश्यकता है या यह काम नहीं करेगा। मुझे लगता है कि SPY ++ को स्थापित करने का 'सबसे आसान' तरीका विजुअल स्टूडियो 2017 स्थापित करना है, सी ++ पेलोड का चयन करना सुनिश्चित करें। गैर डेवलपर्स के लिए यह थोड़ा अधिक काम हो सकता है। - Roy T.
यह पूर्ण है। विस्तृत, लेकिन सही! - angularsen
बहुत बढ़िया जवाब! बस एक नोट है कि जासूस ++ का 64-बिट संस्करण केवल 64-बिट अनुप्रयोगों के लिए संदेश पकड़ता है, तो अगर आप नहीं देखते हैं WM_HOTKEY में संदेश संदेश लॉग हॉटकी दबाए जाने के बाद, आपको जासूस ++ के 32-बिट संस्करण को चलाने की आवश्यकता हो सकती है। - Dawid Ferenczy
लिंक को अद्यतन किया जाना चाहिए नई दस्तावेज साइट। विजुअल स्टूडियो 2017 के लिए, केवल आवश्यक पेलोड "दृश्य सी ++ कोर डेस्कटॉप विशेषताएं"अनुप्रयोग विशिष्ट हॉटकी लॉग नहीं है? उदाहरण के लिए, एमएस वर्ड में Ctrl + B पाठ को बोल्ड कर देगा। - Franklin Yu
इस के लिए बहुत बहुत धन्यवाद। मुझे पता चला कि मेरे द्वारा Ctrl Shift F चुरा रहा था। (यह रेजर कॉर्टेक्स था)। एक और नोट यह है कि जब आप संपत्तियों को देखने का प्रयास करते हैं तो कभी-कभी जासूस ++ क्रैश हो जाएगा। (और फिर आप रिबूट होने तक और अधिक हुक नहीं देख सकते हैं।) मैं चरण 9 से पहले, "लॉगिंग संदेश रोकना" चुनकर इसे सही तरीके से हल करने में सक्षम था। उस बिंदु पर, जब मैंने संपत्तियों की जांच करने का प्रयास किया तो यह अब दुर्घटनाग्रस्त नहीं हुआ। एक बार फिर धन्यवाद! - Khale_Kitha


इस धागे में स्टैक ओवरफ़्लो पर शायद इसका उत्तर दिया गया है:

पता लगाएं कि किस प्रक्रिया ने ग्लोबल हॉटकी पंजीकृत की है? (विंडोज एपीआई)

यहां बताया गया है Paukजवाब है:

आपके प्रश्न ने मेरी रूचि पिक्चर की है, इसलिए मैंने खुदाई की है और   जबकि, दुर्भाग्य से मेरे पास आपके लिए उचित जवाब नहीं है, मैंने सोचा   मैं जो साझा करता हूं वह साझा करता हूं।

मुझे मिला कीबोर्ड हुक बनाने के उदाहरण (डेल्फी में)   1 99 8 में लिखा गया, लेकिन कुछ के साथ डेल्फी 2007 में संकलित है   बदलाव।

यह एक कॉल के साथ एक डीएलएल है SetWindowsHookEx जो एक के माध्यम से गुजरता है   कॉलबैक फ़ंक्शन, जो तब कुंजी स्ट्रोक को रोक सकता है: इस मामले में,   यह मस्ती के लिए उनके साथ झुकाव कर रहा है, बाएं कर्सर को दाएं, आदि में बदल रहा है।   एक साधारण ऐप फिर डीएलएल को कॉल करता है और इसके परिणामों के आधार पर रिपोर्ट करता है   एक टीटीमर घटना। यदि आप रुचि रखते हैं तो मैं डेल्फी 2007 आधारित पोस्ट कर सकता हूं   कोड।

यह अच्छी तरह से प्रलेखित और टिप्पणी की गई है और आप संभावित रूप से इसका उपयोग कर सकते हैं   काम करने का आधार जहां एक महत्वपूर्ण प्रेस चल रही है। अगर आप मिल सकते हैं   कुंजी स्ट्रोक भेजे गए एप्लिकेशन के हैंडल, आप कर सकते हैं   इसे वापस ट्रैक करें। उस संभाल के साथ आप प्राप्त करने में सक्षम होंगे   जानकारी जो आपको काफी आसानी से चाहिए।

अन्य ऐप्स ने अपने माध्यम से जाकर हॉटकी को निर्धारित करने का प्रयास किया है   शॉर्टकट्स क्योंकि उनमें शॉर्टकट कुंजी हो सकती है, जो कि सिर्फ एक और है   हॉटकी के लिए शब्द। हालांकि अधिकांश एप्लिकेशन इसे सेट नहीं करते हैं   संपत्ति तो यह ज्यादा वापस नहीं हो सकता है। यदि आप इसमें रूचि रखते हैं   मार्ग, डेल्फी तक पहुंच है IShellLink COM इंटरफ़ेस जो आप कर सकते थे   शॉर्टकट लोड करने और इसकी हॉटकी प्राप्त करने के लिए उपयोग करें:

uses ShlObj, ComObj, ShellAPI, ActiveX, CommCtrl;

procedure GetShellLinkHotKey;
var
  LinkFile : WideString;
  SL: IShellLink;
  PF: IPersistFile;

  HotKey : Word;
  HotKeyMod: Byte;
  HotKeyText : string;
begin
  LinkFile := 'C:\Temp\Temp.lnk';

  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, SL));

  // The IShellLink implementer must also support the IPersistFile
  // interface. Get an interface pointer to it.
  PF := SL as IPersistFile;

  // Load file into IPersistFile object
  OleCheck(PF.Load(PWideChar(LinkFile), STGM_READ));

  // Resolve the link by calling the Resolve interface function.
  OleCheck(SL.Resolve(0, SLR_ANY_MATCH or SLR_NO_UI));

  // Get hotkey info
  OleCheck(SL.GetHotKey(HotKey));

  // Extract the HotKey and Modifier properties.
  HotKeyText := '';
  HotKeyMod := Hi(HotKey);

  if (HotKeyMod and HOTKEYF_ALT) = HOTKEYF_ALT then
    HotKeyText := 'ALT+';
  if (HotKeyMod and HOTKEYF_CONTROL) = HOTKEYF_CONTROL then
    HotKeyText := HotKeyText + 'CTRL+';
  if (HotKeyMod and HOTKEYF_SHIFT) = HOTKEYF_SHIFT then
    HotKeyText := HotKeyText + 'SHIFT+';
  if (HotKeyMod and HOTKEYF_EXT) = HOTKEYF_EXT then
    HotKeyText := HotKeyText + 'Extended+';

  HotKeyText := HotKeyText + Char(Lo(HotKey));

  if (HotKeyText = '') or (HotKeyText = #0) then
    HotKeyText := 'None';

  ShowMessage('Shortcut Key - ' + HotKeyText);
end;

यदि आपके पास पहुंच है सफारी किताबें ऑनलाइन, वहां एक है अच्छा   शॉर्टकट / खोल लिंक के साथ काम करने के बारे में अनुभाग बोर्लैंड में   स्टीव Teixeira और जेवियर Pacheco द्वारा डेल्फी 6 डेवलपर गाइड। मेरे   उपरोक्त उदाहरण वहां से एक कुचला हुआ संस्करण है और इस साइट

उम्मीद है की वो मदद करदे!


5
2017-07-23 09:54