Hallo!
Hast du überhaupt eine Install-O-Matic und die mit dem Manager auf die Festplatte kopiert?
peethebee
Hallo!
Hast du überhaupt eine Install-O-Matic und die mit dem Manager auf die Festplatte kopiert?
peethebee
Hallo!
Bei SciTE sind ein oder zwei Makrorekorder dabei, deren Qualität allerdings nicht besonders berauschend ist.
Wenn es möglich ist, könntest du dich mal per ICQ oder Skype melden, vielleicht kann ich was für dich tun.
peethebee
Bitte sehr, wir helfen gerne .
Wäre nett, wenn du noch das Endergebnis hier oder da posten würdest.
Danke,
peethebee
Ja, für StdOutRead brauchst du die Beta-Version.
Eigentlich sollte sich keine Funktion verschlechtert haben von der stabilen bis zur Beta-Version. uf den ersten Blick in die aktuelle Hilfe lässt sich auch nichts derartiges festestellen.
Woran scheitert es denn genau, kannst du das herausfinden?
peethebee
Hallo!
Wozu braucht man WinWait/WinWaitActive?
Nun, man kann eben nie sicher sein, ob sich nicht ein anderes Fenster in den Vordergrund gemogelt hat (z.B. Virenscanner, Firewall, Windows, Fehlermeldungen, ...).
Deshalb schaut man erst noch mal nach, ob das Fenster da ist (WinWait; in deinem Fall nicht nötig/möglich, da alle Fenster gleich heißen), dann holt man es in den Vordergrund (WinActivate) und wartet bis es im Vordergrund "angekommen" ist (WinWaitActive). Dann - und eigentlich nur dann - kann man SICHER sein, dass man mit dem Fenster im Vordergrund agiert - egal wie viele Firewalls an sind ;-).
Den Rest des Skriptes hast du ganz richtig verstanden.
peethebee
Hallo!
Wieso sollten Consts speicherlastiger sein?
Da weiß das Skript doch vorher die Größe und muss nicht Speicher "vorreservieren"...
peethebee
Gute Nacht.
Welche Variante hat denn geklappt?
WEnne s dei mit Sleep war und es nur ein "Fensterwechsel" ist, also intern eigentlich nichts passiert, sondern nur zum nächsten Datenabfrageschiritt im Assistenten weitergeschaltet wird, sollte Sleep mit 3 Sekunden wirklich überall funktinieren...
Anders gehen tut es meistens
Edit: Habe deinen Denkfehler von oben bemerkt. Das Sleep muss nicht so lange sein, wie die ganze Installation dauert, sondern nur so lange, bis das Fenster aktiv ist, in dem du mit !f "Fertig" anklicken willst.
Edit 2: Habe meinen Denkfehler bemerkt, Der rechnerabhängige Teil der Installation geht dazwischen ab. Sleep ist also schlecht - sorry.
peethebee
Ja, aber eine Minute ist auch auf langsamen Rechnern unrealistisch oder kopiert er in dem Schritt dazwischen alle Dateien?
peethebee
Hallo!
Sorry, hast mich falsch verstanden, glaube ich (schlecht ausgedrück?)...
Hier die beiden Punkte:
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
*********************************************
WinWaitActive ( "RealPlayer Installationsassistent", "Standart-Medien-Player - Bitte aufmerksam lesen")
*********************************************
ToolTip("Das zweite Fenster wurde erkannt")
Send("!F")
... zum Testen, ob es an WinWaitActive scheitert.
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
*********************************************
Sleep(3000)
*********************************************
Send("!F")
... um einfach 3 Sekunden zu warten.
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
*********************************************
WinWait ( "RealPlayer Installationsassistent", "Standart-Medien-Player - Bitte aufmerksam lesen")
WinActivate ( "RealPlayer Installationsassistent", "Standart-Medien-Player - Bitte aufmerksam lesen")
WinWaitActive ( "RealPlayer Installationsassistent", "Standart-Medien-Player - Bitte aufmerksam lesen")
*********************************************
Send("!F")
Alles anzeigen
... die "IOM"-Technik
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
*********************************************
WinWaitActive ( "RealPlayer Installationsassistent", "Standart-Medien-Player - Bitte aufmerksam lesen")
*********************************************
Send("{TAB 1}{ENTER}")
... Gun-Foods Idee, evtl die Zahl hinter Tab nach Bedarf vergrößern.
peethebee
p.s. bin um 22:00 wieder online
Hallo!
Nun, das ist wirklich etwas tricky. Was gehen könnte, ist etweder Dr. Galvanys Vorschlag oder einfach den WinWait-Befehl durch ein Sleep(3000) beispielsweise zu ersetzen.
Ist zwar etwas riskant, das Sleep, aber wenn es lang genug ist, dann sollte es gehen.
peethebee
Hi!
@Dr. Galvany:
In dem Fall hilft das aber nichts, weil du ja zwei exakt gleiche Fenster hast, und damit nicht zuverlässig sagen kannst, welches manipuliert wird.
Edit:
Könnte doch gehen, wenn man das erste Fenster nach seinem Erscheinen direkt umbenennt - könnte man mal versuchen.
peethebee
Hallo!
Idealerweise kopiert man die Fensterdaten (Titel und Text) aus dem AU3 Window Info Tool (zu finden unter C:\Programme\Autoit3).
Stadard schreibt man im Deutschen meines Wissens mit weichem D - wenn das auch Real Networks weiß, könnte hier der Fehler liegen...
peethebee
p.s. Kleiner Tipp aus der Install-O-Matic:
; Installation Realplayer "silent" starten
RunWait('"' & @ScriptDir & '\RealPlayer10-5GOLD_de.exe" -s')
Allerdings fehlt dann die Kontrolle was er wo hininstalliert und natürlich das tolle Erlebnis, wie AutoIt alles simuliert, ohne das man am PC sitzen muss (es aber voller Bewunderung doch tut )
Hallo!
Sieht schon mal gar nicht schlecht aus für ein erstes Skript.
Was du noch ändern solltest, wäre folgendes:
ist eine sehr unsichere Funktion für so etwas, weil sich nur die Auflösung ändern oder das Fenster ein bisscehn verschoben sein muss, damit dieser Befehl und damit höchstwahrscheinlich auch das ganze Skript fehlschlägt.
Deshalb lieber mit Send oder ControlCommand arbeiten.
peethebee
Hallo!
Nach der Installation sollte es z.B. mit ControlSetText oder Send gehen.
Wenn du uns dein bisheriges Skript zeigst, können wir noch besser helfen.
peethebee
Hallo!
Der einzige Unterschied scheint mir zu sein, dass die Zeilenumbrüche bei INetGet anders dargestellt werden, sodass sie in Notepad als Vierecke erscheinen.
Ich weiß es nicht genau, aber ich denke, dass man mit der UDF-Funktion,die Text innerhalb einer Datei ersetzt einfach @CR (oder @LF) durch @CRLF ersetzen muss.
peethebee
Vielleicht solltest du die Probleme mit SciTE mal im offiziellen Forum melden, wenn sie dort noch nicht gemeldet sind im Bug-Reoprt-Forum.
http://www.autoitscript.com/forum/index.php?
peethebee
Hi!
Verstehen tue ich das schon, aber kannst du evtl. mal zwei Beipsieldateiene dazu posten?
Kann mir im Moment nicht vorstellen, dass es da einen Unterschied geben soll...
peethebee
Hallo!
Aus der Install-O-Matic:
; Festellen, ob die Maus innerhalb eines angegebenen Bereiches ist, um einen MouseOver-Effekt zu simulieren
Func _MouseOver($_mo_x, $_mo_y, $_mo_width, $_mo_height)
; Mauspositoin auslesen...
$_mo_pos = MouseGetPos()
; ...und dann auswerten
If ($_mo_pos[0] > $_mo_x) and ($_mo_pos[0] < $_mo_x + $_mo_width) and ($_mo_pos[1] > $_mo_y) and ($_mo_pos[1] < $_mo_y + $_mo_height) Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>_MouseOver
Alles anzeigen
Man könnte auch die ID des Controls übergeben lassen und dann mit Control(Get)Pos die Position selbst rausfinden.
Der Code muss natürlich in der Endlosschleife stehen.
peethebee
Hallo!
Schau dir doch einfach mal eines der Installationsskripte aus der Install-O-Matic auf der CD/DVD an. So in etwa musst du dann auch vorgehen:
erst mit Run() das Programm starten,
dann jeweils mit WinWait(), WinActivate(), WinWaitActive() auf das Fenster warten und
mit Send(), ControlClick() oder ControlCommand() in dem Fenster agieren.
Hilfreich ist die Hilfe ( ), sowie SciTE als Editor:
http://autoit.aufwaerts.de/thread.php?threadid=15&sid=
Viel Erfolg,
peethebee