Applicatie naar voren halen

Status
Niet open voor verdere reacties.

The Mighty Atom

Terugkerende gebruiker
Lid geworden
22 mei 2008
Berichten
1.380
(Dit is voor Visual Basic 2008)

Ik heb weer eens iets wat me niet lukt:

Ik heb een form met daarop een button.
Als ik daarop klik, wordt er gechecked of een bepaald programma, laten we zeggen, Steam (je weet wel, van Valve Software) draait of niet.

Zoniet, dan wordt Steam alsnog gestart.

Tot zover lukt het allemaal. Maar nu wil ik dat als het programma al draait, er gechecked wordt of het programma of:
1. geminimaliseerd
of
2. of dat Steam niet het actieve venster is.

In beide gevallen moet Steam dus naar voren gebracht worden, en als actief venster aangeduid worden.

Heeft iemand een idee hoe ik dit kan doen?
 
Niemand die me kan helpen?
Dit moet toch te doen lijkt me...

Ow well... back to mapping.
 
Hoe check je of dat andere prog al loopt?
 
Hoe check je of dat andere prog al loopt?

Code:
If Process.GetProcessesByName("Steam").Length = 0 Then
'Do stuff
Else
'Do stuff

Dit werkt prima, ik moet dus alleen nog weten hoe je nou een applicatie naar voren/actief maakt.
 
Code:
Public Class Form1

    Public Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim p As New ProcessStartInfo
        p.FileName = "notepad"
        p.WindowStyle = ProcessWindowStyle.Minimized
        MsgBox("notepad will be started as " & p.WindowStyle.ToString)
        Process.Start(p)


        For Each q As Process In Process.GetProcessesByName("notepad")
            ShowWindow(q.MainWindowHandle, 3)
            MsgBox("notepad is now " & q.StartInfo.WindowStyle.ToString)
        Next q

    End Sub

End Class


Dit zou je 2 problemen moeten helpen.

eerst wordt notepad geminimaliseerd, dan terug naar normal state.
ook wordt je applicatie geactiveerd zodat ie z'n focus weer heeft.
 
Code:
Public Class Form1

    Public Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim p As New ProcessStartInfo
        p.FileName = "notepad"
        p.WindowStyle = ProcessWindowStyle.Minimized
        MsgBox("notepad will be started as " & p.WindowStyle.ToString)
        Process.Start(p)


        For Each q As Process In Process.GetProcessesByName("notepad")
            ShowWindow(q.MainWindowHandle, 3)
            MsgBox("notepad is now " & q.StartInfo.WindowStyle.ToString)
        Next q

    End Sub

End Class


Dit zou je 2 problemen moeten helpen.

eerst wordt notepad geminimaliseerd, dan terug naar normal state.
ook wordt je applicatie geactiveerd zodat ie z'n focus weer heeft.

Dank. Ik zal later vandaag je code proberen, ik moet eerst de wasmachine met kleren voederen. :D

Edit:
Je code werkt prima, alleen niet voor die applicatie waar het voor bedoeld is. Ik heb verder geen idee waarom het niet werkt met die applicatie, dus ik denk dat ik dit hele geval maar schrap...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan