Seite 1 von 2

GetSystemDirectory()

Verfasst: 17.07.2008 20:57
von Joel
Hallo,

Wie kann ich ermitteln, was der Systempfad ist, also "C:\Windows" oder "C:\WinNT\"

MFG Joel

Verfasst: 17.07.2008 20:59
von rolaf

Code: Alles auswählen

Procedure.s SpecialPath(PathID.l)

  ;PathID
  ;  26 = User\Anwendungsdaten
  ;   0 = User\Desktop
  ;   5 = User\Eigene Dateien
  ;  39 = User\Eigene Dateien\Eigene Bilder
  ;   6 = User\Favoriten
  ;  11 = User\Startmenü
  ;   2 = User\Startmenü\Programme
  ;   7 = User\Startmenu\Programme\Autostart
  ;  21 = User\Vorlagen
  ;  35 = All Users\Anwendungsdaten
  ;  25 = All Users\Desktop
  ;  31 = All Users\Favoriten
  ;  22 = All Users\Startmenü
  ;  23 = All Users\Startmenü\Programme
  ;  24 = All Users\Startmenü\Programme\Autostart
  ;  45 = All Users\Vorlagen
  ;  36 = Windows
  ;  20 = Windows\Fonts
  ;  37 = Windows\System32
  ;  38 = Programme
  ;  43 = Programme\Gemeinsame Dateien

  Protected SpecialPath.s

  SpecialPath = Space(#MAX_PATH + 1)
  SHGetSpecialFolderLocation_(0, PathID, @FolderID)
  SHGetPathFromIDList_(FolderID, @SpecialPath)

  If Right(SpecialPath, 1) <> "\"
    SpecialPath + "\"
  EndIf

  ProcedureReturn SpecialPath

EndProcedure

Debug SpecialPath(36)

Verfasst: 17.07.2008 21:11
von RSBasic
Ohne API:

Code: Alles auswählen

Debug GetEnvironmentVariable("windir")

Verfasst: 17.07.2008 21:12
von Joel
Super, Danke!!

Verfasst: 17.07.2008 21:22
von Kaeru Gaman
brauchst du die zum benutzen oder zum ausgeben?

zum benutzen ist easy:

Code: Alles auswählen

path.s = "%SystemRoot%\system32\"

OpenFileRequester( "PathTest", path, "all|*.*", 1 )

Verfasst: 17.07.2008 22:14
von ts-soft
Die Version von Falo kann ich in diesem Falle nicht empfehlen, da die
Ergebnisse je nach IE-Version, bzw. WinVersion differieren.

Ich empfehle:

Code: Alles auswählen

Sysdir.s{#MAX_PATH}
GetSystemDirectory_(@SysDir, #MAX_PATH)

Debug Sysdir

WinDir.s{#MAX_PATH}
GetWindowsDirectory_(@WinDir, #MAX_PATH)

Debug WinDir
Gruß
Thomas

Verfasst: 17.07.2008 22:25
von rolaf
ts-soft hat geschrieben:Die Version von Falo kann ich in diesem Falle nicht empfehlen, da die
Ergebnisse je nach IE-Version, bzw. WinVersion differieren.
Quark. Unter Win98/2000/XP/Vista getestet. :allright:
Erst Testen dann meckern!

Verfasst: 17.07.2008 22:36
von ts-soft
Falo hat geschrieben:
ts-soft hat geschrieben:Die Version von Falo kann ich in diesem Falle nicht empfehlen, da die
Ergebnisse je nach IE-Version, bzw. WinVersion differieren.
Quark. Unter Win98/2000/XP/Vista getestet. :allright:
Erst Testen dann meckern!
Dann Teste das mal mit Programme nochmal :mrgreen:
Wenns dafür eindeutige APIs gibts, sind diese zuverlässiger!

SpecialFolder wurde mit IE4 eingeführt, teste mal mit IE3, enthielt aber
bei weitem nicht soviele Pfade wie jetzt.

Für "Eigene Dateien" usw. ist es nützlich, wobei man da Teilweise aber noch
die WindowsVersion, bzw. IE Version checken sollte.

Aber WinDir, SysDir und ProgramFiles besser per entsprechender API,
oder aus der Registry ermitteln.
(es sei denn, das Programm ist für Win2K aufwärts)

Environmentvariable sollte auch immer gehen, hab da aber schon
defekte Windowse gesehen, deslhalb lieber die API

Gruß
Thomas

Verfasst: 18.07.2008 06:46
von rolaf
Win98 mit IE 3 oder 4? :freak:
Da ist doch schon IE 5 vorinstalliert.
Wie gesagt unter allen gennanten OSen ausprobiert und für GUT befunden. :)

Verfasst: 18.07.2008 07:02
von ts-soft
Falo hat geschrieben:Win98 mit IE 3 oder 4? :freak:
Da ist doch schon IE 5 vorinstalliert.
Wie gesagt unter allen gennanten OSen ausprobiert und für GUT befunden. :)
Es gibt auch noch Win95 ohne IE und in Win98 gabs noch die gute
Möglichkeit den IE zu deinstallieren!
Gibt aber Tabellen mithilfe derer man sehen kann, welche Verzeichnisse
unter welchen Bedingungen zu ermitteln sind. Das kann man sich aber
sparen
, die von mir geposteten Funktionen gehen immer.