Запустите приложение с определенным форматом даты

349
Dejan Janjušević

Мне нужно использовать одно довольно плохо закодированное приложение, которое требует от меня использования региональных настроек en-US, или, более конкретно, формат даты должен быть в формате en-US при выполнении этого приложения. Я не хочу использовать формат даты en-US, когда я регулярно использую свой компьютер. Я хотел бы запустить это приложение, используя двойной щелчок, без изменения региональных настроек вручную при его использовании.

Я создал специального пользователя в качестве члена группы «Администраторы» (эта программа требует повышения прав) и установил его региональные настройки на en-US, с идеей использовать runasдля запуска этого приложения с использованием других учетных данных пользователя, надеясь, что если я запустил приложение таким образом, оно будет подбирать заданные пользователем региональные настройки.

Я также попытался сделать это с помощью PsExec из SysInternals Suite.

Тем не менее, приложение все еще использует мои региональные настройки. Моя ОС - Windows 10 64-битная. У кого-нибудь есть идея?

РЕДАКТИРОВАТЬ: принятый ответ на связанный (возможно, дубликат) вопрос такой же, как я уже пробовал (и для ясности выделен жирным шрифтом).

EDIT2: приложение, которое я пытаюсь запустить, является 32-разрядным, но требует повышения прав.

0
Возможный дубликат [Как запустить 64-битную программу с языком, отличным от языкового стандарта системы?] (Https://superuser.com/questions/905522/how-to-launch-a-64-bit-program-with -a-другому-языковой стандарт, чем заместитель системы локаль) user 6 лет назад 2
@ пользователь прочитал, что я пробовал? Dejan Janjušević 6 лет назад 0
Потерять отношение. Вы пробовали предлагаемую альтернативу Microsoft AppLocale? Прежде чем ответить на мой комментарий, обратите внимание, что вы не упомянули, было ли это 32-битное или 64-битное приложение. Если вы мне грубите, я сообщу о комментарии и даже не отвечу. Честно говоря, я бы убрал враждебность из вашего вопроса, потому что он чрезвычайно враждебен к сообществу и не требуется. Ваша ОС 64-битная, но это не говорит мне, является ли приложение 64-битным или нет, и это имеет значение. Ramhound 6 лет назад 0
Стоит отметить, что если приложение 32-разрядное, и Locale-Emulator не решает вашу проблему, то вполне возможно, что приложение просто не было разработано для запуска в другой локали (и, следовательно, приложение должно было бы быть исправлено), чтобы сделать это. Ramhound 6 лет назад 0
@ Спасибо за внимание. Я отредактировал вопрос с дополнительной информацией. Я также попробовал с эмулятором локали, и он не работает. Этот эмулятор локали, вероятно, переопределяет культуру пользовательского интерфейса потока, однако мне нужно что-то переопределить саму культуру потока. К сожалению, у меня нет доступа к исходному коду приложения, поэтому я не могу это исправить. Dejan Janjušević 6 лет назад 0
«Этот эмулятор локалей, вероятно, переопределяет культуру пользовательского интерфейса потока, однако мне нужно что-то, чтобы переопределить саму культуру потока.» -Что? Ваш анализ неверен Ramhound 6 лет назад 0
Я сказал, наверное - возможно, я ошибаюсь. Дело в том, что это не помогло ... Но там я решил проблему и отправил ответ. Dejan Janjušević 6 лет назад 0

1 ответ на вопрос

0
Dejan Janjušević

Я смог решить эту проблему, используя простой, быстрый и грязный способ. Поскольку все, что требуется для этого приложения, это изменение формата даты (точнее, краткого формата даты), я создал приложение, которое:

  1. сохраняет текущий формат даты из реестра (из HKCU \ Control Panel \ International)
  2. изменяет формат даты на тот, который требуется для запускаемого приложения
  3. запускает приложение
  4. ожидает загрузки приложения
  5. изменяет значение настройки формата даты обратно на предыдущее значение

https://drive.google.com/open?id=1RF_vu_-5Qk_ytE93iRzfK0zJGi5706ey

Источник

Требуется .NET Framework 4.6. Содержит appSettings.json, который позволяет изменить приложение для запуска, параметры и формат даты, чтобы установить.

Похожие вопросы