Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi konstante Systemstrings abfragen (https://www.delphipraxis.net/88642-konstante-systemstrings-abfragen.html)

cruiser 18. Mär 2007 19:48


konstante Systemstrings abfragen
 
Kennt jemand eine API-Funktion oder ähnliches mit der man die Konstante "Neuer Ordner" in der Systemsprache abrufen kann?

Suchbegriffe: Konstanten, konstante Strings, Systemkonstante, lokalisiert

marabu 19. Mär 2007 11:18

Re: konstante Systemstrings abfragen
 
Hi Ronny,

wenn du den String "Neuer Ordner" in einer beliebigen Sprache haben möchtest, dann könnte das schwierig werden. Gespeichert ist er auf jeden Fall als String-Resource 30320 in der lokalisierten SHELL32.DLL:

Delphi-Quellcode:
function GetString(const lib: string; id: LongWord): string;
var
  hLib: THandle;
  buf: array [Byte] of Char;
begin
  hLib := LoadLibrary(PChar(lib));
  if LongBool(hLib) then
  try
    SetString(Result, buf, LoadString(hLib, id, @buf[0], SizeOf(buf)));
  finally
    FreeLibrary(hLib);
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  ShowMessage('"' + GetString('C:\WINDOWS\SYSTEM32\SHELL32.DLL', 30320) + '"');
end;
Freundliche Grüße

cruiser 19. Mär 2007 13:51

Re: konstante Systemstrings abfragen
 
Ich brauchte das für nen Custom-Dialog. Die lokalisierte sollte reichen. Danke dir :bounce1:

himitsu 6. Sep 2009 17:05

Re: konstante Systemstrings abfragen
 
Wo ich das grad seh ...
eventuell wäre es besser, wenn man die DLL in soeinem Fall auch nur als Resource-Container läd.

Also z.B. MSDN-Library durchsuchenLoadLibraryEx + LOAD_LIBRARY_AS_DATAFILE.

Damit wird nur das Image der DLL geladen und nicht ihre Startprozedur (EntryPoint) ausgeführt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz