| |

Fortgeschrittene ProgrammierungRe: startmenü & aktueller pfad ermitteln | |  | Autor: tobi1492 | Datum: 10.08.06 11:07 |
| irgendwie hab ich ä paar probleme und zwar:
_______________________________________________________________
' Ordner-Auflistung
Public Enum SpecialFolderIDs
sfidDESKTOP = &H0 ' Desktop
sfidPROGRAMS = &H2 ' Start Menu\Programs
'Musste das ganze ä bisle kürze, weil die nachricht zu lang ist
Menu\Programs\Administrative Tools
sfidADMINTOOLS = &H30 ' \Start Menu\Programs\Administrative Tools
sfidProgramFiles = &H10000
sfidCommonFiles = &H10001
End Enum
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Declare Function SHGetSpecialFolderLocation Lib _
"shell32.dll" (ByVal hwndOwner As Long, _
ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib _
"shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
' Verknüpfung erstellen über das Shell-Objekt (Shell32.dll)
Public Function CreateShortcut(ByVal sLinkFile As String, _
ByVal sTargetFile As String, _
Optional ByVal sArguments As String, _
Optional ByVal sDescription As String, _
Optional ByVal sWorkingDir As String)
Dim oShell As New Shell32.Shell
Dim oFolder As Shell32.Folder
Dim oLink As Shell32.ShellLinkObject
Dim sPath As String
Dim sFile As String
Dim F As Integer
' Ordner und Dateiname extrahieren
sPath = Left$(sLinkFile, InStrRev(sLinkFile, "\") - 1)
sFile = Mid$(sLinkFile, InStrRev(sLinkFile, "\") + 1)
' Link-Datei mit 0 Bytes erstellen, da die
' LNK-Datei bereits voranden sein muss!
F = FreeFile
Open sLinkFile For Output As #F: Close #F ''''''''''''''''''''''''''''''''''''''''''''hier tritt immer ein fehler auf, schaue nach unten
Set oFolder = oShell.NameSpace(sPath)
Set oLink = oFolder.Items.Item(sFile).GetLink
' Eigenschaften der Verknüpfung
With oLink
If sArguments <> "" Then .Arguments = sArguments
If sDescription <> "" Then .Description = sDescription
If sWorkingDir <> "" Then .WorkingDirectory = sWorkingDir
.Path = sTargetFile
' Verknüpfung speichern
.Save
End With
' Objekte zerstören
Set oLink = Nothing
Set oFolder = Nothing
Set oShell = Nothing
End Function
' Standard Systemordner ermitteln
Public Function GetSpecialFolder(CSIDL As _
SpecialFolderIDs) As String
Dim lResult As Long
Dim IDL As ITEMIDLIST
Dim sPath As String
lResult = SHGetSpecialFolderLocation(100, CSIDL, IDL)
If lResult = 0 Then
sPath = Space$(512)
lResult = SHGetPathFromIDList(ByVal IDL.mkid.cb, _
ByVal sPath)
GetSpecialFolder = Left$(sPath, InStr(sPath, _
Chr$(0)) - 1)
End If
End Function
---------------------------------------------------------------
Private Sub Command1_Click()
' Verknüpfung "test.lnk" im Ordner
' "d:\temp" erstellen
CreateShortcut GetSpecialFolder(sfidDESKTOP), App.Path & "\" & App.EXEName & ".exe"
End Sub
______________________________________________________________
und zwar vermute ich, dass der zugriff aufs desktop verweigert wurde. auf jedenfall steht dann da bei der fehlermeldung:
Laufzeitfehler 75
Fehler bei Zugriff auf Datei/ Pfad
dann debugge ich die ganze sache, und wenn ich dann auf slinkfile gehe, erscheint der desktoppfad
genauso verhält es sich auch beim startmenu pfad...
MfG tobi
P.S. wenn ich einen festen ordner angebe dann funktionierts |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevAniGif (VB/VBA) 
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|