Guten Tag Community
Ich habe folgendes Problem: Ich programmiere gerade ein Programm, dass dauerhaft seinen Platz am rechten/linken Bildschirmrand einnehmen soll (ähnlich dem ICQ-Fenster, dass man ja auch "solid" an eine Ecke setzen kann und dann alle anderen Fenster verschiebt!
Ich bin bei meiner Suche auf folgendes gestoßen, allerdings hilft mir das so nicht weiter, da ich ja nicht alle Fenster die der Benutzer hat einzeln verschieben will!
Ich stelle mir das so vor!
Eine Überlegung, die ich gemacht habe war: Eine horizontal niedrigere Bildschirmauflösung simulieren, dass alle Programme maximal bis zu einem gewissen Punkt gehen, aber dann verschiebt sich ja auch die Taskleiste!
Ich hoffe, ihr könnt mir helfen!
Gruß, Jonas
Ich habe folgendes Problem: Ich programmiere gerade ein Programm, dass dauerhaft seinen Platz am rechten/linken Bildschirmrand einnehmen soll (ähnlich dem ICQ-Fenster, dass man ja auch "solid" an eine Ecke setzen kann und dann alle anderen Fenster verschiebt!
Ich bin bei meiner Suche auf folgendes gestoßen, allerdings hilft mir das so nicht weiter, da ich ja nicht alle Fenster die der Benutzer hat einzeln verschieben will!
VB.NET-Quellcode
- Public Class Form1
- Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal hWndInsertAfter As Int32, ByVal x As Int32, ByVal y As Int32, ByVal cx As Int32, ByVal cy As Int32, ByVal wFlags As Int32) As Int32
- Const SWP_NOSIZE As Int32 = &H1
- Const SWP_NOMOVE As Int32 = &H2
- Const SWP_NOZORDER As Int32 = &H4
- Const SWP_NOACTIVATE As Int32 = &H10
- Const SWP_DRAWFRAME As Int32 = &H20
- Const SWP_SHOWWINDOW As Int32 = &H40
- Const SWP_HIDEWINDOW As Int32 = &H80
- Const HWND_TOPMOST As Int32 = -1 'bringt ein fenster an die oberste stelle
- Const HWND_NOTOPMOST As Int32 = -2 'bringt ein fenster an die unterste stelle eines containers
- Const HWND_BOTTOM As Int32 = 1 'bringt ein fenster an die unterste position aller fenster
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Process.Start("Notepad.exe")
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim p() As Process = Process.GetProcessesByName("Notepad")
- If p.Length > 0 Then
- SetWindowPos(p(0).MainWindowHandle, HWND_TOPMOST, 10, -10, 0, 0, SWP_NOSIZE) ' Or SWP_NOMOVE)
- End If
- End Sub
- End Class
Ich stelle mir das so vor!
Eine Überlegung, die ich gemacht habe war: Eine horizontal niedrigere Bildschirmauflösung simulieren, dass alle Programme maximal bis zu einem gewissen Punkt gehen, aber dann verschiebt sich ja auch die Taskleiste!
Ich hoffe, ihr könnt mir helfen!
Gruß, Jonas