---
title: "Två program startade samtidigt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/27605-två-program-startade-samtidigt"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Baalzamon"
published: "2001-06-21T21:08:00.000Z"
updated: "2001-06-26T20:20:00.000Z"
replies: 7
views: 466
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/27605-två-program-startade-samtidigt"
---

# Två program startade samtidigt

## #1 — Baalzamon, 2001-06-21T21:08Z

Finns det någon som vet hur man fixar så att man endast kan starta en version av ett egetkompilerat program i VB åt gången. Alltså, om man har programmet öppet och försöker öppna det en gång till, så ska den säga ifrån att programmet redan är startat och avsluta det.

Tacksam för svar!

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

## #2 — fredrik, 2001-06-25T09:20Z

Du borde kunna använda API.t "FindWindowA", den leter iof efter en viss caption på ett fönster, fast det kanske funkar ändå.
\<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

Dim lngWnd As Long
lngWnd = FindWindow(vbNullString, "caption namn")

Om lngWnd \<\> 0 så finns fönstret öppet.

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

## #3 — Swey, 2001-06-25T09:33Z

Det finns bättre sätt. T.ex. detta:
"If you need to detect whether another instance already exists, create a uniquely named mutex using the CreateMutex function. CreateMutex will succeed even if the mutex already exists, but the GetLastError function will return ERROR_ALREADY_EXISTS. This indicates that another instance of your application exists, because it created the mutex first."

(Från MSDN, WinMain)

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

## #4 — fredrik, 2001-06-25T13:39Z

Ja, du kan även använda en app-property:
\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
App.PrevInstance

som returnerar true eller false beroende på om applikationen körs eller inte. Det är nog det lättaste egentligen...

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

## #5 — Baalzamon, 2001-06-25T16:08Z

Tack så mycket! Ska testa detta så fort jag har tid!

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

## #6 — Baalzamon, 2001-06-25T20:28Z

Swey: "CreateMutex" funkar perfekt!
fredrik: "App.PrevInstance" funkar bara om man har programmet i samma katalog hela tiden, inte om man öppnar programmet och sen öppnar det igen från en annan plats.

Jaha, då har vi lärt oss någonting mer... :)

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

## #7 — fredrik, 2001-06-26T07:45Z

Hej, är bara lite nyfiken på hur din kod ser ut för att skapa denna "mutex", hur skapas den och vad är det för nåt eg.?

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

## #8 — Baalzamon, 2001-06-26T20:20Z

Kolla in den här sidan:
 <http://www.vb-world.net/books/vb6api/sample9.html> 

Man får rensa i koden lite grann bara, för att få ut just det där med att redan ha startat ett program...

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/27605-två-program-startade-samtidigt
