[VB.NET] Shellexecute wil niet minimized

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • titan_pi8
  • Registratie: Januari 2004
  • Laatst online: 22:54
Hallow,

Volgens mij zou deze code een bestand moeten openen met het standaard programma voor dat bestand:

code:
1
2
3
4
5
6
7
8
9
10
11
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer

Private Sub Open_Bestand_Minimized()
        Dim path As String = 'Een geldig bestand'
        ShellExecute(0, vbNullString, path, vbNullString, vbNullString, AppWinStyle.MinimizedNoFocus)
End Sub

Private Sub Open_Bestand_Normaal()
        Dim path As String = 'Een geldig bestand'
        ShellExecute(0, vbNullString, path, vbNullString, vbNullString, AppWinStyle.NormalFocus)
End Sub


Deze code opent het bestand wel met het standaard programma, maar de minimized-code niet minimized. Er zit wel een verschil tussen de minimized en de normale code: Bij de minimized-code opent het programma alsof het eerst minimized was. M.a.w. het wordt vergroot vanaf de taskbar, i.p.v. direct op het scherm te verschijnen (Als je niet begrijpt wat ik bedoel, moet je het zelf maar eens proberen: minimaliseer dit venster en klik er dan op in de taskbar. Je ziet dan de bovenste balk van je browser snel naar boven stijgen.) Dat effect krijg ik dus ook bij de Minized-code en niet bij de 'Normale-code', maar wat ik wil is dat bij de Minimized-code het programma geopend wordt en geminimaliseerd in de taskbar blijft.

Weet er iemand wat ik verkeerd doe? Of is er misschien een betere manier om in VB .NET te bereiken wat ik wil, want dit is eigenlijk de ouderwetse VB6 manier :).

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Waarom ga je ervan uit dat AppWinStyle.MinimizedNoFocus dezelfde waarde heeft als SW_SHOWNOACTIVATE o.i.d.? Je zal die constant ook moeten importeren uit de je library en die gebruiken om door te geven aan je functie.

Het lijkt me trouwens beter dat je de VB.NET functie Shell gebruikt. Dan kan je wel gebruik maken van de AppWinStyles enumeratie.

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

  • titan_pi8
  • Registratie: Januari 2004
  • Laatst online: 22:54
Ik gebruik Shell niet omdat je daarmee enkel executables mee kunt openen. Als je iets anders als een executable opgeeft, krijg je een FileNotFoundExeception.

Als ik de waarde van SW_SHOWMINIMIZED (2) of SW_SHOWNOACTIVATE (4) gebruik ipv die appwindowstyles werkt het nog niet :/ .