Determinar algunos datos sobre el pc local

Iniciado por Snort, 14 Octubre 2006, 19:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Snort

   Pues estaba buscando los codigos para conocer:

- El tiempo qe lleva la pc encendida
- La fecha de la primera ejecucion del programa
- El windows (XP, 98, me...) de un modo fiable (supongo qe sera desde el registro
- El antivirus
- El firewall


   En las tres ultimas, he pensado ir instalando los prductos uno a uno (norton, nod, kav, antivir, panda...) y leer una clave del registro especifica de cada programa, pero no creo qe ese sea el mejor modo. Saludos y gracias adelantadas

PD: Es posible mover un formulario qe tenga la propiedad borderStyle a 0 (none)? Usando un label o line en lugar de la barra azul de arriba, qe no se pueda mover desde cualqier parte del formulario.

CeLaYa

para saber cuanto tiempo lleva prendido la PC creo que se usa la api "timeGetSystemTime"
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

CeLaYa

ya lo encontre, mira hay te va un ejemplo:

Option Explicit

Public Declare Function timeGetSystemTime Lib "winmm.dll" (lpTime As MMTIME, ByVal uSize As Long) As Long

Type smpte
      hour As Byte
      min As Byte
      sec As Byte
      frame As Byte
      fps As Byte
      dummy As Byte
      pad(2) As Byte
End Type

Type MMTIME
      wType As Long
      units As Long
      smtpeVal As smpte
      songptrpos As Long
End Type


---------------------------------------
Private Sub Form_Load()
    Dim t As MMTIME, j As Long
    Dim h As Double, m As Double, s As Double
    j = timeGetSystemTime(t, LenB(t))
    h = (t.units / 1000) / 60 / 60
    m = (h - Int(h)) * 60
    s = (m - Int(m)) * 60
    MsgBox Int(h) & " hrs " & Int(m) & " min " & Int(s) & "seg"
End Sub


"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

<--v1c1ous-->

- El tiempo qe lleva la pc encendida

Citar
Private Declare Function GetTickCount Lib "Kernel32.dll" () As Long
x = CStr(Round((GetTickCount / 1000 / 60))) & " Minutos"

- La fecha de la primera ejecucion del programa

A menos que la guardes en archivo/registro no se sabe, windows no guarda esa informacion, al menos que yo sepa.

-El windows (XP, 98, me...) de un modo fiable (supongo qe sera desde el registro

Yo prefiero usar API's, si queres "intentar" con el registro nuestro amigo Google.com esta disponible.

Declaraciones:
Citar
Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer

Public Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type

Modo simple y corto:
Citar
Public Function GetWindowsVersion() As String
Dim OSInfo As OSVERSIONINFO
Dim Ret As Integer
OSInfo.dwOSVersionInfoSize = 148
OSInfo.szCSDVersion = Space$(128)
Ret = GetVersionExA(OSInfo)

With OSInfo

        Select Case .dwPlatformId
            Case 1
            If .dwMinorVersion < 10 Then
                GetWindowsVersion = "Windows 95"
            ElseIf .dwMinorVersion = 10 Then
                GetWindowsVersion = "Windows 98"
            Else
                GetWindowsVersion = "Windows ME"
            End If

            Case 2
            If .dwMajorVersion = 3 Then
                GetWindowsVersion = "Windows NT"
            ElseIf .dwMajorVersion = 5 Then
                    GetWindowsVersion = "Windows 2000/XP"
                End If
            End If
            Case Else
            GetWindowsVersion = "Desconocida"
        End Select
End With
End Function


Modo mas largo y detallado:
Citar
Public Function GetWindowsVersion() As String
Dim OSInfo As OSVERSIONINFO
Dim Ret As Integer
OSInfo.dwOSVersionInfoSize = 148
OSInfo.szCSDVersion = Space$(128)
Ret = GetVersionExA(OSInfo)

With OSInfo

        Select Case .dwPlatformId
            Case 1
            If .dwMinorVersion < 10 Then
                If .dwBuildNumber = 950 Then
                    GetWindowsVersion = "Windows 95"
                ElseIf .dwBuildNumber > 950 Or .dwBuildNumber <= 1080 Then
                    GetWindowsVersion = "Windows 95 SP1"
                Else
                    GetWindowsVersion = "Windows 95 OSR2"
                End If
            ElseIf .dwMinorVersion = 10 Then
                If .dwBuildNumber = 1998 Then
                    GetWindowsVersion = "Windows 98"
                ElseIf .dwBuildNumber > 1998 Or .dwBuildNumber < 2183 Then
                    GetWindowsVersion = "Windows 98 SP1"
                ElseIf .dwBuildNumber >= 2183 Then
                    GetWindowsVersion = "Windows 98 SE"
                End If
            Else
                GetWindowsVersion = "Windows ME"
            End If

            Case 2
            If .dwMajorVersion = 3 Then
                GetWindowsVersion = "Windows NT 3.51"
            ElseIf .dwMajorVersion = 4 Then
                GetWindowsVersion = "Windows NT 4.0"
            ElseIf .dwMajorVersion = 5 Then
                If .dwMinorVersion = 0 Then
                    GetWindowsVersion = "Windows 2000"
                Else
                    GetWindowsVersion = "Windows XP"
                End If
            End If
            Case Else
            GetWindowsVersion = "Desconocida"
        End Select
End With
End Function

-Es posible mover un formulario qe tenga la propiedad borderStyle a 0 (none)?


Claro que si, en el caso que uses un Label utilizando la propiedad Label1_click podes mover el Form dependiendo donde este el mouse utilizando GetMousePos X Y.

Disculpa que no postee codigo sobre las ultimas preguntas, es que estoy desde Linux y tengo problemas con mi VMware.


Snort

   Ok, gracias por sus respuestas los codigos me van de lujo  ;)

Citar- La fecha de la primera ejecucion del programa

A menos que la guardes en archivo/registro no se sabe, windows no guarda esa informacion, al menos que yo sepa.
Lo qe hare sera crear una entrada de registro, y qe cuando exixta no la sobreescriba y ala, pero puede qe Windows si qe guarde esa informacion, ya qe al menos si qe guarda la fecha de ultima ejecucion del programa. (Agregar o qitar programas/ordenar por fecha de ultimo uso)

Saludos