Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [VB5] Leggere la RAM

  1. #1

    [VB5] leggere la RAM

    c' è modo di leggere la RAM del PC con VB?

    nel vecchio Basic del Dos c' era l' istruzione PEEK.. ora non vedo istruzioni analoghe

    ty

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    codice:
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                         (dest As Any, source As Any, ByVal bytes As Long)
    
    ' read a value of any type from memory
    
    Function Peek(ByVal address As Long, ByVal ValueType As VbVarType) As Variant
        Select Case ValueType
            Case vbByte
                Dim valueB As Byte
                CopyMemory valueB, ByVal address, 1
                Peek = valueB
            Case vbInteger
                Dim valueI As Integer
                CopyMemory valueI, ByVal address, 2
                Peek = valueI
            Case vbBoolean
                Dim valueBool As Boolean
                CopyMemory valueBool, ByVal address, 2
                Peek = valueBool
            Case vbLong
                Dim valueL As Long
                CopyMemory valueL, ByVal address, 4
                Peek = valueL
            Case vbSingle
                Dim valueS As Single
                CopyMemory valueS, ByVal address, 4
                Peek = valueS
            Case vbDouble
                Dim valueD As Double
                CopyMemory valueD, ByVal address, 8
                Peek = valueD
            Case vbCurrency
                Dim valueC As Currency
                CopyMemory valueC, ByVal address, 8
                Peek = valueC
            Case vbDate
                Dim valueDate As Date
                CopyMemory valueDate, ByVal address, 8
                Peek = valueDate
            Case vbVariant
                ' in this case we don't need an intermediate variable
                CopyMemory Peek, ByVal address, 16
            Case Else
                Err.Raise 1001, , "Unsupported data type"
        End Select
    
    End Function
    Ans.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Bisogna solo aggiungere che la CopyMemory, in un sistema Win32, non legge effettivamente dalla RAM fisica come faceva la Peek del Basic in DOS.

    Questa legge soltanto da indirizzi mappati dal sistema al processo. In quanto tali, sono virtuali e non corrispondono agli indirizzi della RAM.

    Insomma ... se vuoi leggere/scrivere, ad esempio, la memoria video, non puoi farlo con la CopyMemory (anzi, in modalità utente, è complesso farlo in Windows).

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    941
    usando wmi
    si pottrebbe !!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ovvero?

  6. #6

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L'avevo letto e conosco abbastanza bene WMI.

    Ma non vedo l'attinenza con la capacita' di leggere/scrivere memoria fisica.

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.