Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Skript funktioniert nur in 90% der Fälle, was tun?

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ThomasEisele
Gast





BeitragVerfasst am: Do Jul 10, 2008 11:22 am    Titel: Skript funktioniert nur in 90% der Fälle, was tun? Antworten mit Zitat

Hallo,

ich habe gestern angefange, mich mit AutoHotkey zu beschäftigen. Der Grund ist, dass meine Frau eine CD hat, mit der man Prüfungen simulieren will. Sie möchte nun aber die Fragen mit Antwortmöglichkeiten lieber ausgedruckt vor sich haben, damit sie realistischer üben kann. Das Skript soll also das Nötige kopieren und in Word wieder einfügen.

Nun zu den Problemen:
In wenigen Fällen wird die erste Frage nicht kopiert, sondern die zweite an Stelle der ersten und dann (korrekt) bei der zweiten eingefügt. Danach klappen alle weiteren Fragen problemlos.

Der Befehl
Code:
IfWinNotActive, Mediscript ,WinActivate, Mediscript
funktioniert nicht, mit Word hingegen schon (s. u. im vollständigen Skript).

Woran kann das liegen? Was mache ich falsch?

Vielen Dank für eure Hilfe.

Liebe Grüße,
Thomas

Hier mein kompettes Skript:
Code:
;GRUNDEINSTELLUNGEN SETZEN

;Der Programmtitel muss nicht exakt sein, sondern den angegebenen Namen nur enthalten
SetTitleMatchMode 2

;HINWEISE UND FRAGEN VOR DER BEARBEITUNG ABARBEITEN

;Darauf hinweisen, dass nur einmal Word geöffnet sein darf
MsgBox, Bitte alle Instanzen von Word außer der zu benutzenden schließen.
;Nach dem Fach fragen
InputBox, Fach, Fach, Welches Fach soll bearbeitet werden?
;Nach dem Physikum fragen
InputBox, Physikum, Physikum, Aus welchem Physikum stammen die Fragen?
;Nach der Originalfragenummer der ersten Frage fragen
InputBox, Originalfragenummer, Originalfragenummer, Bitte die Nummer der ersten Originalfrage eingeben
;Nach der Fragenanzahl fragen
InputBox, Fragenanzahl, Anzahl der Fragen, Wie viele Fragen sollen kopiert werden?


;DIE ÜBERSCHRIFT ERZEUGEN

;Microsoft Office Word auswählen
WinWait, Microsoft Word, MSO Generic Control
IfWinNotActive, Microsoft Word, MSO Generic Control , WinActivate, Microsoft Word, MSO Generic Control
WinWaitActive, Microsoft Word, MSO Generic Control
;Formatierung anpassen (größer, unterstreichen und fett)
Send, {CTRLDOWN}>{CTRLUP}
Send, {CTRLDOWN}{SHIFTDOWN}F{SHIFTUP}{CTRLUP}
Send, {CTRLDOWN}{SHIFTDOWN}U{SHIFTUP}{CTRLUP}
;Die Variable Fach als Überschrift einfügen
Send, %Fach%
;Ein Blank einfügen
Send, {SPACE}
;Die Variable Physikum als Überschrift einfügen
Send, %Physikum%
;Formatierung anpassen (größer, unterstreichen und fett) wieder rückgängig machen
Send, {CTRLDOWN}<{CTRLUP}
Send, {CTRLDOWN}{SHIFTDOWN}F{SHIFTUP}{CTRLUP}
Send, {CTRLDOWN}{SHIFTDOWN}U{SHIFTUP}{CTRLUP}
;Eine Leerzeile einfügen
Send, {RETURN 2}


;DIE FRAGEN UND ANTWORTMÖGLICHKEITEN, SOWIE DIE ORIGINALFRAGENNUMMER UND EINEN SEITENWECHSEL EINFÜGEN

;Eine Schleife ausführen, bis alle Fragen kopiert wurden
Loop %Fragenanzahl%

{

;Microsoft Office Word auswählen
WinWait, Microsoft Word, MSO Generic Control
IfWinNotActive, Microsoft Word, MSO Generic Control , WinActivate, Microsoft Word, MSO Generic Control
WinWaitActive, Microsoft Word, MSO Generic Control
;Formatierung anpassen (fett)
Send, {CTRLDOWN}{SHIFTDOWN}F{SHIFTUP}{CTRLUP}
;Die Variable Originalfragenummer einfügen
Send, %Originalfragenummer%
;Formatierung anpassen (fett) rückgängig machen
Send, {CTRLDOWN}{SHIFTDOWN}F{SHIFTUP}{CTRLUP}
;Eine Leerzeile einfügen
Send, {RETURN}

;Mediscript-CD GK1 auswählen
WinWait, Mediscript
;IfWinNotActive, Mediscript ,
WinActivate, Mediscript
WinWaitActive, Mediscript
;Den Zwischenspeicher leeren
clipboard =
;Frage und Antwortmöglichkeiten in den Zwischenspeicher kopieren
Send, {CTRLDOWN}c{CTRLUP}
;Warten bis wirklich etwas im Zwischenspeicher steht
ClipWait

;Microsoft Office Word auswählen
WinWait, Microsoft Word, MSO Generic Control
IfWinNotActive, Microsoft Word, MSO Generic Control , WinActivate, Microsoft Word, MSO Generic Control
WinWaitActive, Microsoft Word, MSO Generic Control
;Frage und Antwortmöglichkeiten einfügen
Send, {CTRLDOWN}v{CTRLUP}
;Auf eine neue Seite wechseln
Send, {CTRLDOWN}{Return}{CTRLUP}

;Mediscript-CD GK1 auswählen
WinWait, Mediscript
;IfWinNotActive, Mediscript ,
WinActivate, Mediscript
WinWaitActive, Mediscript
;Zur nächsten Frage weiterschalten
Send, {CTRLDOWN}n{CTRLUP}
;Die Variable Originalfragenummer um 1 erhöhen
Originalfragenummer := ++Originalfragenummer

}


;LÖSCHEN DER LETZTEN, LEEREN SEITE

;Microsoft Office Word auswählen
WinWait, Microsoft Word, MSO Generic Control
IfWinNotActive, Microsoft Word, MSO Generic Control , WinActivate, Microsoft Word, MSO Generic Control
WinWaitActive, Microsoft Word, MSO Generic Control
Send, {BACKSPACE 2}

;AUF DAS ENDE HINWEISEN

MsgBox, Der Kopiervorgang ist nun beendet.
Nach oben
Manni



Anmeldedatum: 25.09.2007
Beiträge: 33

BeitragVerfasst am: Do Jul 10, 2008 6:47 pm    Titel: Antworten mit Zitat

Hi Thomas,

Code:
IfWinNotActive, Mediscript ,WinActivate, Mediscript

Wird zu:

IfWinNotActive, Mediscript
WinActivate, Mediscript



Dann sollte es gehen.

Du kannst theortisch auch das IfWinNotActive weglassen.
Wenn das Fenster schon aktiv ist wird es halt nochmal aktivert, das dürfte keinen Unterschied machen

Gruß
Manni
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de