elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Determinar algunos datos sobre el pc local
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Determinar algunos datos sobre el pc local  (Leído 1,114 veces)
Snort


Desconectado Desconectado

Mensajes: 338



Ver Perfil
Determinar algunos datos sobre el pc local
« en: 14 Octubre 2006, 19:07 pm »

   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.


« Última modificación: 14 Octubre 2006, 19:31 pm por Snort » En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Determinar algunos datos sobre el pc local
« Respuesta #1 en: 14 Octubre 2006, 19:18 pm »

para saber cuanto tiempo lleva prendido la PC creo que se usa la api "timeGetSystemTime"


En línea

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


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Determinar algunos datos sobre el pc local
« Respuesta #2 en: 14 Octubre 2006, 19:47 pm »

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


En línea

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


Desconectado Desconectado

Mensajes: 776


¡Operadora! ¡Deme el número para el 911! - Homero


Ver Perfil WWW
Re: Determinar algunos datos sobre el pc local
« Respuesta #3 en: 14 Octubre 2006, 21:28 pm »

- 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.
En línea


Snort


Desconectado Desconectado

Mensajes: 338



Ver Perfil
Re: Determinar algunos datos sobre el pc local
« Respuesta #4 en: 15 Octubre 2006, 20:24 pm »

   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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿determinar multiplos? « 1 2 »
Programación C/C++
Bledniss 17 34,019 Último mensaje 27 Abril 2011, 20:26 pm
por RyogiShiki
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines