BugFix Achte im Auto darauf, dass das Handy nicht in der Sonne ist - das bringt bei mir auch schon eine Menge bezüglich der Temperatur
Beiträge von BananaJoe
-
-
Meinst Du so etwas?
AutoIt$aArray = StringSplit('192.168.10.99|mein PC;192.168.10.99|NAS;192.168.10.99|dein PC;192.168.10.99|Server', ';') $sPattern = '(DNS|Gateway|Server|NAS)$' For $i = 0 To UBound($aArray) - 1 ; nur NAS und Server ist im Pattern und im Array If StringRegExp($aArray[$i], $sPattern) = 1 Then ConsoleWrite($aArray[$i] & @CRLF) EndIf Next
-
Meinst Du ConstrolSend bzw. ControlSetText?
-
Schau Dir mal ToolTip in der Hilfe an. Das ist einfach. Du kannst Dir z.B. anzeigen lassen, was gerade gemacht wird (kopiere Datei $xy).
So siehst Du durch die Veränderung der Anzeige, dass das Programm noch läuft.
-
Ich bin sehr daran interessiert, denn ich mache derzeit die Browserautomation mit UI Automation
Ich habe mir da auch schon eine UDF geschrieben, um die Redundanzen zu vermeiden. Darum bin ich auf die Alternativer WebDriver gespannt.
-
SOLVE-SMART Hier kommt ein kleiner Motivationsschub inklusive ein paar Snacks.
@Rest: Sorry für OT
-
OK, zu langsam...
-
Run ('F:\test\summatraPDF.exe "F:\ich werde gezeigt.pdf"')
Setze um die " (doppelten Anführungszeichen) die ' (einfachen Anführungszeichen)
-
$sRow &= $sRow & $aData[$i][$j] & "|" ; mit | als TrennzeichenWenn verknüpfen
sollte eher
$sRow &= $aData[$i][$j] & "|" ; mit | als TrennzeichenWenn verknüpfen
sein
Ja natürlich - das kommt von C&P ohne Korrekturlesen....
-
ändere mal
$sRow = $sRow & $aData[$i][$j] & "|" ; mit | als TrennzeichenWenn verknüpfen
in
$sRow &= $sRow & $aData[$i][$j] & "|" ; mit | als TrennzeichenWenn verknüpfen
(also mach aus = ein &= )
-
Peter S. Taler Danke für Deine Einschätzung
-
Peter S. Taler was hältst Du von dem Boden? https://www.berlin-parkett.de/Enia-Nauders
BugFix Sorry für das Kapern - wir renovieren auch gerade...
-
Probier mal das in Zeile 17: Global $Liste = _ArrayToString($aTest, @CRLF)
-
Mach einmal einen MouseMove() zu den Koordinaten, um zu sehen, ob diese überhaupt stimmen.
Evtl. macht Dir die Skalierung einen Strich durch die Rechnung.
-
..., dass der Speicher am Ende in jedem Fall per free() wieder freigeräumt wird ...
das machen jetzt angeblich die modernen Betriebssysteme von selbst.
Ich habe noch gelernt, auf jeden fall free() zu verwenden und auch mit valgrind zu prüfen, ob das alles sauber erfolgt ist - aber das ist scheinbar mittlerweile überholt
-
Aus der Hilfe zu ControlSend:
Function ControlSend
ControlSend ( "title", "text", controlID, "string" [, flag = 0] )
Du hast keine controlID. Dein Befehl müsste so ausschauen:ControlSend("Anmeldeassistent", "", "<hier muss die controlID rein>", "{ENTER}")
controlID: Da schreibst du das rein, was Du in Au3Info unter Advanced (Class) bekommst: z.B. "[CLASS:Scintilla; INSTANCE:1]"
ACHTUNG: In meinem Beispiel steht die controlID von SciTE drin - da musst Du Deine einsetzen, also nicht [CLASS:Scintilla... übernehmen. Wenn Du gar nicht klarkommst, dann schick einen Screenshot von Au3Info
-
Schau mal, ob Du damit den Inhalt des Feldes lesen kannst:
Du muss aber TfrmKaufmannMain durch die Klasse des Fensters ersetzen - oder alternativ das [CLASS:TfrmKaufmannMain] durch den Fensternamen.
ControlGetText("[CLASS:TfrmKaufmannMain]", "", "[CLASS:OFormSub; INSTANCE:2]")
und dann schau, ob Du mit
ControlSetText ( "[CLASS:TfrmKaufmannMain]", "", "[CLASS:OFormSub; INSTANCE:2]", "new text") etwas hineinschreiben kannst - hier gilt das gleiche für [CLASS:TfrmKaufmannMain]
-
Hallo TottoW,
ich habe vor vielen Jahren mal Sage mit AutoIt automatisiert.
Ich weiß nicht, ob es da Änderungen an der Oberfläche gegeben hat, aber da konnte man alle Felder sauber identifizieren und direkt ansprechen.
Schau Dir in dem Zusammenhang mal Controlsend, ControlSetText und ControlClick an.
-
Many people put an underscore at the beginning of user-defined functions to disginguish them from built-in functions:
Quelle: https://www.autoitscript.com/forum/topic/23…ng-conventions/
-
Schau mal, ob es das ist, was Du suchst:
AutoIt
Alles anzeigen#include <Excel.au3> Opt("MustDeclareVars", 1) Exit (_Main() = 0 ? MsgBox(16, '', 'Programm mit Fehler beendet') : MsgBox(0, '', 'Programmende', 1)) Func _Main() Local $sFile = @ScriptDir & '\MyExcelFile.xlsx' ; <===== hier den Dateinamen einsetzen Local $oExcel = _Excel_Open() If @error Then Return SetError(1, 0, MsgBox(16, '_Excel_Open', '@error: ' & @error) * 0) If Not IsObj($oExcel) Then Return SetError(1, 1, MsgBox(16, '_Excel_Open', '$oExcel is not an Obj') * 0) Local $oWorkbook = _Excel_BookOpen($oExcel, $sFile) If @error Then Return SetError(2, 0, MsgBox(16, '_Excel_BookOpen', '@error: ' & @error) * 0) If Not IsObj($oWorkbook) Then Return SetError(2, 0, MsgBox(16, '_Excel_BookOpen', '$oWorkbook is not an Obj') * 0) ; damit kann man sich den Usernamen anzeigen lassen Local $sUsername = $oWorkbook.Application.UserName MsgBox(0, 'Username', $sUsername) ; alten Wert auslesen und anzeigen Local $sAuthor = $oWorkbook.BuiltinDocumentProperties("Author").Value MsgBox(0, 'Author', $sAuthor) ; neuen Wert setzen $oWorkbook.BuiltinDocumentProperties("Author").Value = "Neuer User" ; <===== hier den Namen eingeben ; neuen Wert anzeigen lassen $sAuthor = $oWorkbook.BuiltinDocumentProperties("Author").Value MsgBox(0, 'Author', $sAuthor) ; damit kann man sich "zuletzt geändert von" anzeigen lassen $sAuthor = $oWorkbook.BuiltinDocumentProperties("Last author").Value MsgBox(0, 'Last author', $sAuthor) _Excel_BookClose($oWorkbook, True) ; speichern nicht vergessen If @error Then Return SetError(3, 0, MsgBox(16, '_Excel_BookClose', '@error: ' & @error) * 0) _Excel_Close($oExcel) If @error Then Return SetError(4, 0, MsgBox(16, '_Excel_Close', '@error: ' & @error) * 0) Return SetError(0, 0, 1) EndFunc ;==>_Main
Ich lasse noch zusätzlich ein paar andere Werte anzeigen, wenn Du das nicht brauchst, dann einfach entfernen