COM Error - Script weiter ausführen

  • Hallo,

    Ich habe ein Problem und zwar, ich habe ein Programm was auf die COM-Steuerung zugreift. Wenn allerdings die COM-Abfrage errort wird das ganze Programm beendet. Gibt es eine Möglichkeit dies zu umgehen und vielleicht in einer Variable zu speichern das die Abfrage geerrort ist?

    Ich habe hier im Forum schon gesucht bin aber zu keinem wirklichem treffe gekommen.


    Hier eine vereinfachte Version meines Scripts:


    [autoit]

    #include <iTunes.au3> ;Kann hier runtergeladen werden http://www.autoitscript.com/forum/index.php?showtopic=70675
    Local $iTunes_State = 2 ;Setzt die Variable die den Status abfragt (darf nicht 0 oder 1 sein)
    _iTunes_Start() ;Startet iTunes
    While 1
    If _iTunes_Player_Get_State() <> $iTunes_State Then ;Überprüft ob der Status (Play/Pause) von iTunes geändert wurde
    $iTunes_State = _iTunes_Player_Get_State() ;Setzt die Statusvariable neu
    ToolTip("iTunes state is : " & $iTunes_State, 1 , 1) ;Gibt den Status als ToolTip aus
    EndIf
    WEnd

    [/autoit]


    Vielen Dank fürs lesen!

    Einmal editiert, zuletzt von kloklo (1. September 2009 um 16:01)

  • Ersetze mal diese Funktion:

    [autoit]

    Func _iTunes_Start()
    $iTunesApp = ObjCreate("iTunes.Application")
    $Library_Playlist = $iTunesApp.LibraryPlaylist
    $Library_Tracks = $iTunesApp.LibraryPlaylist.Tracks
    $sel_Track = $iTunesApp.SelectedTracks
    $current_Track = $iTunesApp.CurrentTrack
    $Player_State = $iTunesApp.PlayerState
    $Playlist_Handle = $iTunesApp.LibrarySource.Playlists
    EndFunc ;==>_iTunes_Start

    [/autoit][autoit][/autoit][autoit][/autoit]

    mit:

    [autoit]

    Func _iTunes_Start()
    $iTunesApp = ObjCreate("iTunes.Application")
    If $iTunesApp = 0 Then Exit
    $Library_Playlist = $iTunesApp.LibraryPlaylist
    $Library_Tracks = $iTunesApp.LibraryPlaylist.Tracks
    $sel_Track = $iTunesApp.SelectedTracks
    $current_Track = $iTunesApp.CurrentTrack
    $Player_State = $iTunesApp.PlayerState
    $Playlist_Handle = $iTunesApp.LibrarySource.Playlists
    EndFunc ;==>_iTunes_Start

    [/autoit][autoit][/autoit][autoit][/autoit]

    Dann sollte es gehen.

  • Vielen Dank für die schnelle Antwort.

    Löst mein Problem aber nicht wirklich.
    Mein Problem ist immoment das wenn ich in iTunes das Einstellungenfenster, ec. öffne das ich dann die Folgende Errormeldung erhalte:


    Line -1:


    Error: The requested action with this object has failed.


    und dann verabschiedet sich das Programm.

  • Ja, tut sie.

    Vielen dank!


    Und hier nocheinmal das fertige Script fals jemand das gleiche Problem hat:


    [autoit]

    #include <iTunes.au3> ;Kann hier runtergeladen werden http://www.autoitscript.com/forum/index.php?showtopic=70675
    Local $iTunes_State = 2 ;Setzt die Variable die den Status abfragt (darf nicht 0 oder 1 sein)
    Global $Error = ObjEvent("AutoIt.Error", "Error") ;Ruft bei einem Error die Funktion Error auf
    _iTunes_Start() ;Startet iTunes
    While 1
    If _iTunes_Player_Get_State() <> $iTunes_State Then ;Überprüft ob der Status (Play/Pause) von iTunes geändert wurde
    $iTunes_State = _iTunes_Player_Get_State() ;Setzt die Statusvariable neu
    ToolTip("iTunes state is : " & $iTunes_State, 1 , 1) ;Gibt den Status als ToolTip aus
    EndIf
    WEnd
    Func Error()
    $iTunes_State = "Can't check state" ;Setzt die Statusvariable auf Error
    EndFunc

    [/autoit]
  • @kloklo

    Ist zwar ein alter Hut, aber ich möchte mich denoch bedanken für deine Lösung. Hat mir heute sehr geholfen :)

    Gruß
    Homer J. S.

    ...wenn die Donuts auch nur halb so gut schmecken wie sie aussehen, dann sehen sie doppelt so gut aus wie sie schmecken...