Título: Determinar algunos datos sobre el pc local Publicado por: Snort 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. Título: Re: Determinar algunos datos sobre el pc local Publicado por: CeLaYa en 14 Octubre 2006, 19:18 pm para saber cuanto tiempo lleva prendido la PC creo que se usa la api "timeGetSystemTime"
Título: Re: Determinar algunos datos sobre el pc local Publicado por: CeLaYa 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 Título: Re: Determinar algunos datos sobre el pc local Publicado por: <--v1c1ous--> 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. Título: Re: Determinar algunos datos sobre el pc local Publicado por: Snort 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 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)A menos que la guardes en archivo/registro no se sabe, windows no guarda esa informacion, al menos que yo sepa. Saludos |