راهنما · کجا کار می‌کند

آیا Lang Switcher در پنجره‌های برنامه‌هایی که به‌عنوان مدیر اجرا می‌شوند کار می‌کند؟

بله. Lang Switcher در C:\Program Files نصب می‌شود و برنامه‌ی نصب روی رایانه‌ی شما یک گواهی می‌سازد که فقط برای امضای کد است: Lang Switcher را با آن امضا می‌کند و کلید آن را همان لحظه از بین می‌برد، و هنگام حذف نصب، گواهی را هم برمی‌دارد. به همین دلیل Windows اجازه می‌دهد Lang Switcher در پنجره‌های برنامه‌هایی که به‌عنوان مدیر اجرا می‌شوند کار کند. روی صفحه‌های درخواست UAC، Ctrl+Alt+Del و ورود به سیستم نمی‌توان کلیدها را گرفت: این محدودیت Windows است.

چرا کار می‌کند

دسترسی مدیر — یک بار، هنگام نصب: Lang Switcher در C:\Program Files\Lang_Switcher نصب می‌شود و برنامه‌ی نصب روی رایانه یک گواهی می‌سازد تا Lang Switcher در پنجره‌های برنامه‌هایی که به‌عنوان مدیر اجرا می‌شوند هم کار کند (مانیفست uiAccess). خود Lang Switcher بدون دسترسی مدیر اجرا می‌شود.

uiAccess سازوکار خود Windows است: صفحه‌کلید روی صفحه، ذره‌بین و راوی هم از آن استفاده می‌کنند. برنامه اجازه می‌گیرد در پنجره‌های سطح بالاتر عمل کند، ولی دسترسی مدیر نمی‌گیرد. Windows فقط وقتی این اجازه را می‌دهد که فایل برنامه با امضایی امضا شده باشد که این رایانه به آن اعتماد دارد و در C:\Program Files باشد.

به همین دلیل اجرا همراه Windows هم بدون درخواست UAC است: تیک «اجرا هنگام ورود به سیستم» چیزی نمی‌پرسد.

کجا کار نمی‌کند

روی صفحه‌های درخواست UAC، Ctrl+Alt+Del و ورود به سیستم نمی‌توان کلیدها را گرفت: این محدودیت Windows است. هیچ برنامه‌ای جز خود سیستم به آنجا راه ندارد.

همچنین در بعضی بازی‌ها: این بازی‌ها کیبورد را بدون Windows می‌خوانند و جایگزینی متن را نمی‌پذیرند. چنین بازی‌هایی را به استثناها بیفزایید.

نسخه‌ی جایگزین

برنامه‌ی نصب اگر با پارامتر /NOLOCALCERT اجرا شود، نسخه‌ی جایگزین را نصب می‌کند: همان کد، بدون uiAccess. نسخه‌ی جایگزین همه‌جا کار می‌کند، جز پنجره‌های برنامه‌هایی که به‌عنوان مدیر اجرا می‌شوند: آنجا کلید میان‌بر اثری ندارد.

اگر نصب نسخه‌ی کامل روی این رایانه ممکن نشود، برنامه‌ی نصب خودش نسخه‌ی جایگزین را نصب می‌کند. آن وقت در پایان نصب با پنجره‌ای خبر می‌دهد: «Lang Switcher نصب شد، اما در پنجره‌های برنامه‌هایی که به‌عنوان مدیر اجرا می‌شوند کار نخواهد کرد…» اگر چنین پنجره‌ای دیدید، برای سازنده بنویسید: منوی نماد سینی ← «نوشتن برای سازنده…».

پرسش‌ها و مشکلاتدر GitHub Issues ↖ یا با ایمیل send.me@panda-pishet-kod.dev