UEZ,
bei mir kommt das:
Audio_Init OK. Aufnahme startet fuer 5000 ms in 0.5 Sekunden...
AAC-Frames geschrieben: 0
Gesamtbytes : 0
ASC (2 Bytes): [11 90]
gruß gmmg
UEZ,
bei mir kommt das:
Audio_Init OK. Aufnahme startet fuer 5000 ms in 0.5 Sekunden...
AAC-Frames geschrieben: 0
Gesamtbytes : 0
ASC (2 Bytes): [11 90]
gruß gmmg
@Elias29, BananaJoe Danke euch für die Info.
Bisher habe ich keine Probleme mit de rneuen Version festgestellt.
Hallo Sven,
habe mal die v.3.3.18.0 installiert und schaue mal ob mir etweas auffällt.
Danke für deine Info.
VG Marcel
Hallo AspirinJunkie,
im Post #8 stehenden Forumslink geht es weiter. Als ich für dieses Thema was getestet hatte, ist mir aufgefallen, dass "calc.exe" nicht die korrekte Prozess ID direkt nach dem starten liefert.
Hallo Zusammen,
ich würde hier zumachen und auf den folgenden Post verweisen. Dort geht es ja im Beispiel um das konkrete Problem, dass bei bestimmten Programmen die PID nicht gelesen wird.
Danke
Gruß Marcel
Hab's oben nochmal den quelltext angepasst. so bekomme ich die Pids.
Wie prüfst du denn die Pids, wenn du immer nur $pid erstellst? Weiter unten greifst du dann auf die $iPID zu.
Bei der Calc.exe heißt der Process dann auch "CalculatorApp.exe"
$pid = ProcessExists("CalculatorApp.exe")
so kommen die korrekten PID's
;Global $Programm[2][3] = [[2, "C:\Windows\System32\notepad.exe", "C:\Windows\System32\calc.exe"]]
Global $Programm[2][3] = [[2, "notepad.exe", "calc.exe"]]
Global $killSwitch = False
If Check_Programs() then Loop()
Func Check_Programs()
Local $pid, $pidNotepad, $pidcalc
For $i = 1 to $Programm[0][0]
MsgBox(0,"",$Programm[0][$i])
;$pid = ProcessExists("CalculatorApp.exe")
;$pid = ProcessExists("notepad.exe")
If ($Programm[0][$i]) = "notepad.exe" Then
MsgBox(0,"","test")
If $pidNotepad = 0 Then Run($Programm[0][$i])
Sleep(1500)
$pidNotepad = ProcessExists("notepad.exe")
Consolewrite($Programm[0][$i] & ": " & $pidNotepad & @CRLF)
If $pidNotepad = 0 Then Return False
EndIf
$pidcalc = ProcessExists($Programm[0][$i])
If $Programm[0][$i] = "calc.exe" Then
If $pidcalc = 0 Then Run($Programm[0][$i])
Sleep(1500)
$pidcalc = ProcessExists("CalculatorApp.exe")
Consolewrite($Programm[0][$i] & ": " & $pidcalc & @CRLF)
If $pidcalc = 0 Then Return False
EndIf
;Consolewrite($Programm[0][$i] & ": " & $pidNotepad & @CRLF & $pidcalc)
Sleep(2000)
;$Programm[1][$i] = _WinActivatePID($pid)
Next
Return True
EndFunc
Alles anzeigen
Moombas hört sich nach meinem Problem an. Da hatte ich bei der Calc.exe auch das Problem.
Eventuell hilft es weiter
Schnuffel , danke ich prüfe weiter
Kommt mir auch komisch vor, dass es machmal nicht geht.
So funktioniert es bei mir auch, lasse ich das Sleep weg, kommt auch ein 0 Wert zurück. Scheinbar braucht die Anwendung zu lange oder das Scxript ist zu schnell.
Ich muss das Thema nochmal aufgreifen. Auch am anderen PC geht das nicht immer, wenn ich es mehrfach hintereinander starte.
Gruß Marcel
mit dem Beispiel kannst du ja auch probieren:
HotKeySet("{ESC}", "KillAll")
Opt("WinTitleMatchMode", 2)
$pid1 = ""
$pid2 = ""
$pid1 = ProcessExists("mspaint.exe")
;MsgBox(0,"",$pid1,2)
If $pid1 = 0 Then
Run("mspaint.exe")
$pid1 = ProcessExists("mspaint.exe")
EndIf
;MsgBox(0,"",$pid1,5)
$pid2 = ProcessExists("CalculatorApp.exe")
;MsgBox(0,"",$pid2,2)
If $pid2 = 0 Then
Run("calc.exe")
Sleep(1500)
$pid2 = ProcessExists("CalculatorApp.exe")
EndIf
;MsgBox(0,"",$pid2,5)
; Warten bis Fenster existieren
WinWait("[CLASS:MSPaintApp]")
WinWait("Rechner")
While 1
; --- Notepad ---
If ProcessExists($pid1) And WinExists("[CLASS:MSPaintApp]") Then
WinActivate("[CLASS:MSPaintApp]")
WinWaitActive("[CLASS:MSPaintApp]")
Sleep(5000)
EndIf
; --- Calculator ---
If ProcessExists($pid2) And WinExists("Rechner") Then
WinActivate("Rechner")
WinWaitActive("Rechner")
Sleep(5000)
EndIf
Sleep(200)
WEnd
Func KillAll()
If ProcessExists($pid1) Then ProcessClose($pid1)
If ProcessExists($pid2) Then ProcessClose($pid2)
Exit
EndFunc
Alles anzeigen
AspirinJunkie habe jetzt mal einen anderen PC genommen, da geht es auch.
Ich mache den PC jetzt einfach mal neu.
Danke fürs testen.
Hallo Zusammen,
benutzt jemand schon die Autoit 3.3.18.0 Version?
Gibt es da bekannte Probleme?
Gruß Marcel
Hallo Zusammen,
ich wollte für einen anderen Post hier im Forum ein Beispiel erstellen und dabei ist mir aufgefallen, dass ich bei Win11, wenn ich den integrierten Rechner öffne und mir die PID mit ProcessExists ausgeben will, hier nichts zurück kommt, mit ProcessList geht es aber.
Mache ich da einen Fehler?
Local $aProcessList = ProcessList("CalculatorApp.exe")
For $i = 1 To $aProcessList[0][0]
ConsoleWrite(@CRLF & $aProcessList[$i][0] & @CRLF & "PID: " & $aProcessList[$i][1]) ; funktioniert
Next
$pidCalc = ProcessExists("CalculatorApp.exe")
ConsoleWrite(@CRLF & "PID: " & $pidCalc & @CRLF) ; funktioniert nicht
Gruß Marcel
das ist dein Post dazu bei "Gute Frage"
Ein einfaches Beispiel:
HotKeySet("{ESC}", "KillAll")
Run("notepad.exe")
Run("calc.exe")
While 1
WinActivate("Rechner")
Sleep(5000)
WinActivate("Unbenannt")
Sleep(5000)
WEnd
Func KillAll()
WinClose("Rechner")
WinClose("Unbenannt")
Exit
EndFunc
Alles anzeigen
Gruß Marcel
Hallo Peter,
falls du Outlook benutzt, da lässt sich sicher was mit der Outlook UDF machen.
Gruß Marcel
Hallo Sven,
danke und vor allem wünsche ich dir auch eine schöne Weihnachtszeit.
Gruß Marcel
Hallo Sven,
ich habe den Updateprozess jetzt einfach per ini Versionsabfrage umgesetzt.
Diese ini liegt einmal auf dem Server und lokal auf dem PC.
Gruß Marcel
Hallo Sven, wir nutzen auch noch MS Access DB ![]()