[ Sasa Vitorovic @ 26.11.2003. 10:54 ] @
Pozdrav,
Pravim program koji posle x minuta gasi kompjuter.Uradio sam to pomocu timer-a.
Problem nastaje kad korisnik zatvori program i prekine timer.To sam resio sakrivanjem prozora kad ga on pokusa zatvoriti.Ali,kad ponovo otvori program(druga sesija) on ne moze da saradjuje sa prvom sesijom(enabledovanje kontrola...)
Pitanje glasi:kako mogu da objasnim programu da ne pokrece program ako je on vec aktivan (i sakriven),dakle ako ga ima na spisku taskmanagera?
[ mladenovicz @ 26.11.2003. 11:12 ] @
Stavi ovo u Sub Main

Code:

    If App.PrevInstance Then
        MsgBox "Previous instance of the application is already running." & _
        vbCrLf & "Please close all previous instances to start a new one.", vbCritical
        Exit Sub
    End If
[ Sasa Vitorovic @ 26.11.2003. 16:22 ] @
Hvala na pomoci.
Jos me interesuje mogu li iz sub maina da aktiviram form iz prve sesije,odnosno da ga ucinim vidljivim.
[ mladenovicz @ 26.11.2003. 18:08 ] @
Sa API funkcijama moze sve :)

u modul stavi ovo:

Code:

Private Declare Function ShowWindow _
   Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
   

Private Declare Function FindWindow _
   Lib "user32" Alias "FindWindowA" _
         (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub Main()

Dim hWnd        As Long
Dim sCaption    As String
Dim lRet        As Long
Const SW_SHOW = 5
   
   sCaption = Form1.Caption
   
   'Check for a hidden
   hWnd = FindWindow(vbNullString, sCaption & " - Hidden")
   If hWnd <> 0 Then
      lRet = ShowWindow(hWnd, SW_SHOW) 'show
      End
   Else
      If App.PrevInstance Then ' visible instance - exit
         End    ' exit
      End If
      Form1.Show
   End If
End Sub


a tamo gde sakrivas formu stavi ovo

Code:

    Me.Caption = Me.Caption & " - Hidden"
    Me.Visible = False

[ Sasa Vitorovic @ 03.12.2003. 15:52 ] @
Hvala,to je to!
A sad vezano za isti program,mogu li da "objasnim" vb6 da neki form postane modalan ne samo za vb6 vec i za ceo win?
Na primer,kad stavim da je neki form modalan i cak stavim ono form1.setfocus on nece da prekida screensaver ili da upali monitor kad je ovaj ugasen.Ima li leka?
[ mladenovicz @ 03.12.2003. 16:12 ] @
stavi ga da bude always on top (imas ovde na forumu potrazi).

Screensaver mozes da zaustavis sa npr.

Code:

SendKeys "%(ESC)"


a verovatno ima i neki API koji to radi. Medjutim, ako screensaver trazi password onda ...
[ Sasa Vitorovic @ 12.12.2003. 09:28 ] @
To je to!A i screensaver sa sifrom mi radi,jer prvo moj program prekine screensaver pa onda trazi sifru.