Aktuelle Zeit: 25.05.2013 11:08

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 16:22 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Diejenigen, die den Windows-Explorer nutzen, sind es wahrscheinlich gewohnt, deutsche Ordnernamen zu sehen,
aber das ist gar nicht so selbstverständlich, da diese gar nicht existieren :mrgreen: (zumindest unter Vista und 7)
Um jetzt den Orginalpfad in der Sprache des Benutzers zu übersetzen, ist diese kleine Procedure nützlich (hoffe ich mal :wink: )
Code:
EnableExplicit

Procedure.s GetLocalDirName(Dir.s)
  If Right(Dir, 1) <> "\" : Dir + "\" : EndIf
 
  Protected KeyValue.s, expandedKey.s, ResDLL.s, ResValue.s, lpBuffer.s
  Protected hDLL, i
  Protected count = CountString(Dir, "\")
  Protected tmpDir.s = StringField(Dir, 1, "\") + "\"
 
  For i = 2 To count
    KeyValue = Space(#MAX_PATH) : expandedKey = Space(#MAX_PATH) : lpBuffer = Space(#MAX_PATH)
    tmpDir + StringField(Dir, i, "\") + "\"
    If GetPrivateProfileString_(".ShellClassInfo", "LocalizedResourceName", 0, @KeyValue, #MAX_PATH, tmpDir + "desktop.ini")
      If Left(KeyValue, 1) = "@" : KeyValue = Mid(KeyValue, 2) : EndIf
      If ExpandEnvironmentStrings_(KeyValue, @expandedKey, #MAX_PATH)
        ResDLL = StringField(expandedKey, 1, ",")
        ResValue = StringField(expandedKey, 2, ",")
        If Left(ResValue, 1) = "-" : ResValue = Mid(ResValue, 2) : EndIf
        hDLL = LoadLibraryEx_(ResDLL, 0, #LOAD_LIBRARY_AS_DATAFILE)
        If hDLL
          If LoadString_(hDLL, Val(ResValue), @lpBuffer, #MAX_PATH)
            Dir = ReplaceString(Dir, StringField(Dir, i, "\"), lpBuffer)
          EndIf
          FreeLibrary_(hDLL)
        EndIf
      EndIf
    EndIf
  Next
  ProcedureReturn Dir
EndProcedure

Debug GetLocalDirName("c:\Program Files\")
Debug GetLocalDirName(GetHomeDirectory() + "Documents\")


Achtung: Diese Pfade dienen nur der Ansicht, sind also für nichts anderes nutzbar.

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Mageia 3 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Zuletzt geändert von ts-soft am 27.04.2012 20:48, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 18:16 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
:allright:

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 20:43 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Vielleicht ist das ja was, für die WinAPI library?

Gruß
Thomas

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Mageia 3 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 20:45 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
Jupp, habs bereits in meinem "Neue API-Sources"-Ordner eingefügt. :wink:

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 20:49 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Schön, hab das Beispiel noch leicht angepasst, so das keiner mehr Thomas heißen muss <)

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Mageia 3 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 20:50 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
Gut, danke, hab die Datei aktualisiert. :allright:

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GetLocalDirName (Windows Vista +)
BeitragVerfasst: 27.04.2012 23:27 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Das ist ja praktisch :allright:
Danke, Thomas

_________________
Bild
FORUM jens-haipeter.de & Falko-Pure.de
Win8 Pro 64-Bit & Mediacenter, PB_5.0,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye