Lukke program

Tags:    visual-basic

Hvis jeg kører et program via en shell funktion kan jeg så lukke programmet igen via mit eget program???



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Prøv med følgende, hvor sAppName er applikationens 'navn', dvs. det der er skrevet i den øverste bjælke i vinduet. Her er blot som eksempel vist spillet 7-kabale.

'---------- Module ------------------

Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As Any, _
ByVal lpWindowName As String) As Long

Public Const GWL_STYLE = -16
Public Const WS_DISABLED = &H8000000
Public Const WM_CLOSE = &H10
Public sAppName As String

Public Function EndTask(sWindowName As String) As Integer
Dim Temp As Long, ReturnVal As Long, ProgramID As Long
'find handle of the application
ProgramID = FindWindow(0&, sWindowName)
If ProgramID = 0 Then Exit Function
If IsWindow(ProgramID) = False Then
GoTo EndTaskFejl
Else
If Not (GetWindowLong(ProgramID, GWL_STYLE) And WS_DISABLED) Then
Temp = PostMessage(ProgramID, WM_CLOSE, 0, 0&)
DoEvents
End If
End If
EndTask = True
Exit Function

EndTaskFejl:
MsgBox "Kan ikke lukke " & sWindowName, vbExclamation, "EndTask"
EndTask = False
End Function

'------------- Slut på Modul------------------------------

'------------- Form --------------------
Private Sub cmdStop_Click()
'close application
Call EndTask(sAppName)
End Sub


Private Sub Form_Load()
sAppName = "7-kabale"
End Sub

'----------------Slut på Form-----------

V.h.
efry



Hvis jeg kører et program via en shell funktion kan jeg så lukke programmet igen via mit eget program???


Tjo... Det kan du godt. Har dog aldrig selv brugt det, så ved ikke hvilke API-kald du skal bruge...
Men du må godt sende det til mig hvis du finder ud af det... ;)

Held og lykke, Jannich Brendle



t