mittlere Maustaste und Start-Button - vermutlich Win7-Fehler

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

mittlere Maustaste und Start-Button - vermutlich Win7-Fehler

Beitrag von uweb »

Nachdem ich nun stundenlang den Fehler in meinem Code gesucht habe konnte ich durch einkreisen ausschließen, daß ich der Übeltäter bin. Es ging mir darum ein Fenster an den Start-Button zu heften daß sich sichtbar-unsichtbar schalten läßt und Veränderungen an der Taskleiste mitmacht. Vielleicht hat ja jemand eine Idee.
Wenn nicht, dann hat es vielleicht einen gewissen Unterhaltungswert oder erspart anderen die lange Fehlersuche.
Oder spinnt mein Puter und bei euch läuft es richtig?

Code: Alles auswählen

hwnd = OpenWindow(42, 100, 100, 300, 200, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)
If hwnd   
  StartButton = FindWindowEx_(GetDesktopWindow, 0, "Button", 0)
  GetWindowRect_(StartButton,StartButtonRect.RECT)
    Debug StartButtonRect\top
    Debug StartButtonRect\Bottom
    Debug "."
  
    HideWindow(42,#True)
    Delay (3500) ; Zeit genug um bei horizontaler Taskleiste mit der mittleren Maustaste auf Start zu drücken. 
    HideWindow(42,#False)
    
  
  StartButton = FindWindowEx_(GetDesktopWindow, 0, "Button", 0)
  GetWindowRect_(StartButton,StartButtonRect.RECT)
    Debug StartButtonRect\top
    Debug StartButtonRect\Bottom
    Debug "---------"  
EndIf
edit:
Der Grund weshalb ich mich an den Koordinaten des Start-Button orientieren wollte ist, dass ich darauf vorbereitet sein wollte wenn man morgen einstellen kann auf welcher Seite der Taskleiste der Start-Button sein soll. Nun habe ich mich, um voran zu kommen, an der 'WORKAREA' orientiert und es scheint zu funktionieren. Hier kommt das Beispiel bei dem die Koordinaten auch gleich per Taskbar\uEdge verwendet werden.

Bei der Gelegenheit : Danke an RSBasic und alle die ihn bei der WinAPI Library unterstützen !

Code: Alles auswählen

hwnd = OpenWindow(42, 100, 100, 300, 200, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)
If hwnd   
  HideWindow(42,#True)
  Delay (3500) ; Zeit genug um bei horizontaler Taskleiste mit der mittleren Maustaste auf Start zu drücken 
  HideWindow(42,#False)
  
  GetWindowRect_(hwnd,WindowRect.RECT)
  SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0)
  SHAppBarMessage_(#ABM_GETTASKBARPOS,Taskbar.APPBARDATA)
  Select Taskbar\uEdge
    Case #ABE_BOTTOM
     ResizeWindow(42, 0, DesktopWorkArea\Bottom-(WindowRect\bottom - WindowRect\top), #PB_Ignore, #PB_Ignore)
    Case #ABE_LEFT
     ResizeWindow(42, DesktopWorkArea\left, 0, #PB_Ignore, #PB_Ignore)
    Case #ABE_RIGHT
     ResizeWindow(42, DesktopWorkArea\right - (WindowRect\right - WindowRect\left), 0, #PB_Ignore, #PB_Ignore)
    Case #ABE_TOP
     ResizeWindow(42, 0, DesktopWorkArea\Top, #PB_Ignore, #PB_Ignore)
  EndSelect
 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf