Wie bekomme ich den Pfad zum Quicklaunch Ordner? Macros scheint es dafür nicht zu geben.
"Quicklaunch" Pfad auslesen?
-
- [ offen ]
-
DeepRed92 -
18. Oktober 2009 um 18:53 -
Geschlossen -
Erledigt
-
-
Müsste doch so bei jedem Funktionieren:
[autoit]Global Const $mQuickLaunchFolder = @AppDataDir&"\Microsoft\Internet Explorer\Quick Launch"
[/autoit][autoit][/autoit][autoit]ShellExecute($mQuickLaunchFolder)
[/autoit] -
Unter Vista; NT und Windows 7 auch????
-
Keine Ahnung...
hat hier jemand Vista oder Windows 7 und testet es mal? -
Jop der Pfad passt auch noch bei Win 7
-
Zitat
@AppDataDir & \Roaming\Microsoft\Internet Explorer\Quick Launch
Windows Vista Quicklaunch Ordner
-
Wenn du auf Nummer sicher gehen willst kannst du den Pfad auch auslesen lassen:
Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "", _SHGetKnownFolderPath("{52a4f021-7b75-48a9-9f6b-4b87a210bc8f}") & @CRLF)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _SHGetKnownFolderPath
; Description ...: Liest den Pfad eines speziellen Ordners anhand seiner GUID aus
; Syntax.........: _SHGetKnownFolderPath($sGUID [, $dwFlags])
; Parameters ....: $sGUID - GUID als String (http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx)
; $dwFlags - http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx
; Return values .: Success - Pfad des Ordners
; Failure - Nullstring
; Author ........: AspirinJunkie
; Related .......: _WinAPI_GUIDFromString
; ===============================================================================================================================
Func _SHGetKnownFolderPath($sGUID, $dwFlags = 0x1000)
Local $strctPath
Local $iLength, $aRet
Local $strctGUID = _WinAPI_GUIDFromString($sGUID)If @error Then Return SetError(1, @error, "")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("shell32.dll", "int", "SHGetKnownFolderPath", "ptr", DllStructGetPtr($strctGUID), "dword", $dwFlags, "ptr", 0, "ptr*", "")
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return SetError(2, @error, "")$iLength = DllCall("kernel32.dll", "uint", "lstrlenW", "ptr", $aRet[4])
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return SetError(3, @error, "")$strctPath = DllStructCreate("wchar[" & $iLength[0] & "]")
[/autoit] [autoit][/autoit] [autoit]DllCall("kernel32.dll", "none", "lstrcpyW", "ptr", DllStructGetPtr($strctPath), "ptr", $aRet[4])
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return SetError(4, @error, "")DllCall("ole32.dll", "none", "CoTaskMemFree", "ptr", $aRet[4])
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return SetError(5, @error, "")Return DllStructGetData($strctPath, 1)
[/autoit]
EndFunc ;==>_SHGetKnownFolderPath
Die jeweilige GUID für den ersten Parameter findest du >>hier<< . -
Hmm ich bekomme leider nur eine leere MsgBox. Ist das nur bei mir so?
-
Bei mir funktioniert es einwandfrei. Einfach den Code ausführen, sollte sich dann auch sogleich ein MSGFenster öffnen.
-
Bei mir Funktionierts auch nicht...
Edit: Meine Methode hat doch überall Funktioniert, warum nimmste die nicht?
-
-
Ja Der Code von AspirinJunkie ließt doch den Wert aus der Registry aus
-
Ich dachte der Code von AspirinJunkie sieht professioneller aus . Aber ich glaub ich benutze lieber Deinen Code. Ist es eigentlich möglich, den Pfad per Registry auszulesen?
Naja wer weis was in
[autoit]@AppDataDir
[/autoit]alles drin steckt , deshalb geht es ja überall
-
Die Frage war doch ob es auch unter Vista und Win7 so ist.
Für diesen Fall ist die Funktion (unter XP gibt es diese noch nicht - daher bleibt es leer).
Also @OSVersion müsstest du vorher schon abfragen.