2010-05-23 2 views
1

Итак, у меня есть собственный исполняемый файл (как для OS X, так и для Windows), заправленный внутри .jar, который затем программно извлекается в временное местоположение и выполняется оттуда. К сожалению, этот исполняемый файл не будет работать должным образом на моей машине Windows (Win 7 64bit), когда я вручную настрою режим совместимости с предустановкой Windows XP, однако он будет работать.java: как я могу установить режим совместимости собственного .exe?

Есть ли способ, который я могу сделать это программно с Java?

ответ

2

Я считаю, что есть способ сделать это, изменив реестр, поэтому вам придется использовать Java для программного изменения некоторых разделов реестра. Разумеется, это не идеальное решение и, безусловно, не кросс-платформенный.

Вот ссылка на how to достичь этого.

Кроме того, вам понадобится пакет Java, который использует Windows API, быстрый поиск в Google показывает this. Но я уверен, что есть больше способов доступа к реестру.

+0

это хорошо выглядит, спасибо. Заглядывая в него, раньше никогда не использовали реестр Windows. Предполагаете, что сгенерированные ключи реестра должны быть удалены после того, как исполняемый файл temp больше не нужен, или же в настоящий момент очистка реестра сама по себе? – Jakob

+0

Если вы установили раздел реестра, это ваша работа, чтобы очистить его, если вы считаете, что он должен быть очищен. –

+0

сделал. благодаря! – Jakob

0

Я думаю, что вы действительно хотите исправить несовместимость в своем родном exe. Режим совместимости действительно для приложений, где у пользователя просто нет выбора. Я не могу сказать, сколько часов я потратил впустую, отлаживая тупое поведение, вызванное тем, что пользователь случайно переключил режим совместимости - лучше всего избегать этого, если у вас есть выбор в этом вопросе.

+0

Я бы сделал это, но exe не мой. – Jakob