GetSystemDirectory()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

GetSystemDirectory()

Beitrag von Joel »

Hallo,

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

MFG Joel
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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)
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Ohne API:

Code: Alles auswählen

Debug GetEnvironmentVariable("windir")
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Super, Danke!!
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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 )
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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!
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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. :)
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten