anonim
Typ:
Nie zarejestrowany
|
|
ogromny problem z wylogowywaniem
oto moj problem:
moj program dzila w tle systemu i jest bez przerwy uruchomiony gdy uzytkonik wyloguje sie z systemu, a nastepnie zaloguje spowrotem moj program wariuje 
tzn. przy wylogowywaniu nie wylancza sie a po ponownym zalogowaniu "stara wersja" pozostaje aktywna (z tym ze nie pokazuje sie juz w tray-u) a system proboje bez przerwy uruchomic nowy ktory jest wylanczany przez kod If App.PrevInstance = True Then Unload Me
ponizej przedstawiam kod funkcji load i queryunload
Private Sub Form_Load() Hide_Program_In_CTRL_ALT_Delete ' ukywa program App.Title = "Cafe Client" ' Nadaje tytuł oknu 'sprawdza czy jest juz uruchominoy ' If App.PrevInstance = True Then Unload Me ' koniec ' Me.Hide ' ukrywa okno ' pobieranie sciezki do pliku ; sciezka = App.Path sciezka = Right(sciezka, "1" If (sciezka <> "\" Then sciezka = App.Path & "\" sciezka = sciezka & App.EXEName & ".exe" ' koniec ' t_rejestr.Enabled = True ' uruchamia zapisywanie sciezki w run do rejestru ' pobieranie sciezki do katalogu windowsa Dim WinPath As String Dim tmp As Long WinPath = String(145, Chr(0)) tmp = GetWindowsDirectory(WinPath, 145) sciezka_win = Right(Left(WinPath, InStr(WinPath, Chr(0)) - 1), "1" If (sciezka_win <> "\" Then sciezka_win = Left(WinPath, InStr(WinPath, Chr(0)) - 1) & "\" Else sciezka_win = Left(WinPath, InStr(WinPath, Chr(0)) - 1) End If ' koniec ' ini.PlikINI = sciezka_win & "sys.ini" ' sciezka do pliku ini ' sprawdza czy jest podane IP i nr jesli nie pyta If ini.CzytajZINI("laczenie", "ip" = "" Or ini.CzytajZINI("laczenie", "nr" = "" Then f_start.Show vbModal, Me If ini.CzytajZINI("laczenie", "ip" = "" Or ini.CzytajZINI("laczenie", "nr" = "" Then Unload Me Else t_laczenie.Enabled = True ' tray t.cbSize = Len(t) t.hwnd = pichook.hwnd t.uId = 1& t.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE t.ucallbackMessage = WM_MOUSEMOVE t.hIcon = Me.Icon t.szTip = "Cafe Client" & Chr$(0) Shell_NotifyIcon NIM_ADD, t Me.Hide App.TaskVisible = False ' koniec ' End If ' koniec ' ini.ZapiszDoINI "rozdzielczosc", "szerokosc", (CurrentRes.screenWidth) ini.ZapiszDoINI "rozdzielczosc", "wysokosc", (CurrentRes.screenHeight) Call WylaczCTRL(False) BlockInput False wykonaj "09 00 1" Select Case ini.CzytajZINI("Ustawienia", "blokada_s" Case 1 wykonaj "02 1" Case 2 wykonaj "02 3" Case 3 wykonaj "02 2" Case 4 wykonaj "02 4" Case 5 wykonaj "02 5" End Select End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode <> 2 And UnloadMode <> 1 Then Cancel = 1 Else ' tray t.cbSize = Len(t) t.hwnd = pichook.hwnd t.uId = 1& Shell_NotifyIcon NIM_DELETE, t ' koniec ' Unload f_czas Unload f_karnet Unload f_blokada End If End Sub
BLAGAM Was o pomoc, juz niedlugo musze oddac program (klientowi) a to nie pozwala mi spac, juz tylko ten blad mi zostal
|