Powershell Click Event Taskleistensymbol
Hallo zusammen,
ich habe eine Frage.
In meinem Script habe ich eine Form über die alle Aufgaben laufen.
Zusätzlich habe ich eine weitere eigene Form als Log-Fenster.
Über ein Menu kann ich das Log-Fenster anzeigen, oder ausblenden.
Das funktioniert auch alles super.
Nun aber zu meiner Frage / meinem Problem.
Wenn die $Window Form beim Arbeiten z.B. hinter anderen Fenstern, Anwendungen, usw. verdeckt wird und ich diese über das Taskleistensymbol wieder auf die oberste Ebene auf den Desktop setze, bleibt die Log Form immernoch verdeckt.
In diesem Fall hätte ich gerne die beiden Forms verküpft, oder ähnliches , das auch die Log Form mit auf die oberste Ebene des Desktop zurück gesetzt wird.
Hierzu habe ich es z.B. mit .Activate(), und soweiter versucht. Ohne Erfolg.
Gibt es ein Event, an das ich über das Anklicken des Taskleistensymbols die Log Form steuern kann?
Dazu habe ich leider nicht wirklich was gefunden. Bin mir aber auch nicht ganz sicher nach welchem Begriff ich suchen muss.
Ich hoffe , dass es einigermaßen verständlich beschrieben ist.
Vielen Dank für Eure Unterstützung
Schöne Grüße
Markus
ich habe eine Frage.
In meinem Script habe ich eine Form über die alle Aufgaben laufen.
$Window = New-Object System.Windows.Forms.Form
$Window.Size = New-Object System.Drawing.Size([Math]::Round($BoundsWidth * (1000 / $BoundsWidth)),[Math]::Round($BoundsHeight * (600 / $BoundsHeight)))
$Window.StartPosition = $Hashtable.Forms.StartPosition
$Window.Font = $Hashtable.Forms.Front
$Window.Text = "Windows-Image Tool"
$Window.BackColor = $Hashtable.Forms.BackColor
$Window.ForeColor = $Hashtable.Forms.ForeColor
$Window.Opacity = $Hashtable.Forms.Opacity
$Window.Topmost = $false
$Window.ShowInTaskbar = $true
$Window.MaximizeBox = $false
$Window.MinimizeBox = $true
$Window.ControlBox = $true
$Window.Visible = $false
$Window.AutoSizeMode = $Hashtable.Forms.AutoSizeMode
$Window.FormBorderStyle = $Hashtable.Forms.FormBorderStyle
$Window.ShowIcon = $true
$Script:WindowLog = New-Object System.Windows.Forms.Form
$Script:WindowLog.Size = New-Object System.Drawing.Size([Math]::Round($BoundsWidth * (985 / $BoundsWidth)),[Math]::Round($BoundsHeight * (200 / $BoundsHeight)))
$Script:WindowLog.StartPosition = $Hashtable.Forms.Log.StartPosition
$Script:WindowLog.Font = $Hashtable.Forms.Log.Font
$Script:WindowLog.BackColor = $Hashtable.Forms.Log.BackColor
$Script:WindowLog.ForeColor = $Hashtable.Forms.Log.ForeColor
$Script:WindowLog.Opacity = $Hashtable.Forms.Log.Opacity
$Script:WindowLog.ShowInTaskbar = $false
$Script:WindowLog.MaximizeBox = $false
$Script:WindowLog.MinimizeBox = $false
$Script:WindowLog.ControlBox = $false
$Script:WindowLog.AutoSizeMode = $Hashtable.Forms.Log.AutoSizeMode
$Script:WindowLog.FormBorderStyle = $Hashtable.Forms.Log.FormBorderStyle
$Script:WindowLog.DataBindings.DefaultDataSourceUpdateMode = 0
$Script:LogInput = New-Object System.Windows.Forms.TextBox
$Script:LogInput.Location = New-Object System.Drawing.Size([Math]::Round($BoundsWidth * (10 / $BoundsWidth)),[Math]::Round($BoundsHeight * (10 / $BoundsHeight)))
$Script:LogInput.Size = New-Object System.Drawing.Size([Math]::Round($BoundsWidth * (960 / $BoundsWidth)),[Math]::Round($BoundsHeight * (180 / $BoundsHeight)))
$Script:LogInput.BackColor = $Hashtable.Forms.Log.BackColor
$Script:LogInput.ForeColor = $Hashtable.Forms.Log.ForeColor
$Script:LogInput.BorderStyle = $Hashtable.Forms.Log.BorderStyle
$Script:LogInput.Multiline = $true
$Script:LogInput.ReadOnly = $true
$Script:LogInput.ScrollBars = $Hashtable.Forms.Log.ScrollBars
$WindowLog.Controls.Add($Script:LogInput)
Über ein Menu kann ich das Log-Fenster anzeigen, oder ausblenden.
[void]$MenuLog.DropDownItems.Add(( Add-ToolStripMenuItem -ToolStripMenuItem "MenuLog_File_Show" -Image $Log -Text "&Show" -Alignment "Right" -Scope "Script" ))
$MenuLog_File_Show.Add_Click({
$Script:WindowLog.Visible = $false
$Window.Top = 20
$Window.Left = ($BoundsWidth / 2) - ($Window.Width / 2)
$Script:WindowLog.Show() | Out-Null
$Script:WindowLog.Top = $Window.Height + 15
$Script:WindowLog.Visible = $true
$Window.DataBindings.DefaultDataSourceUpdateMode = 0
})
[void]$MenuLog.DropDownItems.Add(( Add-ToolStripMenuItem -ToolStripMenuItem "MenuLog_File_Hide" -Image $Log -Text "&Hide" -Alignment "Right" -Scope "Script" ))
$MenuLog_File_Hide.Add_Click({
$Script:WindowLog.Visible = $false
$Window.Top = ($BoundsHeight / 2) - ($Window.Height / 2)
$Window.Left = ($BoundsWidth / 2) - ($Window.Width / 2)
$Window.DataBindings.DefaultDataSourceUpdateMode = 0
})
[void]$MenuLog.DropDownItems.Add(( Add-ToolStripMenuItem -ToolStripMenuItem "MenuLog_File_Remove" -Image $Delete -Text "&LogFile" -Alignment "Right" -Scope "Script" ))
Nun aber zu meiner Frage / meinem Problem.
Wenn die $Window Form beim Arbeiten z.B. hinter anderen Fenstern, Anwendungen, usw. verdeckt wird und ich diese über das Taskleistensymbol wieder auf die oberste Ebene auf den Desktop setze, bleibt die Log Form immernoch verdeckt.
In diesem Fall hätte ich gerne die beiden Forms verküpft, oder ähnliches , das auch die Log Form mit auf die oberste Ebene des Desktop zurück gesetzt wird.
Hierzu habe ich es z.B. mit .Activate(), und soweiter versucht. Ohne Erfolg.
Gibt es ein Event, an das ich über das Anklicken des Taskleistensymbols die Log Form steuern kann?
Dazu habe ich leider nicht wirklich was gefunden. Bin mir aber auch nicht ganz sicher nach welchem Begriff ich suchen muss.
Ich hoffe , dass es einigermaßen verständlich beschrieben ist.
Vielen Dank für Eure Unterstützung
Schöne Grüße
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 562380
Url: https://administrator.de/contentid/562380
Ausgedruckt am: 24.11.2024 um 11:11 Uhr
2 Kommentare
Neuester Kommentar
Moin Markus,
funktioniert bei mir wunderbar.
Gruß Thomas
Zitat von @Markus2016:
Nun aber zu meiner Frage / meinem Problem.
Wenn die $Window Form beim Arbeiten z.B. hinter anderen Fenstern, Anwendungen, usw. verdeckt wird und ich diese über das Taskleistensymbol wieder auf die oberste Ebene auf den Desktop setze, bleibt die Log Form immernoch verdeckt.
In diesem Fall hätte ich gerne die beiden Forms verküpft, oder ähnliches , das auch die Log Form mit auf die oberste Ebene des Desktop zurück gesetzt wird.
Hierzu habe ich es z.B. mit .Activate(), und soweiter versucht. Ohne Erfolg.
Activate() ist schon richtig, hast du denn bei deiner Window-Form auch entsprechend das Activated-Event genutzt?Nun aber zu meiner Frage / meinem Problem.
Wenn die $Window Form beim Arbeiten z.B. hinter anderen Fenstern, Anwendungen, usw. verdeckt wird und ich diese über das Taskleistensymbol wieder auf die oberste Ebene auf den Desktop setze, bleibt die Log Form immernoch verdeckt.
In diesem Fall hätte ich gerne die beiden Forms verküpft, oder ähnliches , das auch die Log Form mit auf die oberste Ebene des Desktop zurück gesetzt wird.
Hierzu habe ich es z.B. mit .Activate(), und soweiter versucht. Ohne Erfolg.
$Window.Add_Activated({$Script:WindowLog.Activate()})
Gruß Thomas