vb2008sp1 - windows7 x64 desktop anzeigen - Bug?

17/02/2010 - 21:45 von Betje van Vlack | Report spam
Hallo zusammen,

ich habe ein recht seltsames Problem.

Mittels:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan
As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_LWIN = &H5B

Public Sub ShowDesktop()
keybd_event(VK_LWIN, 0, 0, 0)
keybd_event(77, 0, 0, 0)
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub


simuliere ich ein Win+D. Das funktioniert soweit auch alles sehr gut. Nur
wenn ich mehrere Monitore angeschlossen habe, werden nur die Programme auf
dem primàr Monitor minimiert.

Normales drücken von Win+D minimiert alles auf allen Monitoren.

Als admin ausführen oder sowas hat auch keinen Effekt.


Habe es auch so ausprobiert (selbes Problem):


Dim typeShell As Type = Type.GetTypeFromProgID("Shell.Application")
Dim objShell As Object = Activator.CreateInstance(typeShell)
typeShell.InvokeMember("MinimizeAll",
System.Reflection.BindingFlags.InvokeMethod, Nothing, objShell, Nothing)


Wenn ich allerdings die "Desktop-Anzeigen.lnk" aufrufe, die ja eigentlich
auch nur ein MinimizeAll an die Shell sendet, dann funktioniert es wie es
soll.
Nur eben aus meinem Programm nicht.

Nebenbei ist mir anscheinend auch noch ein Bug aufgefallen. Wenn ich eine
borderless Form ohne Caption kreiere und in der IDE die Größe auf 48x48
setze (um nur ein icon als hintergrund anzuzeigen), dann macht er beim
starten eine Form mit 48 Höhe und 132 Breite draus.
Im Form_load me.width = 48 funktioniert dann.


Hat da wer ne Idee?

Grüße
Betje
 

Lesen sie die antworten

#1 Armin Zingler
17/02/2010 - 23:19 | Warnen spam
Betje van Vlack schrieb:
Hallo zusammen,

ich habe ein recht seltsames Problem.

Mittels:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan
As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)




Ich weiß nicht, wo ihr immer noch die falschen Deklarationen herhabt.
Abgesehen davon, guckst du hier:

http://dotnet-snippets.de/dns/deskt...ID454.aspx


Armin

Ähnliche fragen