Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - System.Environment.TickCount cosa restituisce?
Forum - C# / VB.NET - System.Environment.TickCount cosa restituisce?

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
alip1 (Normal User)
Rookie


Messaggi: 37
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 15:08
Martedì, 11/02/2020
Vorrei sapere quanto tempo il PC è stato avviato. Ecco perché ho fatto la seguente routine:

Public Function LipPCIsOn() As String
  Dim iTempoPC As Integer
  Dim tTempoPC As TimeSpan
  Dim strTempoPC As String
  iTempoPC = System.Environment.TickCount
  tTempoPC = TimeSpan.FromMilliseconds(iTimePC)
  strTempoPC = tTempoPC.Duration.ToString("hh:mm:ss")
  Return strTempoPC
End Function

Ma non capisco, il PC pur essendo stato avviato da 3 minuti mi dice: 7:54:36 Dov'è l'errore? 8-|
Grazie a tutti

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6072
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:40
Martedì, 11/02/2020
Scrivi così

Codice sorgente - presumibilmente VB.NET

  1. Public Function LipPCIsOn() As String
  2.    Return  TimeSpan.FromMilliseconds(System.Environment.TickCount).ToString()
  3. End Function



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
alip1 (Normal User)
Rookie


Messaggi: 37
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 9:03
Mercoledì, 12/02/2020
Testo quotato

Postato originariamente da nessuno:

Scrivi così

Codice sorgente - presumibilmente VB.NET

  1. Public Function LipPCIsOn() As String
  2.    Return  TimeSpan.FromMilliseconds(System.Environment.TickCount).ToString()
  3. End Function




Grazie ma non cambia molto:-|:-?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6072
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:52
Mercoledì, 12/02/2020
A me funziona correttamente ... cosa succede con il codice che ti ho mostrato?

Facci vedere anche come lo usi


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
alip1 (Normal User)
Rookie


Messaggi: 37
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 10:44
Mercoledì, 12/02/2020
Testo quotato

Postato originariamente da nessuno:

A me funziona correttamente ... cosa succede con il codice che ti ho mostrato?

Facci vedere anche come lo usi



Nella mia DLL ho cambiato la routine come suggerito in:

Public Function LipPCIsOn() As String
      Return TimeSpan.FromMilliseconds(System.Environment.TickCount).ToString()
End Function

Nell'evento di Timer1 del form di avvio ho:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
      SBMain.Items("TSDurationPC").Text = "Pc is turned on by: " & LipNetTimeRoutine.LipPCIsOn

Come mostrato in questo screenshot, mi da 13.03:36:18.2960000
sebbene abbia avviato il PC da meno di 2 ore!!
Grazie

P.S.: sto utilizzando VS2012 con windows10




alip1 ha allegato un file: screenshot.jpg (24713 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6072
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:09
Mercoledì, 12/02/2020
Stai eseguendo il programma localmente o su un sistema remoto? Su un sistema fisico o virtuale?

A me continua a non dare altri problemi. Prova anche questo codice (più affidabile del TickCount che ha un limite di giorni)

Codice sorgente - presumibilmente VB.NET

  1. Dim query As New SelectQuery("SELECT LastBootUpTime FROM Win32_OperatingSystem WHERE Primary='true'")
  2.         Dim searcher = New ManagementObjectSearcher(query)
  3.  
  4.         Dim ret As String = ""
  5.         Dim mo As ManagementObject
  6.         For Each mo In searcher.Get()
  7.             Dim dtBootTime As DateTime = ManagementDateTimeConverter.ToDateTime(mo.Properties("LastBootUpTime").Value.ToString())
  8.             ret = (Now - dtBootTime).ToString()
  9.         Next
  10.  
  11.         Return ret



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
alip1 (Normal User)
Rookie


Messaggi: 37
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 20:32
Mercoledì, 12/02/2020
Testo quotato

Postato originariamente da nessuno:

Stai eseguendo il programma localmente o su un sistema remoto? Su un sistema fisico o virtuale?

A me continua a non dare altri problemi. Prova anche questo codice (più affidabile del TickCount che ha un limite di giorni)

Codice sorgente - presumibilmente VB.NET

  1. Dim query As New SelectQuery("SELECT LastBootUpTime FROM Win32_OperatingSystem WHERE Primary='true'")
  2.         Dim searcher = New ManagementObjectSearcher(query)
  3.  
  4.         Dim ret As String = ""
  5.         Dim mo As ManagementObject
  6.         For Each mo In searcher.Get()
  7.             Dim dtBootTime As DateTime = ManagementDateTimeConverter.ToDateTime(mo.Properties("LastBootUpTime").Value.ToString())
  8.             ret = (Now - dtBootTime).ToString()
  9.         Next
  10.  
  11.         Return ret




Grazie lo proverò di certo e farò sapere.
Intanto confermo che sto lavorando sul mio pc in locale é sconnesso da qualsiasi rete tranne internet ovviamente!!
Buona serata

PM Quote
Avatar
alip1 (Normal User)
Rookie


Messaggi: 37
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 12:08
Giovedì, 13/02/2020
Testo quotato

Postato originariamente da alip1:

Testo quotato

Postato originariamente da nessuno:

Stai eseguendo il programma localmente o su un sistema remoto? Su un sistema fisico o virtuale?

A me continua a non dare altri problemi. Prova anche questo codice (più affidabile del TickCount che ha un limite di giorni)

Codice sorgente - presumibilmente VB.NET

  1. Dim query As New SelectQuery("SELECT LastBootUpTime FROM Win32_OperatingSystem WHERE Primary='true'")
  2.         Dim searcher = New ManagementObjectSearcher(query)
  3.  
  4.         Dim ret As String = ""
  5.         Dim mo As ManagementObject
  6.         For Each mo In searcher.Get()
  7.             Dim dtBootTime As DateTime = ManagementDateTimeConverter.ToDateTime(mo.Properties("LastBootUpTime").Value.ToString())
  8.             ret = (Now - dtBootTime).ToString()
  9.         Next
  10.  
  11.         Return ret




Grazie lo proverò di certo e farò sapere.
Intanto confermo che sto lavorando sul mio pc in locale é sconnesso da qualsiasi rete tranne internet ovviamente!!
Buona serata



ho i seguenti errori:
'SelectQuery ' is not defined
'ManagementObjectSearcher' is not defined
'ManagementObject' is not defined

ho questi Imports impostati:
Imports System
Imports System.Security
Imports System.IO
Imports System.IO.File
Imports System.IO.FileStream
Imports System.Windows.Forms

Occorre forse altro?
Grazie

PM Quote
Avatar
alip1 (Normal User)
Rookie


Messaggi: 37
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 19:22
Giovedì, 13/02/2020
Testo quotato

Postato originariamente da alip1:

Testo quotato

Postato originariamente da alip1:

Testo quotato

Postato originariamente da nessuno:

Stai eseguendo il programma localmente o su un sistema remoto? Su un sistema fisico o virtuale?

A me continua a non dare altri problemi. Prova anche questo codice (più affidabile del TickCount che ha un limite di giorni)

Codice sorgente - presumibilmente VB.NET

  1. Dim query As New SelectQuery("SELECT LastBootUpTime FROM Win32_OperatingSystem WHERE Primary='true'")
  2.         Dim searcher = New ManagementObjectSearcher(query)
  3.  
  4.         Dim ret As String = ""
  5.         Dim mo As ManagementObject
  6.         For Each mo In searcher.Get()
  7.             Dim dtBootTime As DateTime = ManagementDateTimeConverter.ToDateTime(mo.Properties("LastBootUpTime").Value.ToString())
  8.             ret = (Now - dtBootTime).ToString()
  9.         Next
  10.  
  11.         Return ret




Grazie lo proverò di certo e farò sapere.
Intanto confermo che sto lavorando sul mio pc in locale é sconnesso da qualsiasi rete tranne internet ovviamente!!
Buona serata



ho i seguenti errori:
'SelectQuery ' is not defined
'ManagementObjectSearcher' is not defined
'ManagementObject' is not defined

ho questi Imports impostati:
Imports System
Imports System.Security
Imports System.IO
Imports System.IO.File
Imports System.IO.FileStream
Imports System.Windows.Forms

Occorre forse altro?
Grazie



Scusatemi volevo solo comunicare che ho risolto: Mi mancava di aver aggiunto in References del progetto System.Management:pat::pat:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo