Newsgroup: it.comp.lang.visual-basic
Titolo: Evitare di lanciare due copie dello stesso programma...

Salve raga, come posso fare per evitare che l'utilizzatore del
programma lanci sullo stesso pc due o piu' copie dello programma?
Cioe' c'e' un modo per sapere per esempio che il programma
picopallino.exe e' gia' stato lanciato e si trova in memoria?
Ciao!

pippo wrote:

If App.PrevInstace = True then...
La proprietà restituisce False nel caso in cui l'applicazione venga 
lanciata da 2 directory differenti.
Se guardi su google groups, cercando in questo ng, troverai la soluzione 
anche per questa condizione.
Ciao
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca


Grazie 1000 in questo modo ho risolto ottimamente ;)
Ciao!

anche per questa condizione.
Mmmh...., forse pero'
se rinomini il file e lo lanci col
nome cambiato, non funziona
(ma non sono sicurissimo; č solo
un avvertimento...)

pippo ha scritto:

Se ti può servire:
'#################################################################################################################################
'### 
                                                        ###
'###    Modulo per la gestione delle istanze precedenti del programma 
aperto...                                                ###
'### 
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&selm=8vesre%244b756%241%40ID-56381.news.dfncis.de&rnum=13
 
   ###
'### 
                                                        ###
'#################################################################################################################################
Option Explicit
Public Const GW_HWNDPREV = 3
Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal 
lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd 
As Long) As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) 
As Long
Public Sub ActivatePrevInstance()
     Dim OldTitle As String
     Dim PrevHndl As Long
     Dim result As Long
     'Save the title of the application.
     OldTitle = App.Title
     'Rename the title of this application so FindWindow
     'will not find this application instance.
     App.Title = "unwanted instance"
     'Attempt to get window handle using VB4 class name.
     PrevHndl = FindWindow("ThunderRTMain", OldTitle)
     'Check for no success.
     If PrevHndl = 0 Then
        'Attempt to get window handle using VB5 class name.
        PrevHndl = FindWindow("ThunderRT5Main", OldTitle)
     End If
     'Check if found
     If PrevHndl = 0 Then
     'Attempt to get window handle using VB6 class name
     PrevHndl = FindWindow("ThunderRT6Main", OldTitle)
     End If
     'Check if found
     If PrevHndl = 0 Then
        'No previous instance found.
        Exit Sub
     End If
     'Get handle to previous window.
     PrevHndl = GetWindow(PrevHndl, GW_HWNDPREV)
     'Restore the program.
     result = OpenIcon(PrevHndl)
     'Activate the application.
     result = SetForegroundWindow(PrevHndl)
     'End the application.
     End
  End Sub
ciao, roby

 un avvertimento...)
mmmh... ma normalmente tu per risolvere
un problema, ne crei altri tre? :-))))
app.previstance e via...
-- 
______________________________________
James Tiberius Kirk, matricola SC 937-076 CEC
  Nato a Riverside, nello Iowa, USA, Terra
            il 1277.1 (26/03/2233)