Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Screensaver Description auslesen (https://www.delphipraxis.net/61702-screensaver-description-auslesen.html)

turboPASCAL 25. Jan 2006 09:40


Screensaver Description auslesen
 
Wie kann man von einem Screensaver die Description auslesen ? also nicht nur den Namen der *.scr aus der Reg. fischen sondern den Namen den man mit {$D ...} angibt.

marabu 25. Jan 2006 11:24

Re: Screensaver Description auslesen
 
Hi Matti,

ich würde es so machen:

Delphi-Quellcode:
function LoadStrEx(instance, ident: Integer): String;
var
  buffer: array [0..1023] of char;
begin
  SetString(Result, Buffer,
    LoadString(instance, ident, buffer, sizeof(buffer)));
end;

procedure TDemoForm.FileListBoxDblClick(Sender: TObject);
const
  SCRSAVER_DISPLAYNAME = 1;
var
  h: THandle;
begin
  h := LoadLibrary(PChar(FileListBox.FileName));
  if Succeeded(h) then
  begin
    ShowMessage(LoadStrEx(h, SCRSAVER_DISPLAYNAME));
    FreeLibrary(h);
  end;
end;
Grüße vom marabu

turboPASCAL 25. Jan 2006 14:17

Re: Screensaver Description auslesen
 
Ja, danke das funktionert super.

Eigentlich habe ich angenommen das LoadString nur für recourcestring's brauchbar ist.

Rastaman 25. Jan 2006 16:51

Re: Screensaver Description auslesen
 
Zitat:

Zitat von turboPASCAL
Ja, danke das funktionert super.

Eigentlich habe ich angenommen das LoadString nur für recourcestring's brauchbar ist.

Der Name des Screensavers ist ja auch ein Resourcestring, aber er wird aus einer anderen Datei gelesen :zwinker:

Christian Seehase 25. Jan 2006 18:34

Re: Screensaver Description auslesen
 
Moin marabu,

wäre für diesen Anwendungsfall LoadLibraryEx mit LOAD_LIBRARY_AS_DATAFILE nicht sinnvoller?

marabu 25. Jan 2006 20:32

Re: Screensaver Description auslesen
 
Moin Chris,

da hast du allerdings Recht - auf den Initialisierungscode ist ja in diesem Fall keiner angewiesen.

Freundliche Grüße

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 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