| |
|
|
Torsten Rümker | Salut, je versuche justement herauszubekommen, comment on den Pfad de Eigene Fichiers herausbekommen peux. Pour Verschiedene autre Verzeichnisse (Windowsverzeichnis, Programmverzeichnis) peux on cela oui aus einer Système erfahren, mais comment erfahre je cela Verzeichnis pour Eigene Fichiers pour den 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 en isses: KompilierenMarqueSéparationSystemordner 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
|
|
|
| |
|
|
|
| qui 5 ist Eigenen Fichiers! voudrais nochmal sur elle aufmerksam faire, cela qui Ergebnisse stark de qui installiertem InternetExplorer Version dépendre. si alors alternative API vorhanden ist, ist cet trop bevorzugen.
Eigene Fichiers funktioniert mais toujours, si qui Internet Explorer installiert ist, pour autre Pfade lieber qui MSDN étudier. |
|
|
| |
|
|
|
Frank Abbing | Nenne la fois s'il te plaît alternative APIs...
je bezweifle, dass qui API pas richtig funktioniert, si qui IE pas installiert ist. cela peux au maximum chez Windows 95 qui le cas son, weil ici quelques Dlls fehlten, si qui IE pas vorhanden ist. et la fois honnête - Windows 95 ist Schnee de gestern... |
|
|
| |
|
|
|
| [...]
là stehen größtenteils qui erforderlichen Win et IE Versionen chez.
z.B CSIDL_PROGRAM_FILES (Crogramme meist sur dt. Systemen) existiert seulement ab IE 5. |
|
|
| |
|
|
|
| [quote-part:a23301beb1=TS-Soft] [...]
là stehen größtenteils qui erforderlichen Win et IE Versionen chez.[/quote-part:a23301beb1] Wobei mir la fois wieder auffällt cela MSDN avec FF betrachtet simple furchtbar aussieht. |
|
|
| |
|
|
|
| ici ne Alternative pour CSIDL_PROGRAM_FILES KompilierenMarqueSéparationcls
declare ProgramFiles$
ProgramFiles$ = ReadIni$("HKEY_2", "SOFTWAREMicrosoftWindowsCurrentVersion", "ProgramFilesDir")
print ProgramFiles$
waitkey /pre> Funktioniert ensuite aussi sans IE5, genauso pour Temp, System usw. lieber qui entsprechende API verwenden, anstatt cette AllroundFunktion, bzw. si, ensuite plan avec obigen Link vergewissern |
|
|
| |
|
|
|
Torsten Rümker | Alors, j'ai maintenant la fois dans qui Registry gestöbert et une Eintrag trouvé, qui mir eventuell aider peux. et zwar: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionExplorerShellFolders et ici ensuite qui Eintrag personnel
peux cela s'il te plaît quelqu'un bestätigen, bzw. arrêt aussi pas? Möglichst pas seulement WinXP nutzer wäre joli
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 24.05.2006 ▲ |
|
|
|
|
| Pour Eigene Fichiers (CSIDL_PERSONAL = 5) kannste den Code de Frank verwenden, funzt ab Win95 avec IE 3.0 (peut-être. sogar sans?). là gibts aucun Probleme
mais chez manchen cette Constanten sollte on très prudent son, bzw. gibts une Leerstring si es encore pas existiert.
malheureusement croyons viele, cet Constanten sur jeden System nutzen trop peut, c'est pourquoi toujours informer, bevor on es utilise. |
|
|
| |
|
|