হটকি দেওয়া, আমি কীভাবে খুঁজে পাব যে কোন প্রোগ্রামটির মালিকানা রয়েছে?
হটকি দেওয়া, আমি কীভাবে খুঁজে পাব যে কোন প্রোগ্রামটির মালিকানা রয়েছে?
উত্তর:
সতর্কতা : আপনি যদি উইন 8 বা তার পরে ব্যবহার করেন তবে এই ইউটিলিটিটি ব্যবহার করবেন না কারণ এটি কিছুটা সমস্যার সৃষ্টি করবে - মন্তব্য দেখুন।
আপনি যদি উইন্ডোজ 8 এর আগে উইন্ডোজ চালাচ্ছেন তবে Windows Hotkey Explorer
সম্ভবত আপনি যা চান তা সম্ভবত এটিই। স্ট্যাকওভারফ্লো প্রশ্নে এটিও উল্লেখ করা হয়েছে: গ্লোবাল হটকি নিবন্ধিত কোন প্রক্রিয়াটি সন্ধান করুন? (উইন্ডোজ এপিআই) ।
এটি উইন 10 এ আমার জন্য কাজ করে (এবং সম্ভবত উইন্ডোজের অন্যান্য সমস্ত এমনকি অস্পষ্ট-সাম্প্রতিক সংস্করণগুলিও) ... এখানে https://stackoverflow.com/a/43645062/995048 থেকে অনুলিপি করা হয়েছে যেহেতু এই পৃষ্ঠায় অনুসন্ধানের ফলাফলগুলি প্রথম দিকে আসে বলে মনে হচ্ছে :
একটি সম্ভাব্য উপায় ভিজ্যুয়াল স্টুডিও সরঞ্জাম স্পাই ++ ব্যবহার করা ।
একবার চেষ্টা করে দেখুন:
- সরঞ্জামটি চালান (আমার কাছে এটি প্রায় রয়েছে
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\spyxx_amd64.exe
, বাspyxx.exe
32-বিট প্রক্রিয়াগুলি পর্যবেক্ষণ করতে ব্যবহার করুন )- মেনু বারে, স্পাই নির্বাচন করুন -> বার্তাগুলি লগ করুন ... (বা হিট Ctrl+ M)
- পরীক্ষা করে দেখুন সিস্টেমের সকল উইন্ডোজ মধ্যে অতিরিক্ত উইন্ডোজ ফ্রেম
- বার্তা ট্যাবে স্যুইচ করুন
- ক্লিক করুন সমস্ত সাফ বোতাম
- নির্বাচন
WM_HOTKEY
তালিকা বাক্সে, অথবা পরীক্ষা কীবোর্ড মধ্যে বার্তা গোষ্ঠীসমূহ (যদি আপনি আরো সম্ভাব্য গোলমাল সঙ্গে ঠিক আছে দর্শিত থাকবে)- ক্লিক করুন ঠিক আছে বোতাম
- (প্রশ্নে হট-টিপুন Win+ + Rউদাহরণস্বরূপ,)
- বার্তা (সমস্ত উইন্ডোজ) উইন্ডোতে
WM_HOTKEY
লাইনটি নির্বাচন করুন , ডান ক্লিক করুন এবং প্রসঙ্গ মেনুতে বৈশিষ্ট্যগুলি নির্বাচন করুন ...- ইন পাঠান প্রোপার্টি ডায়ালগ, ক্লিক করুন উইন্ডো হাতল লিঙ্ক (এই উইন্ডোটি যে বার্তা পেয়েছি জন্য হাতল হবে)
- ক্লিক করুন সিংক্রোনাইজ বোতাম উইন্ডো প্রোপার্টি ডায়ালগ। এটি মূল স্পাই ++ উইন্ডো ট্রিভিউতে উইন্ডোটি প্রদর্শন করবে।
- উপর উইন্ডো প্রোপার্টি ডায়ালগ নির্বাচন প্রক্রিয়া ট্যাব
- প্রক্রিয়া আইডি লিঙ্কটি ক্লিক করুন। এটি আপনাকে প্রক্রিয়াটি প্রদর্শন করবে (আমার Win+ Rক্ষেত্রে
EXPLORER
:)
WM_HOTKEY
বার্তাটি না দেখেন তবে আপনাকে স্পাই ++ এর 32-বিট সংস্করণটি চালানোর প্রয়োজন হতে পারে ।
এটি সম্ভবত এই থ্রেড স্ট্যাক ওভারফ্লোতে জবাব দেওয়া হয়েছে:
গ্লোবাল হটকি নিবন্ধিত কোন প্রক্রিয়াটি সন্ধান করুন? (উইন্ডোজ এপিআই)
এখানে পাউকের উত্তর:
আপনার প্রশ্নটি আমার আগ্রহকে ঘটিয়েছে, তাই আমি কিছুটা খনন করেছি এবং দুর্ভাগ্যক্রমে আমার কাছে আপনার কাছে সঠিক উত্তর নেই, আমি ভেবেছিলাম আমার যা আছে তা ভাগ করে দেই।
আমি 1998 সালে লিখিত কীবোর্ড হুক (ডেল্ফিতে) তৈরি করার এই উদাহরণটি পেয়েছি , তবে বেশ কয়েকটি টুইটের মাধ্যমে ডেলফি 2007-এ সংকলনযোগ্য।
এটি একটি ডিএলএল যার সাথে একটি
SetWindowsHookEx
কলব্যাক ফাংশন দিয়ে যায়, যা মূল স্ট্রোকগুলিকে আটকাতে পারে: এই ক্ষেত্রে, এটি মজাদার জন্য তাদের সাথে ঝাঁকুনি দিচ্ছে, বাম কার্সারটি ডানে বামে পরিবর্তন করা ইত্যাদি etc. এটির ফলাফলটি একটি টিটাইমার ইভেন্টের ভিত্তিতে। আপনি যদি আগ্রহী হন তবে আমি ডেলফি 2007 ভিত্তিক কোডটি পোস্ট করতে পারি।এটি ভাল নথিভুক্ত এবং মন্তব্য করেছে এবং আপনি সম্ভবত কোনও কী প্রেস চলছে সেখানে কাজ করার ভিত্তি হিসাবে এটি ব্যবহার করতে পারেন। কী স্ট্রোক প্রেরণকারী অ্যাপ্লিকেশনটির হ্যান্ডেলটি যদি আপনি পেয়ে থাকেন তবে আপনি সেভাবে এটি ট্র্যাক করতে পারেন। এই হ্যান্ডেলটি দিয়ে আপনি আপনার প্রয়োজনীয় তথ্য খুব সহজেই পেতে সক্ষম হবেন।
অন্যান্য অ্যাপ্লিকেশনগুলি তাদের শর্টকাটগুলি ধরে হটকিগুলি নির্ধারণের চেষ্টা করেছে যেহেতু সেগুলিতে একটি শর্টকাট কী থাকতে পারে যা হটকারির জন্য অন্য একটি শব্দ। তবে বেশিরভাগ অ্যাপ্লিকেশনগুলিতে এই সম্পত্তি সেট করার ঝোঁক থাকে না যাতে এটি বেশি পরিমাণে ফিরে না আসে। আপনি যদি সেই রুটে আগ্রহী হন, ডেলফির
IShellLink
সিওএম ইন্টারফেসে অ্যাক্সেস রয়েছে যা আপনি শর্টকাটটি লোড করতে এবং এর হটকি পেতে ব্যবহার করতে পারেন: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;
আপনি যদি সাফারি বুকস অনলাইনে অ্যাক্সেস পেয়ে থাকেন তবে স্টিভ টিক্সেইরা এবং জাভিয়ের পাচেকোর বোরল্যান্ড ডেলিফি 6 বিকাশকারীদের গাইডে শর্টকাট / শেল লিঙ্কগুলির সাথে কাজ করার বিষয়ে একটি ভাল বিভাগ রয়েছে । আমার উপরের উদাহরণটি সেখান থেকে এবং এই সাইটটির একটি কসাই সংস্করণ ।
আশা করি এইটি কাজ করবে!