inwill / locale_remulator Goto Github PK
View Code? Open in Web Editor NEWSystem Region and Language Simulator.
License: GNU Lesser General Public License v3.0
System Region and Language Simulator.
License: GNU Lesser General Public License v3.0
作者你好,最近使用LR发现,将EXCEL中的韩文复制粘贴到游戏中就全部变成问号了,以前使用LE没有这种情况。后续不知道是否能增加这一功能。
目前是放在Locale_Emulator資料夾旁邊但Locale_Emulator沒問題所以還以為Locale_Remulator也是沒問題的。不知道路徑亂碼是因為用嘗試跑日語還是Locale_Remulator的原生語言沒有支援
啟動 D:\µ¡\»y¨«\Locale_Remulator\LRHookx32.dll 時發生問題
找不到指定的模組。
右键某个程序所关联的文件格式,右键菜单会出现LE的选项,此时可以选择用LE打开并直接调用所关联的程序。
可能表述不清楚,举个例子。
txt格式一般是用系统自带的notepad打开的,而notepad至今仍是32位程序(win10,win11不清楚)。所以右键一个txt文件,此时可以选择 Locale Emulator→run in japanese 直接调用notepad打开这个txt文件,并且会模拟日语环境打开。
那么再说一个64位程序,winrar是有64位的,我所安装的正是64位winrar。那么我们这时右键rar文件是不会有LE菜单的,但是LR的菜单也没有。那么想要直接打开一个rar文件就很费劲了。需要先找的winrar的目录,然后右键winrar.exe,再选择用LR打开,在打开的winrar里再找到我要打开的rar文件,这样可以说是非常不方便了。
至于这样有什么意义,txt文件应该很好理解,文本内容乱码了。压缩文件则是里面的文件夹或者文件名乱码了,转区打开才能看到正确的文件名。
---------------------------
MapleStoryV241.tmp - Application Error
---------------------------
The application was unable to start correctly (0xc000007b). Click OK to close the application.
---------------------------
OK
---------------------------
测试为大概如果使用Locale_Remulator启动程序A,但程序A再启动程序B时会报告此错误。同样的在使用Locale_Remulator启动MapleStory.exe时,MapleStory.exe再启动Patcher.exe会导致此错误(错误的标题栏显示为Patcher.exe)。
作者你好,测试了你给的1.4.3 beta版,发现韩语输入法问题已经修复,没有之前遇到的出现问号和联想出别的文字问题。
目前有个新想法,后续可否更新改善。KMS游戏内应该是包含了多种字体,不同场景适用不同的字体。如果单一使用一种字体,有些场景字体会显示过大,超出了对话框。
这只是个人的一点想法,希望作者能做出更好的LR 😁
win11 64位系统每次都要转区运行Notepad.exe再拉入txt文本
win11 22H2 23531.1001
LR 1.5.3
例1
疑似路径包含符号♪导致出错
运行路径为 G:(0)upload\1-upend\N&R\ぶらっどすくぅ~る♪\Game.exe
路径去除符号后可正常运行
例2
运行该游戏时直接进程闪退(无窗口显示) https://www.dlsite.com/maniax/work/=/product_id/RJ084595.html
运行路径为 F:\Studio Gaudi\ロリコン教師が昭和へGo!\ロリコン教師が昭和へGo!.exe
尝试过更改为F:\Studio Gaudi\1\1.exe 无效果
以上两个例子在LE中均运行良好 Dev有时间的话请检查下什么原因导致的问题 感谢
你好,我想請問一下
在同樣是nexon日本官方下的遊戲//Talesweaver
運行後一開始不會被偵測
過一段時間後,使用就被遊戲內反外掛偵測出來
這種情況下
請問把源代碼修改過後再自己編譯的話 可以解決嗎
如果可以的話,請問要修改哪些項目
如果不行的話,請問要怎麼解決,謝謝
你好,请问有对台服客户端进行过测试吗?我这边试用台64位测试服进行测试时,发现无法启动,系统日志报错:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>100</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2022-02-20T07:13:50.3693135Z" />
<EventRecordID>88561</EventRecordID>
<Correlation />
<Execution ProcessID="35820" ThreadID="0" />
<Channel>Application</Channel>
<Computer>LINTX-JJRBS-PC</Computer>
<Security />
</System>
<EventData>
<Data>MapleStoryT.exe</Data>
<Data>1.0.0.240</Data>
<Data>61cd8835</Data>
<Data>MapleStoryT.exe</Data>
<Data>1.0.0.240</Data>
<Data>61cd8835</Data>
<Data>c0000005</Data>
<Data>000000000069bcc0</Data>
<Data>b1c8</Data>
<Data>01d8262963de6ccb</Data>
<Data>D:\Program Files (x86)\Gamania\MapleStory_TestServer\MapleStoryT.exe</Data>
<Data>D:\Program Files (x86)\Gamania\MapleStory_TestServer\MapleStoryT.exe</Data>
<Data>369b9ede-27d4-47a3-80a4-fb4d93869db7</Data>
<Data />
<Data />
</EventData>
</Event>
虽然我也fork了仓库并在本地可以跑起来,但是由于对VS非常不熟悉,甚至不知道如何调试,所以将信息发到issues
台64位测试服下载地址:
https://maplestory-download.beanfun.com/maplestory/download/SyBfXk3urKAH/MapleStoryV240_OT/MapleStoryV240_OT.zip
这是它的官网,naver账号
https://latale.game.naver.com/Main/
彩虹岛韩服是通过浏览器启动游戏的,在启动器界面是正常显示韩语,但是进入游戏仍然是中文乱码
之前使用le的时候,我是使用LE生成了maplestory.exe的快捷方式,然后自己写了个python脚本,使用快捷方式+参数1+参数2+...+参数N的方式启动游戏,然后把脚本打包成exe,替代掉网页启动的maplestory.exe。但是替换成LR的快捷方式以后似乎就无法正常使用了,想知道如果用LRProc.exe启动程序,是否支持LRProc.exe your_app.exe args1 args2 args2 这种方式?
win10
Locale_Remulator.1.5.3-beta.1
戦国ランス(日文版)
https://www.dlsite.com/pro/work/=/product_id/VJ004938.html
作者你好!在使用LR玩KMS时遇到了两个问题,不知道是否能解决。
1.使用LR打开登陆器,登陆器页面全部显示“?”,可能是转区的问题,之前的LE是没有这个问题的。虽然不影响游戏,但可能与问题2有关;
2.使用LR玩KMS时,虽然文字显示没有问题,但是输入法打字时,时不时会出现一个“?”或者输入法会联想出一个我并没有如入的文字。这导致KMS输入验证码困难。
这是我在使用过程中遇到的状况,希望作者大大能够解决
感谢你做出LR
查找资料、查看le的代码后后觉得应该是hook SetClipboardData 和GetClipboardData两个函数,但是由于对底层编程不熟悉,hook后到游戏里面遇到奇奇怪怪的问题,复制粘贴有时乱码有时不乱码,有时复制后剪贴板清空了……
并且打了日志后输出的日志也是奇奇怪怪的……
贴出代码供参考:
参考的代码:le的User32Hook.cpp第962-1054行
我写的代码:
typedef int* PInt;
typedef unsigned char u8, * PByte;
#define LoByte(v) (u8) ((v & 0xFF))
HANDLE clipboardUHandle = nullptr;
HANDLE clipboardAHandle = nullptr;
ULONG_PTR __fastcall StrLengthA(PSTR pString)
{
long ch;
LONGLONG SizeOfUnit;
PSTR pBuffer = pString;
if (pString == NULL)
return 0;
SizeOfUnit = sizeof(int);
while ((LONGLONG)(pBuffer) & 3)
{
if (*pBuffer++ == 0)
{
--pBuffer;
goto end_of_calc;
}
}
for (;;)
{
long temp;
ch = *(PLONG)pBuffer;
pBuffer += SizeOfUnit;
temp = (0x7EFEFEFF + ch) ^ (ch ^ -1);
if ((temp & 0x81010100) == 0)
continue;
if (LoByte(ch) == 0)
{
pBuffer -= SizeOfUnit;
break;
}
if ((ch & 0xFF00) == 0)
{
pBuffer -= SizeOfUnit - 1;
break;
}
if ((ch & 0x00FF0000) == 0)
{
pBuffer -= SizeOfUnit - 2;
break;
}
if ((ch & 0xFF000000) == 0)
{
pBuffer -= SizeOfUnit - 3;
break;
}
}
end_of_calc:
return pBuffer - pString;
}
ULONG_PTR __fastcall StrLengthW(PCWCHAR pString)
{
long ch;
PCWCHAR pBuffer;
if (pString == NULL)
return 0;
pBuffer = pString;
while ((LONGLONG)pBuffer & 3)
{
if (*pBuffer++ == 0)
{
--pBuffer;
goto end_of_strlen;
}
}
for (;;)
{
ch = *(PInt)pBuffer;
if ((ch & 0xFFFF) == 0)
{
break;
}
else if ((ch & 0xFFFF0000) == 0)
{
pBuffer = (PCWCHAR)((PByte)pBuffer + sizeof(*pBuffer));
break;
}
pBuffer = (PCWCHAR)((PByte)pBuffer + sizeof(ch));
}
end_of_strlen:
return pBuffer - pString;
}
HANDLE WINAPI HookSetClipboardData(
UINT uFormat,
HANDLE hMem
)
{
if (clipboardUHandle != nullptr)
{
GlobalFree(clipboardUHandle);
}
filelog << "lock ok:";
filelog << uFormat;
filelog << "\n";
filelog.flush();
if (uFormat == CF_TEXT)
{
filelog << "is text\n";
filelog.flush();
PSTR str = (PSTR)GlobalLock(hMem);
if (str != nullptr)
{
filelog << "lock ok:";
filelog << str;
filelog << "\n";
filelog.flush();
ULONG_PTR length = StrLengthA(str);
if (length!=0)
{
filelog << "length:";
filelog << length;
filelog << "\n";
filelog.flush();
++length;
HGLOBAL data = GlobalAlloc(GHND, length * sizeof(WCHAR));
if (data!=nullptr)
{
TCHAR *pBuf = (TCHAR *)GlobalLock(data);
LPWSTR lpstr = MultiByteToWideCharInternal(str, settings.CodePage);
filelog << "data:";
filelog << lpstr;
filelog << "\n";
filelog.flush();
memcpy(pBuf, lpstr, length * sizeof(WCHAR));
GlobalUnlock(data);
HANDLE handle = OriginalSetClipboardData(CF_UNICODETEXT, data);
if (handle!=nullptr)
{
filelog << "set ok:";
filelog << handle;
filelog << "\n";
filelog.flush();
GlobalUnlock(hMem);
GlobalFree(hMem);
return handle;
}
}
}
}
GlobalUnlock(hMem);
}
return OriginalSetClipboardData(uFormat, hMem);
}
HANDLE WINAPI HookGetClipboardData(
UINT uFormat
)
{
filelog << "get clipboard:";
filelog << uFormat;
filelog << "\n";
filelog.flush();
if (uFormat == CF_TEXT)
{
filelog << "is text\n";
filelog.flush();
HGLOBAL data = OriginalGetClipboardData(CF_UNICODETEXT);
if (data != nullptr)
{
filelog << "origin ok:";
filelog << data;
filelog << "\n";
filelog.flush();
if (data == clipboardAHandle && clipboardUHandle != nullptr)
{
filelog << "is = data:";
filelog << "\n";
filelog.flush();
return clipboardUHandle;
}
if (clipboardUHandle != nullptr)
{
GlobalFree(clipboardUHandle);
}
ULONG_PTR flags = GlobalFlags(data);
if (!(flags & GMEM_INVALID_HANDLE))
{
filelog << "!flags:";
filelog << "\n";
filelog.flush();
PWSTR pwstr = (PWSTR)GlobalLock(data);
if (pwstr!=nullptr)
{
filelog << "lock ok:";
filelog << pwstr;
filelog << "\n";
filelog.flush();
ULONG_PTR length = StrLengthW(pwstr);
HGLOBAL adata = GlobalAlloc(GHND, length * sizeof(WCHAR) + 1);
if (adata != nullptr)
{
filelog << "alloc ok:";
filelog << adata;
filelog << "\n";
filelog.flush();
TCHAR* pBuf = (TCHAR*)GlobalLock(adata);
LPSTR lpstr = WideCharToMultiByteInternal(pwstr, settings.CodePage);
filelog << "data:";
filelog << lpstr;
filelog.flush();
memcpy(pBuf, lpstr, length * sizeof(WCHAR) + 1);
GlobalUnlock(adata);
GlobalUnlock(data);
clipboardUHandle = adata;
clipboardAHandle = data;
return adata;
}
GlobalUnlock(data);
}
}
}
}
return OriginalGetClipboardData(uFormat);
}
网页登录账号然后点击开始游戏会启动neoplelauncher更新器 跑完更新验证然后才会自动启动游戏客户端 不知道如何进行转区启动
运行register.bat,并且重启电脑或者资源管理器,右键exe文件时没看到新增有相关功能,是哪里操作不对吗,以前添加过LE。Run register.bat
, Right-click EXE file did not see the new related functions。
世嘉的日麻游戏 (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
时可以运行但依然是乱码
Locale_Remulator/LRProc/LRProc.cpp
Line 55 in f29b1ca
当系统语言是泰文的时候不会生效,更换其他语言后正常
我现在使用的是开启UTF-8全球语言支持的Windows 11 22H2英语系统。
在使用 KinhDown 时出现乱码
使用LR之后MessageBox乱码被修复了,但是其他地方依然有另一种乱码
如果能解决我将万分感激
1、使用命令行调用LRProc.exe时,目标程序目录不能带有空格(无反应)
2、目标程序发生窗口切换后转区失效,变成乱码。
示例程序为 [パープルソフトウェア] 青春フラジャイル
https://i.postimg.cc/NGdkmwBZ/2022-11-17-202822.jpg
1.4.3 beta版添加了自定义的配置,但是安装LR程序后,右键游戏程序却没有显示自己的配置。
LE能正常显示32位的半角,如果后续能解决将非常感谢。但不是刚需。我这里VS2013降级改了改,严格的构造函数一直过不了编译,算了。
一开始显示报错,说是没有安装.netcore.app runtime,安装运行时后,依然安装报错
提示:
you must missing frameworks for .NET
本人有的时候需要使用一些多语言软件的其他语言显示。在LE是有这个选项的,能否考虑加入这个功能呢?不胜感激。😘
修改Hook Input Method 后 Win10输入是正常的 win7下还是乱码。输入的是測試,出来的是代?。辛苦咨询是否有解决方案。因为虚拟机环境只能是win7
A program I'm trying to run seems to work with locale emulator, but not with locale remulator, for what appears to be attempted file reads failing to find the correct filenames.
When launching without using either program in my US-EN locale, the title of this window is garbled and it disappears after only a moment.
Whenever the game is launched in this way, a .ini file with a garbled filename is created with identical information to the properly named file immediately under it. The contents of the file are not garbled, but the filename is.
When launching with locale remulator, the title of the window is fixed but the game still crashes after only a moment.
Importantly, when the game is launched like this, even though the title is fixed properly, the garbled .ini file still appears. This would appear to indicate that file reads and writes are not fixed by locale remulator.
When launching with locale emulator or when using a Japanese system locale, the game launches as it should.
我的项目是**繁体项目,默认编码BIG5,使用LR可以正常查看中文繁体字体,否则是乱码。
VS对解决方案的项目右键 - 属性 - 配置属性下的 - 调试 - 工作目录(设置调试exe的工作目录)
(这里主要是修改调试时候,执行文件的执行目录,你懂的)
通过调试打印,发现读取的还是默认的exe执行目录(release目录),而非自己设置的工作目录。
而使用locale emulator,没有任何问题。
用Locale Remulator加载日语程序时,程序生成的文件或者文件夹只要是带有非ascii字符,无一例外都是乱码。但用Locale Emulator加载的话就没这个问题。
win11下打开韩服冒险岛,字体会变得非常小!
程序是安装在Program Files路径下的,使用LREditor建立快捷方式后,双击建立的快捷方式无法成功运行程序。手动修改创建的快捷方式,为路径包含空格的程序加上双引号也不行。如果程序安装的路径没有空格,就能够使用创建的快捷方式成功运行程序。
系统:Windows 10 Enterprise LTSC 2019 X64
系统:win7
使用LR版本:所有版本均有问题
LR配置中
<HookIME>true</HookIME>
当设置为true时,部分win7用户在游玩新枫之谷台服的过程中
会出现打字乱码的问题。
使用v1.4.7-beta.2版本进行测试,将其设置为false输入才不会变成乱码。
不知是Bug还是其他问题。
麻烦看一下哦。
在对某些要求日语系统日语显示语言日语地区日语标准时间的软件里(比如某些galgame的安装iso,因为安装本身alpharomdie解决不了)。
win11在英语系统英语显示语言国内标准时间下。用默认的日语有加伪装系统ui的默认档案运行的话
1.系统版本是对上了。没抱怨不是日语内核系统
2.系统显示语言没对上,说是要用日语显示语言
3.时区没对上。转的东京时区没用还是说**时区。
4.区域格式没对上,似乎是因为用的是英语的区域格式,就算换到日本时区程序还接着抱怨osaka, tokyo time不是大阪東京時間。
对比下我用locale emulator的经历。系统版本是对的。系统语言对不上。时区格式没对上还是抱怨是英语。然后时区是对上了是靠区域模拟设置里面的osaka,tokyo time但是因为时区格式是英语的原因不被识别。
换了日语显示界面和时区就好了。但是如此还不如全换locale,语言,非unicode,时区格式和时区。
评测时间不够长(只有几个小时),样本数量也不多(就我一个),但是体感好像很容易提示“侦测到外挂”目前正在不换环境更换le试试
作者你好,首先非常感谢你写的软件
今天在使用过程中我发现了一个问题
我想在英语版本的操作系统下运行中文软件,于是想新建一个 Run in Chinese
的新配置项,但是在 LREditor
中不能新建配置项
这里预期的效果应该是可以新建一个配置项,可是我点击 Save As
的时候却没有任何反应,我已经将任何可能的输入项都试了一次,可是还是不能新建
在另一个相似软件 Locale Emulator V2.4.1.0 中的表现应该是,当我点击 Save as
时会出现一个新窗口提示我输入配置项名称
可以看到无论如何操作我的 LRConfig.xml
文件中都不会新增配置项
LRConfig.xml
<?xml version="1.0" encoding="utf-8"?>
<LRConfig>
<Profiles Type="exe">
<Profile Name="Run in Japanese" Guid="ca46b757-f59d-42eb-85b0-e8a3316bc347">
<Location>ja-JP</Location>
<CodePage>932</CodePage>
<LCID>1041</LCID>
<TimeZone>Tokyo Standard Time</TimeZone>
<Bias>540</Bias>
<RunAsAdmin>false</RunAsAdmin>
<HookIME>false</HookIME>
<HookLCID>true</HookLCID>
</Profile>
<Profile Name="Run in Japanese (Admin)" Guid="b1acc843-7c4c-4834-8e48-c468703f32f1">
<Location>ja-JP</Location>
<CodePage>932</CodePage>
<LCID>1041</LCID>
<TimeZone>Tokyo Standard Time</TimeZone>
<Bias>540</Bias>
<RunAsAdmin>true</RunAsAdmin>
<HookIME>true</HookIME>
<HookLCID>true</HookLCID>
</Profile>
<Profile Name="Run in Taiwan (Admin)" Guid="4522fbfd-1786-4035-a4aa-8e8c4e98e59f">
<Location>zh-TW</Location>
<CodePage>950</CodePage>
<LCID>1028</LCID>
<TimeZone>Taipei Standard Time</TimeZone>
<Bias>480</Bias>
<RunAsAdmin>true</RunAsAdmin>
<HookIME>true</HookIME>
<HookLCID>true</HookLCID>
</Profile>
<Profile Name="Run in Korean (Admin)" Guid="11fc53c1-fc9b-4e59-93a5-6606796452dc">
<Location>ko-KR</Location>
<CodePage>949</CodePage>
<LCID>1042</LCID>
<TimeZone>Korea Standard Time</TimeZone>
<Bias>540</Bias>
<RunAsAdmin>true</RunAsAdmin>
<HookIME>true</HookIME>
<HookLCID>true</HookLCID>
</Profile>
</Profiles>
</LRConfig>
LRInstaller.exe
Install LocaleRemulator
下的 Install
Restart Windows Explorer
下的 Restart Windows Explorer
Customise your profiles (optional)
下的 Edit global profile list
LREditor
中的 CodePage
和 TimeZone
,勾选 None
,点击 Save As
Readme
?是
是
是
Issue
?是
Windows 10 Pro 22H2
Locale Remulator 1.5.2
无日志信息
如果可以得到作者的帮助我会十分感激
Most present when running MMD in Run as Japanese
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.