 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
ThomasEisele Gast
|
Verfasst am: Do Jul 10, 2008 11:22 am Titel: Skript funktioniert nur in 90% der Fälle, was tun? |
|
|
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
|
Verfasst am: Do Jul 10, 2008 6:47 pm Titel: |
|
|
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 |
|
 |
|
|
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
|