| |
|
|
Torsten Rümker | ¡Hola, Yo versuche gerade herauszubekommen, cómo el Pfad de Eigene Archivos herausbekommen kann. Für Verschiedene otro Verzeichnisse (Windowsverzeichnis, Programmverzeichnis) puede ser el sí de uno Systemvariablen erfahren, aber como erfahre Yo el Directorio para Eigene Archivos para el aktuellen Benutzer?
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 23.05.2006 ▲ |
|
|
|
|
Frank Abbing | Einer su isses: KompilierenMarcaSeparaciónSystemordner im Dateisystem mit SHGetSpecialFolderLocation ermitteln
Benötigt Profan 6.6 (wg. Konstanten);
bei Verzicht auf Konstanten auf jeden Fall 6.1 wegen Addr-Funktion
Achtung: Der gewünschte Ordner muß(!) auch im Dateisystem vorliegen
(Systemsteuerung klappt daher z.B. nicht)
Im Fehlerfall ist der Return-String leer
Ich hoffe(!), daß CoTaskMemFree in diesem Fall den vom System
reservierten Speicher freigibt.
Eigentlich müßte dies über die Free-Methode des IMalloc-Interface
erfolgen, aber das geht mit Profan leider nicht.
ole32.hlp läßt die Hoffnung nicht unbegründet erscheinen, aber sicher
bin ich nicht.
Def %CSIDL_DESKTOP 0
Def %CSIDL_PROGRAMS 2
Def %CSIDL_CONTROLS 3
Def %CSIDL_PRINTERS 4
Def %CSIDL_PERSONAL 5
Def %CSIDL_FAVORITES 6
Def %CSIDL_STARTUP 7
Def %CSIDL_RECENT 8
Def %CSIDL_SENDTO 9
Def %CSIDL_BITBUCKET 10
Def %CSIDL_STARTMENU 11
Def %CSIDL_DESKTOPDIRECTORY 16
Def %CSIDL_DRIVES 17
Def %CSIDL_NETWORK 18
Def %CSIDL_NETHOOD 19
Def %CSIDL_FONTS 20
Def %CSIDL_TEMPLATES 21
Def %CSIDL_COMMON_STARTMENU 22
Def %CSIDL_COMMON_PROGRAMS 23
Def %CSIDL_COMMON_STARTUP 24
Def %CSIDL_COMMON_DESKTOPDIRECTORY 25
Def %CSIDL_APPDATA 26
Def %CSIDL_PRINTHOOD 27
Def StartMenueAutostart(0) Readini$("Hkey_1","SoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders","Startup")
Def SHGetSpecialFolderLocation(3) !"SHELL32","SHGetSpecialFolderLocation"
Def SHGetPathFromIDList(2) !"SHELL32","SHGetPathFromIDListA"
Def CoTaskMemFree(1) !"OLE32","CoTaskMemFree"
Declare buffer#
Proc GetSpecialFolder
Parameters csidl%
Declare lpidl&,result$
Dim buffer#,255
If SHGetSpecialFolderLocation(GetActiveWindow(),CSIDL%,Addr(lpidl&))=0
Print lpidl&
IfNot SHGetPathFromIDList(lpidl&,buffer#)=0
Let result$=String$(buffer#,0)
EndIf
EndIf
CoTaskMemFree(lpidl&)
Dispose buffer#
Return result$
EndProc
Beispiel
Window 0,0-%maxx,%maxy
Print $TempDir
Print
Print StartMenueAutostart()
Print
GetSpecialFolder %CSIDL_STARTUP
Whileloop 50
GetSpecialFolder &loop-1
If &loop>9
Print Str$(Int(&loop-1));"",$(0)
Else
Print Str$(Int(&loop-1));" ",$(0)
EndIf
a>
WaitInput
|
|
|
| |
|
|
|
| El 5 es Eigenen Archivos! Möchte otra vez en él aufmerksam hacer, el el Ergebnisse stark de el installiertem InternetExplorer Versión abhängen. Wenn also alternative API disponible es, es esta a bevorzugen.
Eigene Archivos funktioniert aber siempre, si la Internet Explorer installiert es, para otro Pfade más bien el MSDN studieren. |
|
|
| |
|
|
|
Frank Abbing | Nenne veces Por favor, alternative APIs...
Yo bezweifle, dass el API no correcto funktioniert, si la IE no installiert es. Das kann höchstens en Windows 95 el Fall ser, porque hier algunos Dlls fehlten, si la IE no disponible es. Und veces ehrlich - Windows 95 es Schnee de gestern... |
|
|
| |
|
|
|
| [...]
Como posición größtenteils el erforderlichen Win y IE Versionen en.
z.B CSIDL_PROGRAM_FILES (Crogramme meist en dt. Systemen) existiert sólo de IE 5. |
|
|
| |
|
|
|
| [quote:a23301beb1=TS-Soft] [...]
Como posición größtenteils el erforderlichen Win y IE Versionen en.[/quote:a23301beb1] Wobei me de tiempo otra vez auffällt el MSDN con FF betrachtet simplemente furchtbar aussieht. |
|
|
| |
|
|
|
| Hier ne Alternative para CSIDL_PROGRAM_FILES KompilierenMarcaSeparacióncls
declare ProgramFiles$
ProgramFiles$ = ReadIni$("HKEY_2", "SOFTWAREMicrosoftWindowsCurrentVersion", "ProgramFilesDir")
print ProgramFiles$
waitkey /pre> Funktioniert entonces auch sin IE5, genauso para Temp, Sistema usw. más bien el entsprechende API uso, anstatt dieser AllroundFunktion, o. si, entonces eben con obigen Link vergewissern |
|
|
| |
|
|
|
Torsten Rümker | So, Yo ahora veces en el Registry gestöbert y una Eintrag gefunden, el me eventuell helfen kann. y zwar: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionExplorerShellFolders y aquí entonces el Eintrag Personal
Kann el Por favor, alguien bestätigen, o. sólo auch no? Möglichst no sólo WinXP nutzer wäre schön
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 24.05.2006 ▲ |
|
|
|
|
| Für Eigene Archivos (CSIDL_PERSONAL = 5) kannste el código de Franco uso, funzt de Win95 con IE 3.0 (evtl. incluso sin?). Como gibts no Problemas
Aber en manchen dieser Constanten debería uno muy vorsichtig ser, o. gibts una Leerstring si todavía no existiert.
Leider glauben viele, esta Constanten en cada Sistema nutzen a puede, deshalb siempre Informieren, bevor uno lo nutzt. |
|
|
| |
|
|