»Vorgabeseiten automatisch zuweisen« und andere Meldungen unterdrücken

Im März 2009 hatte ich das Tool Push That Freakin’ Button (PTFB) vorgestellt, um bestimmte Dialoge automatisch wegklicken zu lassen. Nun, es geht auch mit FrameScript, auch wenn es manchmal ein paar Jahre dauert, bis man herausgefunden hat wie. Der Input für das folgende Skript stammt aus zwei Beiträgen in der [frame_dev]-Liste von Rick Quatro und Markus Wiedenmaier. Dieses Event-Skript (es muss installiert werden!) unterdrückt zur Zeit die Dialoge:

  • Alle Vorgabeseiten werden erneut zugewiesen…
  • Kann importierte Grafiken nicht anzeigen…
  • Die Schriftinformation für Ihr System hat sich geändert…

Dabei erscheinen die betreffenden Dialoge gar nicht erst, eine bessere Lösung als ein Auto-Klicker.

Event NoteAlert
    Local lvUnique(0) YesOperation(-10005);
    Get Member Number(1) From(Session.ActiveAlert.Properties) 
        NewVar(lvUnique);
    Set lvUnique = lvUnique.PropVal;
    If (lvUnique = 40086)
        Write Console 'NoteAlert ' + lvUnique + ': YES';
        Return Value(YesOperation);
    ElseIf (lvUnique = 40090)
        Write Console 'NoteAlert ' + lvUnique + ': YES';
        Return Value(YesOperation);
    ElseIf (lvUnique = 46001)
        If (EStr.FindString{FileName, 'All master pages will be reapplied.'} = 1)
            Write Console 'NoteAlert ' + lvUnique + ': YES';
            Return Value(YesOperation);
        ElseIf (EStr.FindString{FileName, 'Alle Vorgabeseiten werden erneut zugewiesen.'} = 1)
            Write Console 'NoteAlert ' + lvUnique + ': YES';
            Return Value(YesOperation);
        Else
            Write Console 'NoteAlert ' + lvUnique + ': ' 
                + EStr.ReplaceAll{FileName, CharLF, ' '};
        EndIf
    ElseIf (lvUnique = 0) // Alerts without unique IDs
        If (EStr.FindString{FileName, 'The font information for your system has changed.'} = 1)
            Write Console 'NoteAlert ' + lvUnique + ': YES';
            Return Value(YesOperation);
        ElseIf (EStr.FindString{FileName, 'Die Schriftinformation für Ihr System hat sich ge'} = 1)
            Write Console 'NoteAlert ' + lvUnique + ': YES';
            Return Value(YesOperation);
        Else
            Write Console 'NoteAlert ' + lvUnique + ': ' 
                + EStr.ReplaceAll{FileName, CharLF, ' '};
        EndIf
    Else
        Write Console 'NoteAlert ' + lvUnique + ': ' 
            + EStr.ReplaceAll{FileName, CharLF, ' '};
    EndIf
EndEvent

Mit Hilfe der Befehle Write Console können Sie in der Konsole nachverfolgen, bei welchen Alerts das Skript eingegriffen hat und welche zusätzlich erkannt wurden.

Kennen Sie weitere, unterdrückenswerte Meldungen?

Ein Kommentar

  1. Posted 7. Oktober 2010 at 07:40 | Permalink

    Einige Dialoge haben ihre eigene ID (oder manche auch mehrere), andererseits gibt es Dialog ohne ID oder auch mehrere Dialoge mit derselben ID 46001. Insofern sollte das Skript immer auch den Text einer Meldung überprüfen, sonst sind plötzlich die Meldungen anderer Plug-ins verschwunden…

    Ich habe das Skript entsprechend angepasst.