Leider hast du kein Bild gepostet wie denn das Programm aussieht. Aber bei Ribbonbar denk ich dass der Button den du drücken willst wahrscheinlich auch ein Icon besitzt. relativ gut funktioniert dann Imagesearch, dafür gibt es irgendwo eine Dll und eine *.au3. Ist leider nicht im Standard von Autoit enthalten. Aber damit solltes du den Button suchen können und gezielt an die richtige Stelle klicken lassen.
Beiträge von Bitboy
-
-
Hallo zusammen,
weiß jemand wie man einen Multiline String einschließlich Leerzeichen an ein Powershell Script übergibt.
Einschließen des String in " bzw ' hat nciht geholfen.Im Powershellscript verwende ich $args[x]. Allerdings wird für Jedes Leerzeichen ein eigenes Array Element erstellt. Ich will aber den kompletten String in einem Feld haben.
Aufruf in AutoIt sieht so aus: RunWait('powershell.exe -noexit -NonInteractive -NoProfile -Command "&{' & @ScriptDir & '\Skript.ps1 ' & $Mailadress & ' "' & $Message & '" ; exit $lastexitcode}"', @ScriptDir)
Die Variable $Message enthält dieleerzeichen und die Return-Zeichen. -
Respekt. Das sieht nach verdammt viel Arbeit aus.
Und nochmal Respekt, dass du auch den Quellcode zum Download anbietest.Leider erhalte ich den selben Fehler den Autolaser schon beschrieben hat.
==> Error opening the file.:
> Test.au3 -> Exit Code: 1 (Laufzeit: 0.54 sec) -
Ginge auch noch kürzer wenn du für jedes münzereignis einen aufruf mit dem wert der Münze erstellst.
Bei service_Out machst du einen negativen wert.Würde dann etwa so aussehen:
If $cmdline[1] < 0 then
FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&"0"&@TAB&$CmdLine[1]*(-1))
Else
FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&$CmdLine[3]&@TAB&"0")
Endif -
Als Alternative könntest du mal versuchen die Datei per wget (externes programm) herunterzuladen.
-
Hast du denn einen Text in der Messagebox wenn du meine Variante von oben versuchst?
-
Seltsam, funktioniert bei mir auch ohne Probleme und auch ohne Adminrechte.
Versuch es mal so:
[autoit]Global $PID, $Ret = ""
[/autoit][autoit][/autoit][autoit]
;$PID = Run('"' & @ComSpec & '" /c quser', '', @SW_HIDE, 0x2 + 0x4)
$PID = Run(@WindowsDir & "\system32\quser.exe", '', @SW_HIDE, 0x2 + 0x4)
While 1
$Ret &= StdoutRead($PID) & StderrRead($PID)
If @error Then ExitLoop
WEndMsgBox(0, "", $Ret)
[/autoit] -
Ich hätte einen Vorschlag was du versuchen könntest.
Anstatt dem 2. Skript nimmst du psexec um das eigentliche Skript im Benutzerkontext auszuführen.
Zusätzlich gibst du psexec den Parameter "-i 0" mit, das bewirkt das das Programm auf der Konsole 0 (dem Desktop)
ausgeführt wird. ob das in Verbindung mit Diensten klappt weiß ich leider nciht, wäre aber einen Versuch wert. -
Eine einfache Variante ist das Umwandeln der einzelnen Zeichen anhand der ASCII-Tabelle in Hexadezimalwerte.
Die bestehen nur aus 0-9 und ABCDEF. Damit sollte es keine Übertragungsprobleme geben.
Leider wird allerdings auch die Datenmenge verdoppelt. -
Schau mal hier im Forum, es gibt eine UDF für active directory abfragen.
Bei den dort verwendeten funktionen müsstest du einen fehlercode zurückbekommen.bei ping hast du die möglichkeit den timeout wert festzulegen. Standard ist 4000ms also 4 sekunden.
im LAN (ping auf dc) solltest du auf zeiten von 10ms oder weniger kommen.
ein ping($IP, 30) sollte also ausreichend sein für einen verbindungstest. -
Dass die Schlichtung nur wenig bringen kann, war leider vorherzusehen.
Der Schlichterspruch ist eine reine Empfehlung, aber nie und nicht rechtlich bindend.Die Bahn hatte bereits die Genehmigung zu bauen. Die Bahn war nie bereit das Projekt aufzugeben.
Selbst wenn Herr Geißler gesagt hätte, dass es gestoppt werden muss, hätte die Bahn wohl weitergebaut.
Dadurch wäre meiner Meinung nach die Lage völlig eskaliert, die Bürger wären sich nur noch verar.... vorgekommen.Herr Geißler hatte also nur die Chance soviele Zugeständnisse wie möglich für die Projektgegner rauszuholen und die kritischsten Argumente gegen das Projekt abzumildern (Park/Bäume schützen, Stresstest, verbesserte Behindertenfreundlichkeit....)
Hoffentlich bringt es was für die Zukunft. Dann wäre es doch ein Erfolg gewesen.
-
Besorg dir mal das Programm Scriptomatic für AutoIt.
Win32_Printer liefert deutlich mehr Informationen als Oscar verwendet hat. Vllt Kannst du über Printerstatus, PrinterState oder die Errorinformationen ableiten welcher angeschlossen ist. -
Soweit ich weiß ist es nicht möglich die Größe des Monitors zu bestimmen.
Da ist noch ein Thread über Monitorinformationen: [ offen ] GetMonitor-Funktion testenNetzwerkdrucker müsstest du anhand des Namens oder des Anschlusses aussortieren können.
-
Nur als Ergänzung:
Bin grade dabei mit ControlGetFocus zu experimentieren. [ offen ] Name eines angeklickten Steuerelements ermitteln
Nach meinem Skript hat das Bestätigungsfeld den Classname "Button5" -
Habe folgenden Code:
Spoiler anzeigen
[autoit]If _IsPressed("01", $dll) Then
[/autoit] [autoit][/autoit] [autoit]
$NewWinTitle = WinGetTitle("[active]")
If $NewWinTitle <> $WinTitle Then
$WinTitle = $NewWinTitle
FileWrite (@DesktopDir & "\Test.txt", 'WinWait(' & $WinTitle & ', "")' & @CRLF & 'Sleep(2000)' & @CRLF)
EndIf
$WinText = WinGetText($WinTitle)
$Control = ControlGetFocus ($WinTitle , "")
$ControlText = ControlGetText($WinTitle , "", $Control)FileWrite(@DesktopDir & "\Test.txt", ';"' & $ControlText & '" wird angeklickt' & @CRLF)
[/autoit]
FileWrite(@DesktopDir & "\Test.txt", 'ControlClick(' & $WinTitle & ', "", ' & $Control & ')' & @CRLF)
EndIfJe nach Steuerelement liefert $Control = ControlGetFocus ($WinTitle , "") nichts oder nichts brauchbares zurück. Das AutoIt Window Info zeigt die Controls aber korrekt an.
Als Beispiel sei das Programm TeamViewer genannt. Dort wird "TeamViewer Panel (minimiert)" als Steuerelement zurückgegeben wenn auf die Combobox oder die Optionsfelder nach dem Programmstart geklickt wird. -
Aus dem Stehgreif würde ich sagen, das geht nicht, es ist schließlich ein MikrofonEINGANG und kein Ausgang.
-
Ich geb dir mal 2 Stichwörter:
Arduino
Autoit Serial Port
Für nur eine LED zum leuchten zu bringen ist die Möglichkeit aber etwas übertrieben.
-
Vllt hilft dir das weiter:
Zitat:
Port für einen x-beliebigen Drucker erstellen
cscript %systemroot%\system32\prnport.vbs -a -r IP_10.0.0.20 -h 10.0.0.20 -o raw -n 9100Port einem Drucker zuweisen
rundll32 printui.dll,PrintUIEntry /Xs /n "HP Color Laserjet 4600" portname "IP_10.0.0.20"Quelle: https://www.benutzer.de/index.php?content=73078
Optionen zur Druckerinstallation: http://www.spotlight-wissen.de/archiv/message/1710204.html
-
Ich denke das Problem sind die Fenster Titel die alle gleich sind.
Der Controlclick für die letzte checkbox wird also eventuell schon ausgeführt bevor das Fenster überhaupt da ist.
Versuche mal den 2. Parameter von WinWait zu nutzen um das Fenster eindeutig zu identifizieren.
-
Wenn du die IP von dem Drucker weißt, kannst du ihn doch direkt auf dem Terminalserver installieren, ohne Umweg über den Printserver.
Ich glaub ich hab das Problem aber auch noch nicht richtig verstanden.