Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
22.05.2012, 14:41:21
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  WinAPI Forum
| | |-+  Windows-Sprache GetSystemDefaultUILanguage
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Windows-Sprache GetSystemDefaultUILanguage  (Gelesen 2348 mal)
AHees
Newbie
*
Offline Offline

Beiträge: 29



« am: 23.08.2004, 14:17:00 »

Hallo zusammen,

ich benötige zum Auslesen der korrekten Windows Sprache den Befehl GetSystemDefaultUILanguage.

Jedoch kann ich diesen in meiner Delphi 5.0 Version nicht finden.

Hier der Auszug aus der MSDN

GetSystemDefaultUILanguage
The GetSystemDefaultUILanguage function retrieves the language identifier (LANGID) for the default language of the system.

LANGID GetSystemDefaultUILanguage(void);
Parameters
This function has no parameters.

Return Values
The return value is the LANGID for the system default UI language.

Remarks
This is the install language or the localized operating system language.

Requirements
  Windows NT/2000/XP: Included in Windows 2000 and later.
  Windows 95/98/Me: Included in Windows Me.
  Header: Declared in Winnls.h; include Windows.h.
  Library: Use Kernel32.lib.

------------------

Wie kann ich diesen Befehl über die Windows API hereinladen.

Vielleicht kann mir einer von Euch einen Tipp geben.

Grüße

Alex
Gespeichert
BenBE
Hero Member
*****
Offline Offline

Beiträge: 1441


318219379 BenBE@xiondigital.net BenBE1987 ookyBenBE
WWW
« Antworten #1 am: 23.08.2004, 22:47:06 »

Entweder gucken, ob er in der Windows.pas schon existiert oder mit

Code:
function GetSystemDefaultUILanguage: LANGID; stdcall; external 'kernel32.dll' Name 'GetSystemDefaultUILanguage';


Hoff, das haut mit dem stdcall vor external hin. Ansonsten stdcall ganz ans Ende.
Gespeichert

Je komplexer das System, desto kleiner die Fehler; je kleiner die Fehler, desto häufiger ihr Auftreten!
Jailbird
Hero Member
*****
Offline Offline

Beiträge: 1866

34030132 jailbird_24@hotmail.com
WWW
« Antworten #2 am: 23.08.2004, 23:07:35 »

das stdcall gehört da hin.. ;)
Gespeichert

AHees
Newbie
*
Offline Offline

Beiträge: 29



« Antworten #3 am: 23.08.2004, 23:23:40 »

Vielen Dank, das hat funktioniert.
Eine Frage hab ich jedoch noch. Wenn mein Programm unter Windows NT, 95 oder 98 ausgeführt wird, erscheint ein Fehler, dass der Prozedureinsprungpunkt nicht gefunden wurde. Dies ist auch klar, da dieser erst in der Kernel ab Windows Me implementiert ist.

Meine Frage nun: Kann ich diesen Fehler z.B. durch eine try..except Behandlung oder sonstiges irgendwie abfangen ?

Vielen Dank

Grüße

Alex
Gespeichert
Tokter
Gast
« Antworten #4 am: 24.08.2004, 00:28:12 »

Auf diese Art wird es statisch mit der DLL gelinkt, das heisst der exe loader von Windows sucht schon nach dieser Funktion und meldet dass es diese nicht gibt, noch bevor code von dir ausgefuehrt wird.

Du kannst diese Funktion aber auch zur Laufzeit dynamisch laden:

Mal nen Funktions Pointer Typen anlegen:
Code:
type

  TGetSystemDefaultUILanguage = function:LANGID; stdcall;


Und dann sieht ein moeglicher Aufruf so aus:

Code:
var

  LibHandle                  : THandle;

  GetSystemDefaultUILanguage : TGetSystemDefaultUILanguage;

  test                       : LANGID;

begin

  LibHandle:=LoadLibrary('kernel32.dll');

  if LibHandle>0 then begin

    GetSystemDefaultUILanguage := GetProcAddress(LibHandle,'GetSystemDefaultUILanguage');

    if Assigned(GetSystemDefaultUILanguage) then begin

      test:=GetSystemDefaultUILanguage;

      Memo1.Lines.Add(IntToStr(test));

    end else begin

      // Funktion nicht Supported

    end;

    FreeLibrary(LibHandle);

  end;
Gespeichert
AHees
Newbie
*
Offline Offline

Beiträge: 29



« Antworten #5 am: 24.08.2004, 15:45:56 »

Vielen Dank - es funktioniert !

Grüße

Alex
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS