ich habe einen kleinen Denkfehler und zwar wenn ich den unten aufgefuehrten quellcode versuche zu starten dann bricht mir das proggi ab mit einer Fehlermeldung welches besagt das vb aufgrund eines ungueltigen Vorgangs geschlossen wird.
Ursache dafür ist eine ungültige Seite im Modul Shell32.dll bei 0167:7fcbf63c
Was habe ich bei der ganzen Sache falsch gemacht?
Für eure Hilfe bedanke ich mich im voraus
Hier der quelltext:
Option Explicit
Dim hInst As Long
Dim hicon As Long
Dim zaehler As Long
Dim file As String
Private Declare Function GetClassWord Lib „user32“ (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function ExtractIcon Lib „shell32.dll“ Alias „ExtractIconA“ (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Sub Command1_Click()
Dim file$, verz$
verz = Tools.windir
file = Tools.fileopen(„Dateien (*.exe *.dll) | *.exe;*.dll“, verz & „“)
If file = „“ Then
Exit Sub
Else
Label4.Caption = "Gewählte Datei: " & file
anzeigen
End If
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub anzeigen()
Dim i As Long
hInst = GetClassWord(hwnd, -16&:wink:
hicon = ExtractIcon(hInst, file, 1)
If hicon = 0 Then
MsgBox „In dem File: " & file & " sind keine Symbole enthalten!“, 64
file = „“
Exit Sub
End If
If hicon > 6 Then
For i = 7 To hicon
Load Picture1(i)
Load Label2(i)
Picture1(i).Visible = False
Label2(i).Visible = False
Next i
HScroll1.Max = hicon - 6
HScroll1.Value = 0
HScroll1.Enabled = True
End If
End Sub
Private Sub Form_Load()
HScroll1.Enabled = False
End Sub
Hallo. Ich bin zwar kein Spezialist hierfür, kann aber einige Hinweise liefern:
1.) Du deklarierst die FILE-Variable zweimal (einmal im Heading und dann nochmal in der Command1_Click()-Sub.
2.) Teste mal, ob FILE und VERZ tatsächlich die richtigen Werte beinhalten.
3.) Grundsätzlich ein „“ an den Pfad dranzukopieren, kann falsch sein. Liegt z. B. der Standardpfad im Hauptverzeichnis (z. b. C:), wird der Bäcksläsch schon mitgeliefert und Du hast ihn doppelt (C:\Datei.txt)
danke Für Deine Antwort.- Also es ist wie folgt
Auf der Form befinden sich 6 Picture Boxen. Darueber ( ueber jeder Picturebox) noch ein label.
In der Dll Datei „Tools“ befinden sich einige von mir geschrieben Functionen. Sie funktionieren auch.
In der DLL Wird nur ein dialof geoeffnet zum auswaehlen einer Datei. Das funktioniert auch soweit. Als naechstes wird das Getclassword der angegebenen DAtei ermittelt. DAs funktioniert auch. DAnn werden die anzahl der vorhanden Icone in der DAtei ermittelt. DAbei tritt der fehler auf. Der wert sollte in hicon gespeichert werden. Je nach dem werden dann die entsprechende Labels und Pictureboxen nachgeladen. Aber soweit komme ich ja garnicht erst
Ist irgendetwas an dem API AUfruf falsch? Ich habe mittlerweile mein Windows neu installiert und demzufolge auch VB. ICh dachte das es an dem dll File(Shell32) liegt aber anscheinend habe ich mich getaeuscht
ICh hoffe die Infos helfen Dir ein wenig weiter.
Ein gesundes neues Jahr wünsche ich Dir noch
Ciao Alex
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ich habe es nun doch hinbekommen. Es lag daran das ich die Variable File 2 mal declariert habe. Man bin ich blöd *grummel*
Aber trotzdem danke für Deine Hilfe