Skip to content

KeyMagic 1.0.1 — installer and autostart fixes

Choose a tag to compare

@kterfan kterfan released this 22 Jul 16:10

🐛 Bug fixes — please upgrade from 1.0.0

Two bugs in 1.0.0, both caused by the app requiring administrator rights.

Setup failed at the end

Installing 1.0.0 ended with:

Unable to execute file: C:\Program Files\KeyMagic\KeyMagic.exe
CreateProcess failed; code 740
The requested operation requires elevation

Inno Setup's launch step used CreateProcess, which cannot satisfy a requireAdministrator manifest. It now goes through ShellExecute, which can.

"Start with Windows" silently did nothing

This one was worse because it looked like it worked. The setting wrote a HKCU\...\Run entry — but Windows silently skips Run-key entries that need an elevation prompt at logon. No error, no prompt, no app. The checkbox was on, the registry value was there, and KeyMagic simply never started with Windows.

Replaced with a Task Scheduler entry at RunLevel: HIGHEST, which is the supported way to start an elevated program at logon. Old Run-key values are cleaned up automatically on upgrade and on uninstall.

Verified

Silent install exits 0 · launching the installed build creates the task at Highest pointing at Program Files · legacy Run value removed · all three hotkeys register.


🐛 رفع باگ — لطفاً از ۱.۰.۰ ارتقا دهید

دو باگ در نسخهٔ ۱.۰.۰، هر دو ناشی از نیاز برنامه به دسترسی ادمین.

نصب در انتها شکست می‌خورد

نصب نسخهٔ ۱.۰.۰ با این خطا تمام می‌شد:

Unable to execute file: C:\Program Files\KeyMagic\KeyMagic.exe
CreateProcess failed; code 740
The requested operation requires elevation

مرحلهٔ اجرای Inno Setup از CreateProcess استفاده می‌کرد که نمی‌تواند درخواست دسترسی ادمین را برآورده کند. حالا از ShellExecute استفاده می‌شود.

«اجرا با ویندوز» اصلاً کار نمی‌کرد

این یکی بدتر بود، چون ظاهرش درست به نظر می‌رسید. این تنظیم یک ورودی در HKCU\...\Run می‌نوشت — اما ویندوز ورودی‌هایی را که هنگام ورود نیاز به ارتقای دسترسی دارند بی‌صدا نادیده می‌گیرد. نه خطایی، نه پیامی، نه اجرایی. تیک روشن بود، مقدار رجیستری هم بود، و KeyMagic هرگز با ویندوز اجرا نمی‌شد.

جایگزین شد با یک تسک در Task Scheduler با سطح اجرای HIGHEST که روش پشتیبانی‌شدهٔ ویندوز برای اجرای برنامه‌های نیازمند ادمین هنگام ورود است. مقادیر قدیمی رجیستری هنگام ارتقا و حذف نصب، خودکار پاک می‌شوند.

تأیید شد

نصب سایلنت با کد ۰ · اجرای نسخهٔ نصب‌شده تسک را با سطح Highest می‌سازد · مقدار قدیمی رجیستری پاک شد · هر سه میان‌بر ثبت شدند.