anbei das Bild!
Beiträge von cobain86
-
-
habs heute auch mal mit "SEND" probiert
auch keine abhilfe
der Send wir erst nachdem ich die Messagebox per maus betätigt habe durchgeführt.
sprich solange die box offen ist läuft das autoIT script nicht -
Einfach mit ControlClick() auf den "OK"-Button klicken.
Mit dem AutoIt Window Info Tool bekommst du die nötigen Daten zusammen. Einfach Strg+F6 in SciTEdas hab ich ja auch schon probiert
[autoit]
leider kein erfoglControlClick("Meldung von Webseite", "", "[CLASS:Button; TEXT:OK; Instance:1;]")
[/autoit] -
sorry für den fehlpost.
hmm leider auch mit Attach keine abhilfe -
irgendwie zerhaut mir hier die website bzw. mein browser den code
Spoiler anzeigen
2
3
4
5
6
7
8
9
10#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <IE.au3>Global $ntpServer = '0.de.pool.ntp.org' ; NTP-Server zum synchronisieren der Uhrzeit über das Internet
Dim $i = 0
Dim $wartezeit = 2$oIE = _IECreate("http://www.wer-kennt-wen.de")
;Prüfen ob ein Objekt erzeugt wurde;warten bis die Seite komplett geladen wurde
_IELoadWait($oIE)
;Erzeugen eines HTML-Formular-Objekts mit Hilfe des Formularnamens
$oForm = _IEFormGetObjByName($oIE, "loginform")
;Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnames
$oUsername = _IEFormElementGetObjByName($oForm, "loginName")
;Setzen des Formularfeldinhalts
_IEFormElementSetValue($oUsername, "Username hier eintragen")
;Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnames
$oPasswd = _IEFormElementGetObjByName($oForm, "password")
;Setzen des Formularfeldinhalts
_IEFormElementSetValue($oPasswd, "Passwort hier eintragen")
;Absenden des Formulars
_IEFormSubmit($oForm);warten bis die Seite komplett geladen wurde
_IELoadWait($oIE)
;alte einträge löschen
_IEImgClick($oIE, "Eintrag löschen", "alt");hier soll das Poup mit der Meldung geschlossen werden
If WinExists("Microsoft Internet Explorer", "") Then
WinActivate("Microsoft Internet Explorer", "")
Send("{TAB}{ENTER}")
Endif -
Moin Moin
ich arbeite gerade an einem kleinen script welches mir bei WKW meine alten einträge löscht.
Also den lösch button und anmelden klappt super. nur nach dem betätigen des Buttons kommt eine MessageBox ob man wirklich lsöchen möchte.
Diese kann ich leider nicht ansprechen. habs schon mehrfach mit Control send und Send probiert, leider keine abhilfeWundert euch nicht über die libs oder sonstige zusatz sachen, gehört zu nem anderen projekt
Anbei mal das Script
[autoit]#include <ButtonConstants.au3>#include <EditConstants.au3>#include <GUIConstantsEx.au3>#include <StaticConstants.au3>#include <WindowsConstants.au3>#include <Date.au3>#include <IE.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]
Global $ntpServer = '0.de.pool.ntp.org' ; NTP-Server zum synchronisieren der Uhrzeit über das InternetDim $i = 0Dim $wartezeit = 2$oIE = _IECreate("http://www.wer-kennt-wen.de");Prüfen ob ein Objekt erzeugt wurde
[/autoit][autoit][/autoit][autoit]
;warten bis die Seite komplett geladen wurde_IELoadWait($oIE);Erzeugen eines HTML-Formular-Objekts mit Hilfe des Formularnamens$oForm = _IEFormGetObjByName($oIE, "loginform");Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnames$oUsername = _IEFormElementGetObjByName($oForm, "loginName");Setzen des Formularfeldinhalts_IEFormElementSetValue($oUsername, "Hier Username eintragen");Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnames$oPasswd = _IEFormElementGetObjByName($oForm, "password");Setzen des Formularfeldinhalts_IEFormElementSetValue($oPasswd, "Hier PAsswort eintragen");Absenden des Formulars_IEFormSubmit($oForm)
;warten bis die Seite komplett geladen wurde_IELoadWait($oIE);alte einträge löschen_IEImgClick($oIE, "Eintrag löschen", "alt")If WinExists("Microsoft Internet Explorer", "") Then WinActivate("Microsoft Internet Explorer", "") Send("{TAB}{ENTER}")Endif
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]anbei das bild von der Message Box(habs auch schon über die Titel probiert aber leider nix)
-
danke hat geklappt
jetz gibt er mir aus was in CLASS steht (also "countMe resetMe") weil so heißt ja die classe.
hmm aber ich kann immernochnichts ins Textfeld schreiben lassen.
oder muss ich das array dann mit _IEFormElementSetValue ansprechen? wobei da müsst er doch den classennamen ändern wollen oder?
ich möchte ja per autoIt etwas auf der Website in dem bereich der Classe(also in das textfeld der website) was reinschreiben und nich nur lesen.
-
da passiert nix.
nichtmal die message box erscheint.
muss ich den classennamen noch irgendwo angeben?
-
also wie ich ID#s von website über AutoIT anspreche weiß ich ja, aber geht das auch mit Klassen?
ich habe nämlich 2 gleiche ID's (wobei die erste auf HIDDEN gestellt wird und nur durch die class untershieden wird.
<p>
<labelfor="jn_text">Test?</label><textareaclass="countMe resetMe" id="jn_text" name="body" rows="2" cols="62"></textarea>
</p>
ich möchte mit AutoIT aber die Textarea mit der Class CountMe und der ID jn_text(die ja gleich ist wie bei label) ansprechen. wenn ich jedoch nur die ID anspreche nimmt er mir nur label.
-
hi
ich baue mir gerade ein tool welches übers inernet die aktuelel uhrzeit holt und anzeigt und ab einer bestimmten sekunde bsp. 37 und 50 einen zähler hochzählt.
jedoch zählt der zähler nur 1x hoch und danach nicht mehr. ich weiß nicht genau warum
!!!gelöst! es fehlte bei der Abfrage ein $i +1 anstaatt nur +1
anbei mal der code
[autoit]#cs ----------------------------------------------------------------------------
[/autoit]
AutoIt Version: 3.3.6.0
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <IE.au3>
Global $ntpServer = '0.de.pool.ntp.org' ; NTP-Server zum synchronisieren der Uhrzeit über das Internet
Dim $i = 0
Dim $wartezeit = 2
#Region ### START Koda GUI section ### Form=c:\users\steven\desktop\autoit projekt\hauptseite.kxf
$Form1_1 = GUICreate("Zeitkommentar", 268, 383, 192, 124)
$quit_btn = GUICtrlCreateButton("Quit", 144, 96, 75, 25, $WS_GROUP)
$Save_btn = GUICtrlCreateButton("Speichern", 48, 96, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Countdown:", 48, 40, 178, 17)
$Label2 = GUICtrlCreateLabel("Aktuelle Zeit:", 48, 16, 178, 17)
$Edit1 = GUICtrlCreateEdit("tee", 40, 152, 193, 193)
$Label3 = GUICtrlCreateLabel("Wartezeit:", 48, 64, 52, 17)
$wartezeit_inp = GUICtrlCreateInput(" ", 120, 64, 73, 21)
GUICtrlSetData(-1, "3")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
AdlibRegister("_timer", 1000)
AdlibRegister("_TimeSync", 600)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
AdlibUnRegister("_TimeSync")
AdlibUnRegister("_timer")
Exit
Case $quit_btn
AdlibUnRegister("_TimeSync")
AdlibUnRegister("_timer")
Exit
Case $Save_btn
Save()
MsgBox(0, "Test", "Die Wartezeit wurde auf " & $wartezeit & " Gesetzt")
EndSwitch
WEnd
Func Save()
$wartezeit = GUICtrlRead($wartezeit_inp)
EndFunc ;==>Save
;hier Beginnt der Durchlauf Counter
Func _timer()
$sek = StringRight(_TimeSync(), 2)
If $sek = 30 or $sek = 50 Then
$i = +1
If $i = $wartezeit Then
_IECreate("www.google.com", 1, 1, 0);hier muss die Funktion rein die dann nach ablauf ausgeführt werden soll
$i = 0
EndIf
EndIf
GUICtrlSetData($Label1, "Countdown: " & $i)
EndFunc ;==>_timer
Func _TimeSync()
UDPStartup()
Dim $socket = UDPOpen(TCPNameToIP($ntpServer), 123)
;$status = UDPSend($socket, MakePacket('1b0e010000000000000000004c4f434ccb1eea7b866665cb00000000000000000000000000000000cb1eea7b866665cb'))
Local $status = UDPSend($socket, MakePacket('1b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'))
Local $data = '', $a = TimerInit() ; Timer setzen, damit im Fehlerfall die Schleife abgebrochen wird
While $data = ''
$data = UDPRecv($socket, 100)
Sleep(100)
If TimerDiff($a) > 1000 Then ExitLoop ; Wenn Timer > 1sek. (Fehler), dann Schleife verlassen
WEnd
If $data <> '' Then
UDPCloseSocket($socket)
UDPShutdown()
Local $unsignedHexValue = StringMid($data, 83, 8); Extract time from packet. Disregards the fractional second.
Local $value = UnsignedHexToDec($unsignedHexValue)
Local $TZinfo = _Date_Time_GetTimeZoneInformation()
Local $TZoffset = -(UnsignedToLong($TZinfo[1]) + (UnsignedToLong($TZinfo[4]) * ($TZinfo[0] < 2)) + (UnsignedToLong($TZinfo[7]) * ($TZinfo[0] = 2)))
Local $UTC = _DateAdd('s', $value, '1900/01/01 00:00:00')
Sleep(100)
;Return _DateAdd('n',$TZoffset,$UTC)
$uhr = StringSplit(_DateAdd('n', $TZoffset, $UTC), " ")
GUICtrlSetData($Label2, "Aktuelle Zeit: " & $uhr[2])
Return $uhr[2]
EndIf
EndFunc ;==>_TimeSync
Func MakePacket($d)
Local $p = ''
While $d
$p &= Chr(Dec(StringLeft($d, 2)))
$d = StringTrimLeft($d, 2)
WEnd
Return $p
EndFunc ;==>MakePacket
Func UnsignedHexToDec($n)
Local $ones = StringRight($n, 1)
$n = StringTrimRight($n, 1)
Return Dec($n) * 16 + Dec($ones)
EndFunc ;==>UnsignedHexToDec
Func UnsignedToLong($value)
Local Const $OFFSET_4 = 4294967296
Local Const $MAXINT_4 = 2147483647
If $value < 0 Or $value >= $OFFSET_4 Then Return SetError(1, 0, $value) ;' Overflow
If $value <= $MAXINT_4 Then
Return $value
Else
Return $value - $OFFSET_4
EndIf
EndFunc ;==>UnsignedToLong