Jag har ett program där bl.a. koden
Shell("C:\mittprog.exe")
finns med. Nu vill jag skapa en kontroll som avslutar mittprog.exe. Hur gör jag det?? Tacksam för svar
------------------
Everyone is a prey,
watch your back!
För att kunna avsluta en program som du har startat så behöver du programmets "handle" (hwnd).
Detta kan tex. returneras om du kör igång en process med API-anrop.
Men du kan även hämta ut "hwnd" från ett visst angivet fönster.
Låt oss säga att du har startat "notepad.exe". Programmet heter då "Notepad". För att stänga det skriver du då:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10
Private Sub Command1_Click()
dim w_handle
w_handle = FindWindow("Notepad", vbNullString)
SendMessage w_handle, WM_CLOSE, CLng(0), CLng(0)
end sub
Du hämtar alltså först upp en "handle" till programemt och sedan använder du "SendMessage" för att skicka ett meddelande till programmet som säger åt det att stänga sig.
Detta kan tex. returneras om du kör igång en process med API-anrop.
För att köra igång en appl. med API skriver du:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Command1_Click()
Dim lngHwnd As Long
Dim strApp As String
strApp = "notepad.exe"
lngHwnd = ShellExecute(0&, vbNullString, strApp, vbNullString, vbNullString, vbNormalFocus)
MsgBox "Hwnd är: " & lngHwnd
End Sub