Hallo Forumsmitglieder,
erstmal Respekt und Robustheit.
Dann meine PowerShell Zeilen:
---
---
Jetzt mein Anliegen:
Die Variable die ich Anlege zwischen den Rautezeilen [lCODE]$TrueImageTools[/ICODE] erkennt den Prozess richtig. Tehoretisch könnte ich mir die ID und den Namen des Prozesses geben lassen, was ich aber praktisch nicht in der Zeile [lCODE][Microsoft.VisualBasic.Interaction]::AppActivate(“$TrueImageTools”)[/ICODE] anstelle des roten Textes verarbeiten kann. Im Fehlerbericht seitens der Powershell heist es dazu:
Was ich bisher versucht habe:
Den Fenstertitel anstelle der Variablen einzutragen. Doch der offensichtliche funktiniert nicht. Dann den nicht ganz so offensichtlichen versucht nämlich "system_cleanup", "System_Cleanup", "SystemCleanup", "Systemcleanup", "systemcleanup".
Wie kann ich den richtigen Fenstertitel ermitteln?
Kann mir dazu bitte jemand ein Besipiel in Codezeilen geben?
Wie bekomme ich es hin, dass TrueImageTools in den Vordergrund kommt?
Was eine Lösung sein könnte, wäre das ich versuche die Prozess-ID an eine oder mehrere C#-Zeilen zu übergeben. Allerdings bekomme ich das ohne hilfe nicht hin. Da ich keine C# kenntnisse habe und auch PowerShell-Technisch mich eher als Anfänger sehe. Meine Inspiration habe ich was C# angeht von Microsoft.
Ich habe keine Ahnung wie ich C#-Klassen in die Powershell einbinden kann.
Hat jemand Rat und Besipiele wie ich das machen kann?
erstmal Respekt und Robustheit.
Dann meine PowerShell Zeilen:
---
Code:
# PowerShell ausführung erlauben
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine -Force
# Biende Klassen mit ein
add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
# Starte Prozess an den die Tasteneingaben übergeben werden sollen
Start-Process -WindowStyle Maximized -FilePath "C:\Program Files (x86)\Acronis\TrueImage2014\TrueImageHome\TrueImageTools.exe" -ArgumentList /system_cleanup -LoadUserProfile
Ist ein Test-Prozess der sich nach dem erssten Prozess öffnen soll um den ersten Prozess dann in den Vordergrund zu holen
Start-Process -WindowStyle Maximized -FilePath "C:\Program Files\Notepad++\notepad++.exe"
# Räumt den Prozessen Zeit ein sich zu Starten
Start-Sleep -Seconds 5
#############################
# Lege Variable an die den Prozess identifiziert
$TrueImageTools = get-process * | ?{$_.WindowTitle -like '*Systembereinigung*'} # Gibt den richtigen Prozess aus, wenn ich ihn über die Variable "$TrueImageTools"abfrage
#############################
# Prozess in den Vordergrund holen
[Microsoft.VisualBasic.Interaction]::AppActivate(“$TrueImageTools”) # An dem Punkt hängt es. Das Fenster kommt nicht in den Vordergrund.
# Der untenstehede Kommentierteblock funktioniert zumindest in Notepad. Hier werden die Tasten als Eingabe wiedergegeben.
<#
[System.Windows.Forms.SendKeys]::SendWait(“Test”)
Wait-Event -Timeout 3
[Microsoft.VisualBasic.Interaction]::AppActivate(“notepad”)
[System.Windows.Forms.SendKeys]::SendWait("{TAB}Z1")
Wait-Event -Timeout 3
[Microsoft.VisualBasic.Interaction]::AppActivate(“notepad”)
[System.Windows.Forms.SendKeys]::SendWait("{DOWN}D1")
Wait-Event -Timeout 3
[Microsoft.VisualBasic.Interaction]::AppActivate(“notepad”)
[System.Windows.Forms.SendKeys]::SendWait("{UP}U2")
Wait-Event -Timeout 3
[Microsoft.VisualBasic.Interaction]::AppActivate(“notepad”)
[System.Windows.Forms.SendKeys]::SendWait("{LEFT}L1")
Wait-Event -Timeout 3
[Microsoft.VisualBasic.Interaction]::AppActivate(“notepad”)
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}E2")#>
Jetzt mein Anliegen:
Die Variable die ich Anlege zwischen den Rautezeilen [lCODE]$TrueImageTools[/ICODE] erkennt den Prozess richtig. Tehoretisch könnte ich mir die ID und den Namen des Prozesses geben lassen, was ich aber praktisch nicht in der Zeile [lCODE][Microsoft.VisualBasic.Interaction]::AppActivate(“$TrueImageTools”)[/ICODE] anstelle des roten Textes verarbeiten kann. Im Fehlerbericht seitens der Powershell heist es dazu:
Code:
[Microsoft.VisualBasic.Interaction]::AppActivate(“TrueImageTools”)
Ausnahme beim Aufrufen von "AppActivate" mit 1 Argument(en): "Der Prozess TrueImageTools wurde nicht gefunden."
Was ich bisher versucht habe:
Den Fenstertitel anstelle der Variablen einzutragen. Doch der offensichtliche funktiniert nicht. Dann den nicht ganz so offensichtlichen versucht nämlich "system_cleanup", "System_Cleanup", "SystemCleanup", "Systemcleanup", "systemcleanup".
Wie kann ich den richtigen Fenstertitel ermitteln?
Kann mir dazu bitte jemand ein Besipiel in Codezeilen geben?
Wie bekomme ich es hin, dass TrueImageTools in den Vordergrund kommt?
Was eine Lösung sein könnte, wäre das ich versuche die Prozess-ID an eine oder mehrere C#-Zeilen zu übergeben. Allerdings bekomme ich das ohne hilfe nicht hin. Da ich keine C# kenntnisse habe und auch PowerShell-Technisch mich eher als Anfänger sehe. Meine Inspiration habe ich was C# angeht von Microsoft.
Ich habe keine Ahnung wie ich C#-Klassen in die Powershell einbinden kann.
Hat jemand Rat und Besipiele wie ich das machen kann?
Zuletzt bearbeitet: