---
title: "Avsluta ett program från ett eget skapat program"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/27739-avsluta-ett-program-från-ett-eget-skapat-program"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "prey"
published: "2002-01-21T19:55:00.000Z"
updated: "2002-10-06T00:44:59.000Z"
replies: 5
views: 250
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/27739-avsluta-ett-program-från-ett-eget-skapat-program"
---

# Avsluta ett program från ett eget skapat program

## #1 — prey, 2002-01-21T19:55Z

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

Permalänk: https://www.webforum.nu/p/27739

## #2 — fredrik, 2002-01-22T09:21Z

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.

Permalänk: https://www.webforum.nu/p/400018

## #3 — Beatbox, 2002-01-22T11:31Z

Varför inte använda Win32 anropet "ShellExecute" på en gång ? Då får man ju tag i hwnd vid uppstart.

// BeatBox

Permalänk: https://www.webforum.nu/p/400019

## #4 — fredrik, 2002-01-22T14:02Z

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.

Permalänk: https://www.webforum.nu/p/400020

## #5 — prey, 2002-01-23T23:25Z

Tackar så mkt!
Det blir till å testa..

Permalänk: https://www.webforum.nu/p/400021

## #6 — xcalibrate, 2002-10-06T00:44Z

Under Command1

End

Permalänk: https://www.webforum.nu/p/811756

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/27739-avsluta-ett-program-från-ett-eget-skapat-program
