Beiträge von Stilgar
-
-
Mit diesen F5-Sende-Zeugs könntest du dir IE.au3 auch sparen. Wie wärs denn mit sowas:
[autoit]#include <IE.au3>
[/autoit][autoit][/autoit][autoit]
HotKeySet("{ESC}", "Terminate")$oIE = _IECreate ("www.jappy.de")
[/autoit][autoit][/autoit][autoit]
$hWND = _IEPropertyGet($oIE, "hwnd")
WinSetState($hWND, @SW_MAXIMIZE)While True
[/autoit][autoit][/autoit][autoit]
Sleep(500000)
_IEAction($oIE, "refresh")
WendFunc Terminate()
[/autoit]
Exit 0
EndFunc -
-
-
Zitat
was mache ich falsch bitte um Hilfe
Einiges
Mit dem hier:
ShellExecute("Jappy - Deine Online Community - Windows Internet Explorer")
gibst du Win die Anweisung "irgendwas" mit dem Text "Jappy - Deine Online Community - Windows Internet Explorer" zu machen.Anschließend schickst du F5 an "irgendein" aktives Fenster.
Eine URL kannst du zwar mit ShellExecute aufrufen, dabei wird allerdings der Standardbrowser verwendet. Also je nachdem auf welchem Rechner du:
ShellExecute("http://suchmaschine.internet")
aufrufst, startet der IE oder FireFox, Chrome, Opera, Amaya, Netscape, Flock, Iron ...Einfachste Methode:
http://www.ieaddons.com/en/details/Time_Savers/PowerRefresh/Oder die IE.au3 verwenden, damit kannst du gezielt den IE ansprechen.
-
Wie wärs mit den Funktionen:
http://www.autoitscript.com/forum/index.php?showtopic=95850&view=findpost&p=689060bzw. du mußt das Ergebnis von StringReplace auch weiterverarbeiten:
[autoit]$1 = StringReplace($1,"%2f","/")
[/autoit]
$1 = StringReplace($1,"%3f","?")
$1 = StringReplace($1,"%3d","=") -
_FFIsConnected funktioniert nur nach einem _FFConnect oder _FFStart und prüft ob schon eine Verbindung hergestellt wurde.
Ob FF schon läuft mußt du anderst testen (wie eben z.B. in __FFStartProcess).
Irgendwas in der Art wie:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
; ....
Func _Start()
Local $PID = Run("z:\firefox.exe -repl 4040")Local $iTimeOutTimer = TimerInit()
[/autoit]
While 1
Sleep(2000)
If ProcessExists($PID) Then ExitLoop
If (TimerDiff($iTimeOutTimer) > $iTimeOut) Then
ConsoleWrite( "Error: Browser process not exists: " & "firefox.exe " & $PID)
Return 0
EndIf
WEnd
Sleep(1000)
Return 1
EndFunc
; ... -
In FF findest du die passenden Informationen am einfachsten mit dem AddOn FireBug.
Oder auch mit dem FF-Page-Analyzer (siehe Sig)Es gibt keine Lösung die für beide Browser gleichermaßen geht, du mußt jeweils für beide ein anderes Programm bzw. anderen Programmteil schreiben.
Alle anderen "Lösungen" führen manchmal eher zu zufallsgenerierten Ergebnissen. -
Stimmt _FFStart geht damit nicht.
Eine Pfadangabe kannst du nirgends setzen.Starte FF einfach per Run evtl. mit dem MozRepl-Parameter "-repl Portnummer" z.B.:
Run("z:\firefox.exe -repl 4040)
Anschließend eine Schleife die wartet bis FF sicher gestartet ist und dann mit _FFConnect verbinden.
Einfach mal die Funktion __FFStartProcess in der FF.au3 ansehen.
-
Hallo,
du stellst bei FF-portable/MozRepl eine andere Port-Nummer ein und gibst diese bei _FFConnect bzw. _FFStart an.
Viele Grüße
Stilgar -
-
Hatte da noch was rumliegen:
Spoiler anzeigen
[autoit]Global $a[3][3] = [['1','2','3'],['1.1','1.2','1.3'],['2.1','2.2','2.3']]
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite(_ArrayToHTMLTable($a,true,false))
[/autoit] [autoit][/autoit] [autoit]; #FUNCTION# ===================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _ArrayToHTMLTable
; Description ...: Creates a HTML-table from a 2dim-array
; AutoIt Version : V3.3.0.0
; Syntax ........: _ArrayToHTMLTable(ByRef $aArray[, $bHeader = True[, $bBorder = True[, $sStyle = 'width:100%']]])
; Parameter(s): .: $aArray -
; $bHeader - Optional: (Default = True) :
; $bBorder - Optional: (Default = True) :
; $sStyle - Optional: (Default = width: 100%) : StyleSheet
; Return Value ..: Success - string
; Failure - empty string
; @ERROR -
; Author(s) .....: Thorsten Willert
; Date ..........: Wed Jul 01 18:07:39 CEST 2009
; Version .......: 1.0
; ==============================================================================
Func _ArrayToHTMLTable(ByRef $aArray, $bHeader = True, $bBorder = True, $sStyle = 'width:100%')
Local $iD1 = UBound($aArray,1)
If @error Then
SetError(1)
Return ''
EndIf
Local $iD2 = UBound($aArray,2)
If @error Then
SetError(1)
Return ''
EndIfLocal $sTable = ""
[/autoit] [autoit][/autoit] [autoit]
If $sStyle <> '' Then $sStyle = ' style="' & $sStyle & '"'
$sStyle &= '>'If $bBorder Then
[/autoit] [autoit][/autoit] [autoit]
$sTable &= '<table border="1"'
Else
$sTable &= '<table'
EndIf
$sTable &= $sStyle & @CRLFLocal $iStart = 0
[/autoit] [autoit][/autoit] [autoit]
If $bHeader Then
$iStart = 1
$sTable &= '<tr>' & @CRLF
For $i = 0 To $iD2 -1
$sTable &= @TAB & '<th>' & $aArray[0][$i] & '</th>' & @CRLF
Next
$sTable &= '</tr>' & @CRLF
EndIfFor $i = $iStart To $iD1 -1
[/autoit] [autoit][/autoit] [autoit]
$sTable &= '<tr>' & @CRLF
For $j = 0 To $iD2 -1
$sTable &= @TAB & '<td>' & $aArray[$i][$j] & '</td>' & @CRLF
Next
$sTable &= '</tr>' & @CRLF
Next$sTable &= '</table>' & @CRLF
[/autoit] [autoit][/autoit] [autoit]Return $sTable
[/autoit]
EndFunc ;==> _ArrayToHTMLTabledie Rückgabe ist allerdings keine vollwertige HTML-Datei sondern nur die Tabelle. Zeigt allerdings jeder Browser auch so an.
-
Mit kompliziert meinte ich eher "umständlich"
Nachdem du Seite mit _IECreate aufgerufen hast, den Seitenquelltext auf die Fehlermeldung hin durchsuchen:
[autoit]$sText = _IEBodyReadText($oIE) ; damit hast du alles was auf der Interseite steht in der Variablen $sText
[/autoit]
; sobald der Text "Fehlermeldung" nun dort drinsteht, erscheint die MsgBox
If StringInStr($sText,"Fehlermeldung") Then MsgBox(64,"Fehler", "Seite konnte nicht geladen werden")OK - zu spät
-
Ich habe auch keine Ahnung - vor allem ist IE so kompliziert
Dann such einfach auf der Seite per _IEBodyReadText und StringInsStr die Fehlermeldung.
-
Hallo,
doch Inputs können sogar über Namen, IDs, Class und Index angesprochen werden, nur eben nicht mit den "normalen" AutoIt Befehlen, dafür brauchst du die IE.au3 oder FF.au3
Und fokusieren usw. wird damit auch überflüssig da z.B. Werte direkt gesetzt werden können.[EDIT]
[autoit]
z.B. web-Suche mit FireFox:#include <FF.au3>
[/autoit][autoit][/autoit][autoit]If _FFStart("www.clusty.com") Then
[/autoit]
$sSuchbegriff = "autoit"
_FFSetValueByName("query", $sSuchbegriff)
_FFFormSubmit()
EndIfGrüße
Stilgar -
Ist es denn wirklich notwendig so allgemeine "Fachbegriffe" zu übersetzen?
Ich kenn das von eingedeutschten Programmen wo dann aus "Shadern" plötzlich "Schattierer" und ähnliche Merkwürdigkeiten wurden, so daß man gerne wieder auf die englische Oberfläche umgeschalten hat, weil man einfach nichts mehr fand.
Ähnlich würde es mir hier dann auch gehen mit: "Kontrollkästchen"
Vor allem wird es dann auch nicht gerade einfacher bei "einer Suchmaschine seiner Wahl" nach dem Begriff zu suchen, wenn mal mehr darüber wissen möchte. (Kontrollkästchen ca. 1500, CheckBox ca. 9.250.000 Treffer)Auch wenn die Hilfe für Leute gedacht ist, die entweder des Englischen nicht so mächtig sind, oder eben einfach nur lieber auf deutsch lesen, eine Übersetzung der Fachbegriffe macht eine Vertiefung zum Thema evtl. schwerer, da man diese erst wieder ins Englische übersetzen müßte um mehr darüber zu erfahren.
Das Programmieren macht es vielleicht auch nicht gerade einfacher wenn man z.B. von "Kontrollkästchen" und "CheckBox" in einem Atemzug spricht.
Grüße
Stilgar -
Ein "Update" - das nicht Rede wert ist: zusätzlich einen Tooltip dazugebastelt.
[EDIT]
Wer nach dem kompilieren der au3 eine komische Meldung beim Starten der exe bekommt:
"Unable to open the Script file"
sollte, bevor er den Kompiler anwirft, evtl. AntiViren oder sonstige Schutzprogramme ausmachen. Die scheinen den vermeindlichen Virus gleich mal zu reparieren und dadurch ist das Ergebnis vom AutoIt-Kompiler Müll .Genaueres habe ich nach langem suchen im englischen Forum nicht entdeckt, das Problem ist aber kein Einzelfall:
Unable to open the script fileEine a3x hingegen funktioniert immer.
-
Thread ausbuddel ...
Obwohl das Problem teilgelöst ist - dies trat bei folgender Funktion der FF.au3 auf:
Spoiler anzeigen
[autoit]Func __FFValue2JavaScript(ByRef $sValue)
[/autoit] [autoit][/autoit] [autoit]
If $sValue = "" Then Return ""
Local $sTmp = "", $C$sValue = StringRegExpReplace($sValue, "([\\""'])", "\\$1")
[/autoit] [autoit][/autoit] [autoit]
$sValue = StringReplace($sValue, @CRLF, "\n")
$sValue = StringReplace($sValue, @CR, "\r")
$sValue = StringReplace($sValue, @TAB, "\t")If StringRegExp($sValue, "[^\x00-\x7F]",0) Then
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To StringLen($sValue)
$C = StringMid($sValue,$i,1)
If StringRegExp($C, "[^\x00-\x7F]",0) Then $C = StringFormat("\\u%0000s",Hex(AscW($C),4))
$sTmp &= $C
Next
$sValue = $sTmp
EndIfReturn $sValue
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>__FFValue2JavaScript
[/autoit]wenn das Script das die Funktion aufrief nicht in UTF-8 gespeichert war, was natürlich schwer vorherzusehen ist.
Oder auch: Gibt es einen Weg herauszufinden wie der übergebene String kodiert ist? -
V0.5.3.8b:
- Added: _FFDispatchEvent($sElement, $sEventType = "change")
$sElement = Element or Object from _FFXpath and _FFObj*
$sEventType = change|select|focus|blur|resize
- Added: _FFDispatchKeyEvent: Now you can use as $sElement objects from _FFXpath and _FFObj*, too
- Added: Opt("TCPTimeOut", $_FF_CON_DELAY) to _FFConnect() / for connections over networks
- Added: JavaScript: FFau3.fireEvent(oObj,sEventType)
- Added: _FFTableWriteToArray: $iFilter-parameter
- Changed: _FFObj: Now creates an attribute instead of throwing a message that it doesn't exists
- Changed: _FFDispatchKeyEvent: Changed default event-type from keydown to keypress
- Changed: _FFTableWriteToArray: Complete new, much faster then the old version
- Changed: _FFFrameEnter now returns 1/0 and @extended = index of the entered frame
- Fixed: Error in _FFWindowGetHandle (=> _FFWindowSelect, _FFStart ...) with non ASCII-titles
- Fixed: Error in _FFFormSubmit
- Fixed: Error by sending ' as value
- Fixed: Error in _FFFrameEnter when selecting frame by idDokumentation ist noch nicht angepaßt!!!
Viel Spaß damit!
Stilgar -
Wieder was zum Testen V0.5.3.8b-4:
http://thorsten-willert.de/Themen/FFau3/Testversion/FF.au3
* _FFTableWriteToArray komplett neu geschrieben:
[autoit]_FFTableWriteToArray([$vTable = 0[, $sMode = "index"[, $sReturnMode = "text"[, $iFilter = 0[, $bTransponse = False]]]]])
[/autoit]- Parameter $iFilter eingebaut (zum Filtern von Texten - siehe unter anderem in der Dokumentation bei _FFXPath)
- Geschwindigkeit um Faktor 5-50 (und evtl mehr) gesteigert je nach Tabellentyp und Größe.
Tabellen mit sehr vielen rowspan und colspan Attributen werden immer noch relativ langsam verarbeitet, während Tabellen ohne diese Attribute und mit einem großen Breiten/Längen (oder umgekehrt) Verhältnis sehr schnell verarbeitet werden, da nun eine Spalte/Zeile mit einer Anweisung ausgelesen wird.
Ist leider Aufgrund der Kommunikationsart nicht mehr wesentlich zu steigern, außer durch eine Komplettlösung in JavaScript.* Dynamische Anpassung des "TCPTimeOut" in _FFConnect
* Fehler in _FFFormSubmit behoben
* Fehler beim Senden/Setzen des Zeichens ' als "value" behoben