preyMedlem sedan jan. 2002341 inlägg Vad är koden för att avsluta ett program?
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!
fredrikMedlem sedan dec. 19991 072 inlägg 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.
------------------
Fredrik Klarqvist
f.klarqvist@spray.se
http://server.webwerkstaden.se/fredde/
BeatboxMedlem sedan okt. 20013 217 inlägg Varför inte använda Win32 anropet "ShellExecute" på en gång ? Då får man ju tag i hwnd vid uppstart.
// BeatBox
------------------
"Mörkrets gärningar, förekommer även på dagen"
Sixten Landby
fredrikMedlem sedan dec. 19991 072 inlägg Japp, visst är det så..
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
Den startar alltså Notepad.
------------------
Fredrik Klarqvist
f.klarqvist@spray.se
http://server.webwerkstaden.se/fredde/
preyMedlem sedan jan. 2002341 inlägg Tackar så mkt!
Det blir till å testa..
------------------
Everyone is a prey,
watch your back!