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.
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")
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."
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...
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.