2 Stimmen

Ändern der Standard-Windows-Sprache mit Java-Anwendung

Kann ich die Standardsprache meines Hostsystems (Windows XP) mit einer Java-Anwendung ändern? Wenn ja, wie kann ich das tun?

5voto

mdma Punkte 55529

Sie können die Standard-Eingabesprache über die Windows SystemParameterInfo API.

BOOL WINAPI SystemParametersInfo(
  __in     UINT uiAction,
  __in     UINT uiParam,
  __inout  PVOID pvParam,
  __in     UINT fWinIni
);

Verwendung von JNA ist viel einfacher als die Verwendung von JNI. Um diese API-Funktion in User32.dll mit JNA aufzurufen, erstellen Sie eine Schnittstelle:

public interface User32 extends StdCallLibrary
{
   User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);

   bool SystemParametersInfo(int uiAction, int uiParam, int[] pInt, int fWinIni);
}

Sie bestimmen die LCID der Sprache, in die Sie wechseln möchten. ( Hier ist die Liste von MSDN). Englisch ist zum Beispiel 0x409. Und dann verwenden Sie die LCID im Aufruf von SystemParametersInfo :

int lcid = 0x409;
final int SPI_SETDEFAULTINPUTLANG = 90; 
User32.INSTANCE.SystemParamtersInfo(SPI_SETDEFAULTINPUTLANG, 0, new int[] { lcid }, 0);

Und dann wurde Ihre Standard-Eingabesprache geändert!

0voto

BalusC Punkte 1034465

Es gibt keine eingebauten Wege, die von der Java SE API bereitgestellt werden. Zumindest sehe ich nichts in der Desktop API. Sie müssen OS-native APIs nutzen. Vergessen Sie Java für diesen Teil, wie genau würden Sie das ohne Java machen? Sobald Sie das herausgefunden haben, rufen Sie die jeweilige API mit JNI in Java.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X