frohe weihnachten und guten rutsch wünsche ich euch, nu die frage ^^
da ich mein tool zum download freigegeben habe, habe mich user angeschrieben, ob es möglich wäre, das mann den pfad selber wählen kann. und ich habe mit CommDialog experimentiert und es funktioniert nich so wie es soll, deshalb bräuchte ich eure hilfe. soe sieht der code aus mit dem spezial pfad:
Public Enum SpecialFolders
spf_Desktop = 1
spf_Programs = 2
spf_Personal = 3
spf_StartUp = 4
spf_Templates = 5
spf_StartMenu = 6
spf_SendTo = 7
spf_Recent = 8
spf_History = 9
spf_Favorites = 10
spf_NetHood = 11
spf_Fonts = 12
spf_Cache = 13
spf_AppData = 14
spf_PrintHood = 15
spf_Cookies = 16
spf_Custom = 99
End Enum
Private Const HKEY_CURRENT_USER = &H80000001
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
Private Const ERROR_SUCCESS = 0&
Private Const REG_SZ = 1
Private Const REG_DWORD = 4
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _
"RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
ByVal lpReserved As Long, lpType As Long, lpData As Any, _
lpcbData As Any) As Long
Private Function GetValue(root&, key$, field$, Value As Variant) As Boolean
Dim lResult&, keyhandle&, dwType&
Dim zw&, puffersize&, puffer$
lResult = RegOpenKeyEx(root, key, 0, KEY_READ, keyhandle)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Key doesn't exist
lResult = RegQueryValueEx(keyhandle, field, 0&, dwType, ByVal 0&, puffersize)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Value doesn't exist
Select Case dwType
Case REG_SZ ' null-terminated String
puffer = Space$(puffersize + 1)
lResult = RegQueryValueEx(keyhandle, field, 0&, dwType, ByVal puffer, _
puffersize)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Error while reading value
Value = puffer
Case REG_DWORD ' 32-Bit Number !!!! Word
puffersize = 4 ' = 32 Bit
lResult = RegQueryValueEx(keyhandle, field, 0&, dwType, zw, puffersize)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Error while reading value
Value = zw
End Select
If lResult = ERROR_SUCCESS Then RegCloseKey keyhandle
GetValue = True
If Asc(Right$(Value, 1)) = 32 Then Value = Left$(Value, Len(Value) - 2)
End Function
Public Function GetSpecialFolder(ByVal Folder As SpecialFolders, _
Optional ByVal Value As String) As String
On Error Resume Next
Dim RetVal As Boolean, FolderStr$
If Folder <> 99 Then
FolderStr = Choose(Folder, "Desktop", "Programs", "Personal", _
"StartUp", "Templates", "Start Menu", "SendTo", "Recent", "History", _
"Favorites", "NetHood", "Fonts", "Cache", "AppData", "PrintHood", _
"Cookies")
Else
FolderStr = Value
End If
RetVal = GetValue(HKEY_CURRENT_USER, _
"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", _
FolderStr, GetSpecialFolder)
If RetVal = False Then GetSpecialFolder = ""
End Function
Private Sub Command1_Click()
FileCopy Environ("appdata") & "\Teamspeak2\TeamSpeak.Conf", "C:\TeamSpeak.conf"
End Sub ich wollte fragen, ob es mit commondialog möglich wäre die datei vom spezialpfad zum gewünschten pfad mit commondialog zu kopieren.
danke im voraus  |