InWILL / Locale_Remulator

System Region and Language Simulator.
GNU Lesser General Public License v3.0
745 stars 37 forks source link

SEGA-MJ 安装程序在 Win 10 (19045) 下使用 1.5.4 会出现错误弹窗 #55

Open DCxDESIGN opened 2 months ago

DCxDESIGN commented 2 months ago

世嘉的日麻游戏 (SEGA-MJ) Windows 版安装程序 (https://download.sega-mj.com/MJ_Setup.exe) 在中文系统下直接运行会变成乱码,但在我使用 1.5.4 的 Run in Japanese (Admin) 配置项时,会弹出一个错误窗口,提示Error reading PreparingMemo.Lines.Strings: Error creating window class.

而当我选择 Run in Japanese 时,则会无穷尽地反复弹出错误窗口,提示内部エラー: ShellExecuteEx returned hProcess=0.,此时几乎无法进行任何其它操作,系统资源被反复弹出的窗口占满,只能通过强行关机并重启计算机才能解决

作为参考,(已停止更新的) Locale Emulator 在选择 Run in Japanese (Admin) 时可以正常运行并正常显示日文字符,选择 Run in Japanese 时可以运行但依然是乱码

InWILL commented 2 months ago

1.5.4中,ShellExecuteEx这个函数新增的过于不慎重了。LE的实现是使用了更加底层的NtCreateUserProcess函数,detours如何通过底层函数注入进程还在思考中,下一版本将会回退ShellExecuteEx函数。