Vb 5.0 api

Hi,

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 :smile:

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&amp: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

PS: Der Fehler tritt beim Aufruf von

hicon = ExtractIcon(hInst, file, 1)

auf.

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)

Gruß
(Woly)

More Infos pls!

  1. Von welchem Typ ist „Tools“ in der Procedure Command1_Click()?
  2. Wieviele Label-Objekte sind im Label2-Array enthalten??

oder einfacher:

…schick mir das gesamte Projekt per Mail, ok?

VG, Stefan

Hi Stefan,

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 :frowning:
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 :frowning:

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]

Bitte schicken!!
Bitte schicken!!

Bitte schicken!!

Hi Stefan,

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 :smile:

Ciao Alex

Prima! Ihr habt´s!
Ich will ja nicht klugscheissen, aber ich glaube, dass ich die Lösung schon um 9.55 Uhr gepostet habe!

Aber gut, dass Du´s jetzt hast!

Gruß
(Woly)

hi Woly,
dank deines hier geposteten Eintrages bin ich auch auf die Lösung gekommen.

Gesundes neues Jahr wünsch ich dir!!!
Tschau Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]