AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Parsen von EnvironmentPath

Ein Thema von EWeiss · begonnen am 14. Aug 2018 · letzter Beitrag vom 14. Aug 2018
 
EWeiss
(Gast)

n/a Beiträge
 
#1

Parsen von EnvironmentPath

  Alt 14. Aug 2018, 03:19
Wie würdet ihr vorgehen um den EnvironmentPath zu parsen..?

bsp.
IExplorer setzt seinen Arbeitspfad mit %HOMEDRIVE%%HOMEPATH%..
Den Path stelle ich dann so zur Verfügung.
@%HOMEDRIVE%@%HOMEPATH%

Danach parse ich es auf diese weise.

Delphi-Quellcode:
function TShortCut.ExpandEnvironment(EnvironmentPath: PWideChar): PWideChar;
var
  lpDest: array [0 .. 32768] of WideChar;
begin

  result := '';
  FillChar(lpDest, SizeOf(lpDest), 0);
  if ExpandEnvironmentStrings(PWideChar(EnvironmentPath), lpDest, 32767) <> 0 then
    result := lpDest;
end;
Delphi-Quellcode:
var
  SplitID: TSplitStrArray;
  sTmpWork: WideString;
begin
  sWorkDir := GetExePath(Trim(ParseThis(sBF, ',', 3)), ExtractFilePath(sShellTo));
  SplitID := Split(sWorkDir, '@');
  if (Length(SplitID) > 1) then
  begin
    if (MidStr(SplitID[1], 0, 1) = '%') then
    begin
      sTmpWork := SplitID[1];
      sWorkDir := ExpandEnvironment(PWideChar(sTmpWork));
      if Length(SplitID) > 1 then
      begin
        sTmpWork := SplitID[2];
        sWorkDir := sWorkDir + ExpandEnvironment(PWideChar(sTmpWork)) + '\';
      end;
    end;
  end;
end;
Das scheint mir irgendwie zu unsicher..
Könnte ja theoretisch auch nur %HOMEDRIVE% bzw. 3 aneinanderhängende enthalten sein.

Um was es mir geht, suche eine bessere\sichere Lösung den EnvironmentPath zu parsen.
Vielleicht hat ja jemand eine bessere Lösung.
Eventuell über eine schleife oder TStringListe?

gruss

Geändert von EWeiss (14. Aug 2018 um 03:30 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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