Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    API windows e recupero configurazione hardware

    Salve ragazzi, ciao moderatori,

    sapreste indicarmi quali sono le api che mi permettono di leggere
    la configurazione hardware del PC, mi spiego:
    il tipo di HD, la memoria, il tipo di CPU,
    velocità del prcessore, ecc.

    ed inoltre quella per poter leggere la versione di windows che sta girando, il nome utente, ed altre informazioni simili.

    Altra cosa: esiste qualcosa dove posso andare a reperire queste benedette API, ovvero un elenco delle stesse, la loro sintassi,
    insomma un po' di documentazione?!


    grazie a tutti

  2. #2
    Linguaggio e versione anche nel titolo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3

    [vb6] ...

    hai ragione xegallo, scusa, mi sono dimenticato:


    [VB6]

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao Paolo,
    posto le Api che si occupano del System Info:
    codice:
    'Opzioni di protezione delle chiavi del registro di configurazione:
    Const KEY_ALL_ACCESS = &H2003F
     
    'Chiavi di primo livello del registro di configurazione.
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const ERROR_SUCCESS = 0
    Const REG_SZ = 1                         ' Stringa Unicode a terminazione Null
    Const REG_DWORD = 4                      ' Numero a 32 bit.
    
    Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location"
    Const gREGVALSYSINFOLOC = "MSINFO"
    Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO"
    Const gREGVALSYSINFO = "PATH"
    
    Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
    ----------------------------------------------------
    Private Sub cmdSysInfo_Click()
            Call StartSysInfo
    End Sub
    -----------------------------------------------------
    Public Sub StartSysInfo()
        On Error GoTo SysInfoErr
            Dim rc As Long
            Dim SysInfoPath As String
            ' Tenta di recuperare il percorso\nome del programma System Info dal
            ' registro di configurazione.
            If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
            ' Tenta di recuperare solo il percorso del programma System Info dal
            ' registro di configurazione.
            ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
                    ' Convalida l'esistenza di una versione nota a 32 bit del file.
                    If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then
                            SysInfoPath = SysInfoPath & "\MSINFO32.EXE"
                    ' Errore - Impossibile trovare il file.
                    Else
                            GoTo SysInfoErr
                    End If
            ' Errore - Impossibile trovare la voce del registro di configurazione.
            Else
                    GoTo SysInfoErr
            End If
            Call Shell(SysInfoPath, vbNormalFocus)
            Exit Sub
    SysInfoErr:
            MsgBox "Informazioni sul sistema non disponibili in questa fase.", vbOKOnly
    End Sub
    ------------------------------------------------------------------
    Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
            Dim i As Long                                           ' Contatore del ciclo.
            Dim rc As Long                                          ' Codice restituito.
            Dim hKey As Long                                        ' Handle a una chiave del registro di configurazione aperta.
            Dim hDepth As Long                                      '
            Dim KeyValType As Long                                  ' Tipo di dati di una chiave del registro di configurazione.
            Dim tmpVal As String                                    ' Variabile per la memorizzazione temporanea del valore di una chiave del registro di configurazione.
            Dim KeyValSize As Long                                  ' Dimensioni della variabile della chiave del registro di configurazione.
            '------------------------------------------------------------
            ' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...}
            '------------------------------------------------------------
            rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Apre la chiave del registro di configurazione.
            
    
            If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' Gestisce l'errore.
            
    
            tmpVal = String$(1024, 0)                             ' Assegna spazio per la variabile.
            KeyValSize = 1024                                       ' Imposta le dimensioni della variabile.
            
    
            '----------------------------------------------------------------
            ' Recupera il valore della chiave del registro di configurazione.
            '----------------------------------------------------------------
            rc = RegQueryValueEx(hKey, SubKeyRef, 0, KeyValType, tmpVal, KeyValSize)    ' Recupera/crea il valore della chiave.
                                                    
    
            If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' Gestisce gli errori.
            
    
            tmpVal = VBA.Left(tmpVal, InStr(tmpVal, VBA.Chr(0)) - 1)
            '------------------------------------------------------------
            ' Determina il tipo di valore della chiave per la conversione.
            '------------------------------------------------------------
            Select Case KeyValType                                  ' Cerca i tipi di dati.
            Case REG_SZ                                             ' Tipo di dati String per la chiave del registro di configurazione.
                    KeyVal = tmpVal                                     ' Copia il valore String.
            Case REG_DWORD                                          ' Tipo di dati Double Word per la chiave del registro di configurazione.
                    For i = Len(tmpVal) To 1 Step -1                    ' Converte ogni bit.
                            KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1)))   ' Crea il valore carattere per carattere.
                    Next
                    KeyVal = Format$("&h" + KeyVal)                     ' Converte Double Word in String.
            End Select
            
    
            GetKeyValue = True                                      ' Esito positivo.
            rc = RegCloseKey(hKey)                                  ' Chiude la chiave del registro di configurazione.
            Exit Function                                           ' Esce.
    
    GetKeyError:    ' Svuota in seguito a un errore.
            KeyVal = ""                                             ' Imposta il valore restituito su una stringa vuota.
            GetKeyValue = False                                     ' Esito negativo.
            rc = RegCloseKey(hKey)                                  ' Chiude la chiave del registro di configurazione.
    End Function
    Per avere un programma di raccolta delle API ti consiglio Api Guide che potrai scaricarlo a questo indirizzo
    http://www.mentalis.org/agnet/appdown.shtml
    LM

  5. #5
    ciao Lmondi,
    lo script che mi posti è interessante ma un po' articolato.
    In particolare non credo che mi sia necessario andare a mettere mano nel file di registro.

    Qualcosa di più semplice, magari solo su API del tipo:
    GetHDDStatus, GetRAMStatus, GetAUDIOStatus.
    per la lettura dei dati dell'HD, della RAM e della scheda audio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.