Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Ребят, м.б. кто сталкивался или знает? Есть некое приложение, не мое, скажем так системное. Локализация реализована стандартным для Win способом. Т.е. лежит application.exe Там же лежат папочки en-US, ru-RU, fr-FR... В зависимости от того какой язык интерфейса, какие языковые пакеты установлены. В каждой папочке соответственно свой application.exe.mui с переводом Стандартный принцип: если тек. язык интерфейса системы русский, подгружается ru-RU если тек. язык интерфейса системы английский, подгружается en-US и т.д. А если язык интерфейса системы русский, а я хочу запустить на английском или французском? Ну типа CreateProcess (application.exe, ...) Как обмануть, чтоб он ориентировался на заданную локализацию, а не системную? Пока ничего внятного на эту тему не нашел. Английский напр. можно запустить, уничтожив папку ru-RU, французский почему-то не схватывает если оставить только папку fr-FR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 20:06 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Вендопроблемы такие вендопроблемы. В *nix достаточно Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 20:13 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 20:17 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Фундаментально вроде тут пишут https://msdn.microsoft.com/en-us/library/windows/desktop/dd319073(v=vs.85).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 21:20 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Чет я туплю пока. SetThreadUILanguage c LangId=1033 по идее должен установить английский, но в итоге CreateProcess запускает все одно на русском, но CreateProcess же запускает приложение в другом потоке. а как мне новый процесс с заданным UILanguage запустить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 21:22 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 23:32 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Как обмануть, чтоб он ориентировался на заданную локализацию, а не системную? Внедриться в запускаемый процесс и вызвать SetProcessPrefrredUILanguages(), например. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 00:34 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, И, легко сказать. А вот как это сделать. 21353339 (не C но не суть) SetThreadUILanguage SetProcessPreferredUILanguages SetThreadPreferredUILanguages Все эти 3 ф-ции я уже опробовал. Но я волен их запустить в своем процессе. Из своего я потом делаю CreateProcess(то чего хочу запустить...) Но "то чего хочу запустить" плевать на мои вызовы Set...UILanguage, оно схватывает тот UI что прописан в системе И вот как мне "внедриться" в "то чего хочу запустить" на этапе вызова CreateProcess? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 01:01 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Дмитрий77И вот как мне "внедриться" в "то чего хочу запустить" на этапе вызова CreateProcess? DLL Injection описан у Рихтера. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 12:38 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВнедриться в запускаемый процесс и вызвать SetProcessPrefrredUILanguages(), например.Разве дочерний процесс не наследует окружение родительского процесса, включая установленную локализацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 12:56 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
rdb_devРазве дочерний процесс не наследует окружение родительского процесса, включая установленную локализацию? Окружение - наследует. Локализация в окружение не входит. Почитай ссылку mayton. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:07 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Локализация реализована стандартным для Win способом. Ну, какого-то стандарта в общем и нет. Дмитрий77Т.е. лежит application.exe Там же лежат папочки en-US, ru-RU, fr-FR... В зависимости от того какой язык интерфейса, какие языковые пакеты установлены. В каждой папочке соответственно свой application.exe.mui с переводом Ну это .dll c ресурсами подгружаются разные в зависимости от языка. Ну да, трюк достаточно стандартный, но в зависимости от чего подгружать какую-то .dll -- это дело приложения. Оно может и не использовать системные настройки. Дмитрий77А если язык интерфейса системы русский, а я хочу запустить на английском или французском? Это зависит от приложения. Как там реализовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:44 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
rdb_devDimitry SibiryakovВнедриться в запускаемый процесс и вызвать SetProcessPrefrredUILanguages(), например.Разве дочерний процесс не наследует окружение родительского процесса, включая установленную локализацию? Наследует, только Винда плюёт на все почти настройки из окружения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:46 |
|
||
|
Запустить приложение с заданной локализацией
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. MasterZivно в зависимости от чего подгружать какую-то .dll -- это дело приложения. Оно может и не использовать системные настройки.Это зависит от приложения. Как там реализовано. Ну, судя по документации да. Т.е. оно само знает список предпочтений (5 языков как понял) + аварийный вариант, напрашивается en-US. Подопытное приложение - это классический WinMail.exe (из висты), я вожусь с инсталлятором оного для Win7-10. Естественно задумался о локализации, ибо все mui из вистовских пакетов извлекаются на ура. Поведение там понятное: установил языковой пакет, переключил UI системы на этот язык, стало на этом языке (этож компонент OS). Возникла идея, а нельзя ли "задать язык принудительно", типа на выбор. Наличием/отсутствием папок с mui на любом языке OS можно подтасовать только en-US (оставляем одну папочку), французский на RU системе по этому принципу не заработает. Возникла далее идея запустить процесс в условиях чтоб он думал что он на такой-то локализации (естественно с применением программного переходника) и пошел в заданную mui-папку. Но сутя по рассуждениям и тестам, нереально, игра не стоит свеч. Т.е. варианта инсталляции разумных 2. 1) устанавливать "все" папки с mui, найдет сам в зависимости от языка OS, либо будет en-US. Много, но не бог весть (1,5-2 МБ на язык). 2) устанавливать одну папку соответствующую вычисленному UI, либо en-US, либо +en-US. А системное поведение видимо на раз-два не обойти, да и надо ли. Понятно, что если человек установил китайскую OS, то польский его не интересует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 20:14 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39633717&tid=2017879]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 286ms |
| total: | 440ms |

| 0 / 0 |
