Hallo,
ich habe hier mal ein Script auf den Problembereich reduziert. Das hatte bis vor einiger Zeit funktioniert. Seit den letzten Windows 10 (64 Bit) Updates nicht mehr. Ich habe hier einige Dinge getestet, komme jedoch mangels Debugging nicht weiter. Es kann auch sein, dass hier an der Installation etwas nicht stimmt: Letzte Autoit Stabil und Beta, sowie aktuellste Scite Vollinstallation. Debug Console z.B. gibt keine Fehler aus, wirft selbst aber immer wieder fehlerhafte Syntax. Typische Normalsausgabe: "!>09:22:34 AutoIt3.exe ended.rc:-1073741819". Der Windows Defender ist in allen Autoit-Ordnern auf "Ausschluss" der Prüfung gestellt. Anliegend die nötige 32 Bit MusicBrainz DLL. Kann mir jemand weiterhelfen oder zumindest sagen, ob das Script evtl. nur bei mir nicht durchläuft? Also bis zur letzten Msgbox...
Dank und Gruß
Thomas
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <String.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
Opt('MustDeclareVars', 1)
; MusicBrainz:
Global $g_hDiscID = DllOpen("discid.dll")
Global $pDisc = _DiscID_New() ; Handle
OnAutoItExitRegister(_DiscID_Free($pDisc))
OnAutoItExitRegister(__DiscID_Close__)
_CD_MusicBrainz()
Func _CD_MusicBrainz()
Local $GUI = GUICreate("", 400, 400)
GUISetState(@SW_SHOW, $GUI)
Local $ex = 1
Local $aDGCD = DriveGetDrive($DT_CDROM)
Local $sCombostring = ''
For $i = 1 To $aDGCD[0]
If DriveGetLabel($aDGCD[$i]) = "Audio CD" Then
$sCombostring &= StringUpper($aDGCD[$i]) & "|"
EndIf
Next
If $sCombostring = "" Then
MsgBox(64, "Laufwerk", "Es ist keine Audio CD eingelegt.")
Else
$sCombostring = StringTrimRight($sCombostring, 1)
MsgBox(0, "$sCombostring", $sCombostring)
Local $lw1 = StringLeft($sCombostring, 2)
MsgBox(0, "lw1", $lw1)
Local $guidrive = GUICreate("Laufwerkswahl", 165, 100, -1, -1, -1, 128) ;$WS_EX_TOOLWINDOW
Local $hComb_Drive = GUICtrlCreateCombo("", 10, 10, 50, 22)
GUICtrlSetData(-1, $sCombostring, $lw1)
Local $hBut_AskMB = GUICtrlCreateButton("MB-Anfrage", 65, 10, 90, 20, 1) ; Style = $BS_DEFPUSHBUTTON
Local $hLab_Text = GUICtrlCreateLabel('Bitte ein Laufwerk für die MB Anfrage auswählen.', 10, 45, 140, 40)
GUISetState(@SW_SHOW, $guidrive)
While 1
Local $msg = GUIGetMsg()
Switch $msg
Case $hBut_AskMB
Local $lw = GUICtrlRead($hComb_Drive)
MsgBox(0, "Laufwerk Auswahl", $lw)
If Not _DiscID_ReadSparse($pDisc, $lw, 0) Then
If @error = -1 Then MsgBox(0, "Fehler in filereadline()", "@error=" & @error)
MsgBox(16, "Fehler", _DiscID_GetErrorMsg($pDisc))
Else
If @error = -1 Then MsgBox(0, "Fehler in filereadline()", "@error=" & @error)
;GUISetState(@SW_HIDE, $guidrive) ; alternativer Versuch anstatt der folgenden 3 Zeilen
GUICtrlDelete($hComb_Drive)
GUICtrlDelete($hBut_AskMB)
GUIDelete($guidrive)
EndIf
MsgBox(0, "Laufwerk gewählt", $lw)
ExitLoop
Case -3 ;$GUI_EVENT_CLOSE = -3
GUICtrlDelete($hComb_Drive)
GUICtrlDelete($hBut_AskMB)
GUIDelete($guidrive)
$ex = 0
ExitLoop
EndSwitch
WEnd
MsgBox(0, "Ende", "")
EndIf
EndFunc ;==>_CD_MusicBrainz
Func _DiscID_New()
Return DllCall($g_hDiscID, 'ptr:cdecl', 'discid_new')[0]
EndFunc ;==>_DiscID_New
Func _DiscID_Get_VersionString()
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_version_string')[0]
EndFunc ;==>_DiscID_Get_VersionString
Func _DiscID_GetDefaultDevice()
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_default_device')[0]
EndFunc ;==>_DiscID_GetDefaultDevice
Func _DiscID_ReadSparse($pD, $sDevice, $iFeatures)
Return DllCall($g_hDiscID, 'int:cdecl', 'discid_read_sparse', 'ptr', $pD, 'str', $sDevice, 'uint', $iFeatures)[0]
EndFunc ;==>_DiscID_ReadSparse
Func _DiscID_GetErrorMsg($pD)
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_error_msg', 'ptr', $pD)[0]
EndFunc ;==>_DiscID_GetErrorMsg
Func _DiscID_GetFreeDB_ID($pD)
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_freedb_id', 'ptr', $pD)[0]
EndFunc ;==>_DiscID_GetFreeDB_ID
Func _DiscID_GetID($pD)
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_id', 'ptr', $pD)[0]
EndFunc ;==>_DiscID_GetID
Func _DiscID_GetURL($pD)
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_submission_url', 'ptr', $pD)[0]
EndFunc ;==>_DiscID_GetURL
Func _DiscID_GetTOC($pD)
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_toc_string', 'ptr', $pD)[0]
EndFunc ;==>_DiscID_GetTOC
Func _DiscID_GetWebsURL($pD)
Return DllCall($g_hDiscID, 'str:cdecl', 'discid_get_webservice_url', 'ptr', $pD)[0] ; gibt release.xml aus
EndFunc ;==>_DiscID_GetWebsURL
Func _DiscID_Free($pD)
DllCall($g_hDiscID, 'none:cdecl', 'discid_free', 'ptr', $pD)
EndFunc ;==>_DiscID_Free
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
Func __DiscID_Close__()
DllClose($g_hDiscID)
EndFunc ;==>__DiscID_Close__
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
Alles anzeigen