অটোহটকি ব্যবহার করে আমি এই সমস্যাটি সমাধান করেছি।
3 টি ভাষা সেট করুন, তাদের মধ্যে পরিবর্তন করতে একটি হটকি এবং আপনি যে ভাষাটি এড়াতে চান সেই ভাষাতে স্যুইচ করার জন্য অন্য হটকি। আমার ইংরাজী, রাশিয়ান এবং জাপানি ছিল এবং আমি জাপানিদের এড়িয়ে যেতে চেয়েছিলাম তাই আমি জেপিতে স্যুইচ করার জন্য Ctrl + Shift + 0 নিয়োগ করলাম assigned
আমার কাছে ইতিমধ্যে একটি অটোহটকি স্ক্রিপ্ট ছিল যা আমাকে ক্যাপস ব্যবহার করে 3 টি ভাষার মধ্যে স্যুইচ করতে দেয়। দেখে মনে হচ্ছে:
CapsLock::Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
আপনি যে ভাষাটি এড়াতে চান সেই ভাষাতে একবার পরিবর্তন হয়ে গেলে ভাষাটি স্বয়ংক্রিয়ভাবে স্যুইচ করা যায়। এটি জাপানিদের জন্য 0x0411। নীচের স্ক্রিপ্টের যদি ক্লজটিতে আপনার পেস্ট করুন, এটি সংরক্ষণ করুন এবং এটি চালান।
ভাষা আইডির তালিকাটি এখানে , প্রথম কলামে আপনার সন্ধান করুন।
স্ক্রিপ্টটি কেবল ক্যাপসলক ব্যবহার করে ভাষার মধ্যে স্যুইচ করার জন্য কাজ করে তবে আপনি এটি Alt + Shift স্যুইচটিতে রূপান্তর করতে পারেন। সম্ভবত "" ক্যাপলক "কে"} আল্ট ডাউন} {শিফট ডাউন} {শিফট আপ} {আল্ট আপ} "দিয়ে প্রতিস্থাপন করে।
CapsLock::
Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
if !LangID := GetKeyboardLanguage(WinActive("A"))
{
MsgBox, % "GetKeyboardLayout function failed " ErrorLevel
return
}
if (LangID = 0x0411)
Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
return
GetKeyboardLanguage(_hWnd=0)
{
if !_hWnd
ThreadId=0
else
if !ThreadId := DllCall("user32.dll\GetWindowThreadProcessId", "Ptr", _hWnd, "UInt", 0, "UInt")
return false
if !KBLayout := DllCall("user32.dll\GetKeyboardLayout", "UInt", ThreadId, "UInt")
return false
return KBLayout & 0xFFFF
}