Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Controllo sul server
Forum - Visual Basic 6 - Controllo sul server

Avatar
giusy_m86 (Normal User)
Pro


Messaggi: 143
Iscritto: 09/07/2008

Segnala al moderatore
Postato alle 16:56
Lunedì, 02/02/2009
Salve,vorrei una dritta per gestire la mia applicazione Client, la quale dovrebbe funzionare solo se anche il programma Server è stato lanciato. es:lancio il mio Client, se il programma Server non è stato aperto , visualizzo il seguente msg "Avviare il Server".
è giusto gestire anche questo controllo con dei winsock?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 17:04
Lunedì, 02/02/2009
se intendi controllare che il server sia aperto nella stessa macchina su cui viene avviato il client basta che controlli nei processi...
esempio su come "prelevare" la lista dei processi(aggiungi un list1):
Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2.  
  3. Private Const TH32CS_SNAPPROCESS = &H2
  4. Private Const MAX_PATH As Integer = 260
  5.  
  6. Private Type PROCESSENTRY32
  7. dwSize As Long
  8. cntUsage As Long
  9. th32ProcessID As Long
  10. th32DefaultHeapID As Long
  11. th32ModuleID As Long
  12. cntThreads As Long
  13. th32ParentProcessID As Long
  14. pcPriClassBase As Long
  15. dwFlags As Long
  16. szExeFile As String * MAX_PATH
  17. End Type
  18.  
  19. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  20. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  21. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  22. Private Declare Sub CloseHandle Lib "kernel32" (ByVal hObject As Long)
  23.  
  24. Private Sub Command1_Click()
  25. Dim hSnapShot As Long
  26. Dim uProcess As PROCESSENTRY32
  27. Dim lngRet As Long
  28.  
  29. hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
  30. uProcess.dwSize = Len(uProcess)
  31. lngRet = Process32First(hSnapShot, uProcess)
  32. list1.Clear
  33. Do While lngRet
  34. list1.AddItem Left$(uProcess.szExeFile, InStr(1, uProcess.szExeFile, vbNullChar) - 1)
  35. lngRet = Process32Next(hSnapShot, uProcess)
  36. Loop
  37. CloseHandle hSnapShot
  38.  
  39. Dim x As Integer
  40. Dim a As Double
  41. Dim proc As Boolean
  42. x = -1
  43. For a = 1 To list1.ListCount
  44. x = x + 1
  45. Next
  46. end sub


PM Quote
Avatar
giusy_m86 (Normal User)
Pro


Messaggi: 143
Iscritto: 09/07/2008

Segnala al moderatore
Postato alle 17:07
Lunedì, 02/02/2009
il server viene eseguito su un'altra macchina, quindi mi servirebbe controllare i processi in esecuzione sull'altra macchina con diverso indirizzo IP

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:13
Lunedì, 02/02/2009
scusa con il client fai un tenativo di connessione, se la connessione non riesce(e sai che l'ip è corretto)vuol dire che il server non è avviato.

PM Quote
Avatar
giusy_m86 (Normal User)
Pro


Messaggi: 143
Iscritto: 09/07/2008

Segnala al moderatore
Postato alle 17:15
Lunedì, 02/02/2009
Non devo fare un controllo sulla macchina Server...ma sul programma Server. Mi serve sapere se il programma Server sul pc Server è stato lanciato.

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:26
Lunedì, 02/02/2009
all'apertura del server, inviati un email, che conferma che il server è avviato.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:19
Lunedì, 02/02/2009
Testo quotato

Postato originariamente da giusy_m86:

Non devo fare un controllo sulla macchina Server...ma sul programma Server. Mi serve sapere se il programma Server sul pc Server è stato lanciato.



La cosa piu' logica da farsi e' tentare la connessione (come e' stato gia' detto).

Se la connessione non riesce, il client puo' avvisare che "Il server non e' raggiungibile o non e' attivato" ... non mi sembra ci siano da farsi tanti problemi ...

PM Quote