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.
para saber cuanto tiempo lleva prendido la PC creo que se usa la api "timeGetSystemTime"
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
- El tiempo qe lleva la pc encendidaCitar
Private Declare Function GetTickCount Lib "Kernel32.dll" () As Long
x = CStr(Round((GetTickCount / 1000 / 60))) & " Minutos"
- La fecha de la primera ejecucion del programaA 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 registroYo 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.
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