Habe nochmal etwas nachgetragen.
Super Dankeschön probiere ich mal aus.
Habe nochmal etwas nachgetragen.
Super Dankeschön probiere ich mal aus.
Guten Morgen Moombas,
Ohje - Dankeschön. Werde ich gleich mal ausprobieren.
Ich melde mich dann mal zurück.
Danke nochmal.
Hallo zusammen,
Was macht mein Programm:
1.Startet eine Excel von einem Server - Auf diesem Server haben alle Kollegen die gleichen Zugriffe wie ich auch
2.Führt ein Makro aus in der Excel (Mousemove - Click) und Öffnet eine Outlook Mail
3. Das Skript schreibt dann den Email Text (habe ich hier natürlich entfernt ) und einige Adressen ins CC
4. Das Skript Öffnet dann wieder die Excel und startet ein zweites VBA Makro
Das funktioniert alles super auf meinem Computer, nur sofern ich die AutoIt-Datei auf einem Computer meines Kollegen starte, bekomme ich folgende Fehlermeldung.
Kann sich das einer irgendwie erklären?
Was mich stutzig macht ist: Warum versucht er auf die Datei "Auftragsdaten und Positionen Automatisch.xlsm zu zu greifen? Ich habe davon nicht im AutoIt Code stehen?
So hieß die Datei ursprünglich mal. Habe es jedoch geändert in "Auftragsdaten und Position".
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=T:\Leitstand\23.Tornow\Projekte\Lunar\auto-lunar.kxf
$Form1 = GUICreate("auto-Lunar", 475, 196, 200, 140)
GUISetBkColor(0xFFFFFF)
$Pic1 = GUICtrlCreatePic("R:\Leitstand\Lunar_EH\auto-LUNAR\logo.jpg", 0, 0, 473, 121)
$Button1 = GUICtrlCreateButton("Start", 32, 128, 193, 49)
$Button2 = GUICtrlCreateButton("Beenden", 232, 128, 193, 49)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
Exit
Case $Button1
ShellExecute("R:\Leitstand\Lunar_EH\auto-LUNAR\Auftragsdaten und Positionen.xlsm")
WinWaitActive("Sicherheitshinweis für Microsoft Excel")
Send("a")
WinSetState("Auftragsdaten und Positionen.xlsm", "", @SW_MAXIMIZE)
Sleep(7000)
WinSetState("Auftragsdaten und Positionen.xlsm", "", @SW_MAXIMIZE)
Sleep(2000)
MouseMove(405, 16)
Sleep(500)
MouseClick("left")
MouseMove(150, 1003)
sleep(1000)
MouseClick("left")
Sleep(1000)
MouseMove(1254, 474)
MouseClick("left")
WinWaitActive("Lunar")
WinActivate("Lunar")
WinSetState("Lunar | Übersicht der Lieferungen je Liefertag Zentrallager (Datum Heute + Morgen) - Nachricht", "Lunar", @SW_MAXIMIZE)
MsgBox(64,"Outlook Nachricht geladen","Jetzt bitte keine Tastatureingaben machen.",0)
;Hier wird Der Body Text der E-Mail verfasst
Sleep(1000)
MouseMove(19, 374, 1)
MouseClick("left")
;Excel Öffnen
WinActivate("Auftragsdaten und Positionen.xlsm")
WinSetState("Auftragsdaten und Positionen.xlsm", "", @SW_MAXIMIZE)
;Excel Emails kopieren
Sleep(1500)
;Blatt auswählen
MouseMove(643, 1004)
Sleep(500)
MouseClick("left")
Sleep(1500)
MouseMove(177, 211)
Sleep(1500)
MouseClick("left")
Sleep(2500)
Send("{CTRLDOWN}c{CTRLUP}")
Send("{CTRLDOWN}c{CTRLUP}")
Send("{CTRLDOWN}c{CTRLUP}")
;zurück zur Nachricht
WinSetState("Auftragsdaten und Positionen.xlsm", "", @SW_MINIMIZE)
WinWaitActive("Lunar")
MouseMove(207, 194)
MouseClick("left")
Sleep(250)
Send("{CTRLDOWN}v{CTRLUP}")
;4000er Hinzufügen
Sleep(2000)
MouseMove(1993, 253)
Sleep(500)
MouseClick("left")
Send("emailadressen die hier eingefügt sind")
sleep(3000)
;Excel öffnen und letzte Makro ausführen
WinActivate("Auftragsdaten und Positionen.xlsm")
WinSetState("Auftragsdaten und Positionen.xlsm", "", @SW_MAXIMIZE)
MouseMove(1088, 1004)
Sleep(1000)
MouseClick("left")
MouseMove(228, 289)
Sleep(1000)
MouseClick("left")
EndSwitch
WEnd
Alles anzeigen
Okay Vielen Dank das hat mir sehr geholfen!
Dankeschön für eure Unterstützung!
Moin misterspeed,
tatsächlich ist mir das gar nicht aufgefallen.
Vielen Dank!
Ich werde morgen auf der Arbeit mal einen Blick in das Script werfen und schauen ob dass evtl. schon hilf.
Aber unabhängig von den Pids.
Sollte mein Script nicht prinzipiell funktionieren?
Mir ist aufgefallen dass mein Script maximal 3 Programme startet:
beispielsweise zum testen:
run("notepad.exe")
sleep(500)
run("calc.exe")
Sleep(500)
run("notepad.exe")
sleep(500)
run("notepad.exe")
Dann startet er nur Notepad -> Calc -> Notepad und das 4te Notepad wird nicht gestartet? Liegt hier nicht evtl. ein anderes Problem vor?
Super! Vielen Dank für deine Hilfe. Ich habe noch nie mit den Pids gearbeitet.
Werde mir das aber mal genau anschauen das sieht nach einen guten Ansatz aus.
Ja genau - Die Fenster Namen sind tatsächlich gleich bei den beiden Programmen.
Also sollte ich lieber über Runwait dann die PID benutzen statt den Fenster Namen.
Ich werde das mal ausprobieren.
Vielen Dank schonmal für deine Hilfe
;MFC
Run("X:\bin\mfc.exe")
WinWaitActive("Welcome to")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("Car Picking System - CPS Administration 2.1.0")
Ich kann da jetzt kein Copy+paste Fehler finden.
Aber soweit kommt das script garnicht. Das hört nach "LBS" auf und startet keine weiteren Programme.
Hallo zusammen,
Mein Ziel:
11 Windows .exe Programme hintereinander zu starten - Diese benötigen einen Benutzernamen und Passwort welche ich mir im Vorfeld aus den Input-Boxen auslese.
Mein Problem:
Nach genau 3 Programmen die er richtig ausführt inkl. Benutzername und Passwort, startet er keine weiteren Programme?
Woran liegt das? An den Befehlen kann es meiner Meinung nicht liegen da die ja 3 Programme im Vorfeld richtig gestartet haben?
Leider konnte ich im Forum nichts dergleichen finden.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Witron-Start", 245, 140, 339, 192)
$Input1 = GUICtrlCreateInput("Benutzername", 24, 16, 193, 21)
$Input2 = GUICtrlCreateInput("Passwort", 24, 40, 193, 21)
$Button1 = GUICtrlCreateButton("Start", 24, 64, 193, 33)
$Beenden = GUICtrlCreateButton("Beenden", 24, 104, 193, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Beenden
Exit
Case $Button1
$user = GUICtrlRead($Input1)
$pwd = GUICtrlRead($Input2)
;WVS
Run("X:\bin\wvs.exe")
WinWaitActive("Welcome to")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
WinWaitActive("WVS")
;CPS
Run("X:\bin\cps.exe")
WinWaitActive("Welcome to")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("Car Picking System - CPS Administration 2.1.0")
;LBS
Run("X:\bin\lbs.exe")
WinWaitActive("Welcome to")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("Logistic Bus System - LBS Administration 3.2.121")
;PCO-View
Run("X:\bin\.pcoview")
WinWaitActive("PCO View Login")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("bwms-app")
;Prodis
Run("X:\bin\pro_vb32.exe")
WinWaitActive("Welcome to")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("Protocol-Diagnosis-Information-System - Administration")
;qfiview
Run("X:\bin\qfiview.exe")
WinWaitActive("QFI View Login")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("QFIView")
;MFC
Run("X:\bin\mfc.exe")
WinWaitActive("Welcome to")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("Car Picking System - CPS Administration 2.1.0")
;AMS
Run("X:\bin\AMS.exe")
WinWaitActive("Log on AMS")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("AMS V2.10.7")
;BMIS
Run("X:\bin\BMIS.exe")
WinWaitActive("Log on BMIS")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(1500)
WinWaitActive("BMIS V2.15.0")
;AMdiShell
Run("X:\bin\AMdiShell.exe")
WinWaitActive("Login")
send($user)
send("{TAB}")
Send($pwd)
Sleep(1000)
Send("{ENTER}")
Sleep(3500)
WinWaitActive("*MdiShell V2.1.485.0")
Sleep(1000)
MsgBox($MB_SYSTEMMODAL, "Autostart", "Fertig!", 5)
Alles anzeigen
Würde mich über eure Tipps freuen