vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Daten aus anderem Prozess lesen 
Autor: poncho
Datum: 05.09.07 16:57

Hallo Leute,

ich möchte aus einem anderen Prozess einen Wert auslesen. Es soll nach Text gesucht werden und der direkt dahinter stehende dann ausgelesen werden.
Also z.B. nach "Endbetrag: " suchen und das auslesen, was dahinter steht.

Nun habe ich aber das Porblem, dass ReadProcessMemory() mir immer nur Nothing in den buffer schreibt.

Mein Code bisher sieht so aus:
(WindowsApplication2 ist einfach noch ein simples extra Programm zum Testen)
'---- API-Deklarationen ---------------------------
    <DllImport("kernel32", CallingConvention:=CallingConvention.Winapi, _
      EntryPoint:="OpenProcess", ExactSpelling:=True, SetLastError:=True)> _
    Public Shared Function OpenProcess(<MarshalAs(UnmanagedType.U4)> ByVal _
    DesiredAccess As ProcessAccessPriviledges, _
        ByVal InheritHandle As Boolean, _
        ByVal ProcessId As Int32) As Int32
    End Function
 
    <DllImport("kernel32", CallingConvention:=CallingConvention.Winapi, _
      EntryPoint:="ReadProcessMemory", ExactSpelling:=True, _
      SetLastError:=True)> _
    Public Shared Function ReadProcessMemory( _
        <InAttribute()> ByVal hProcess As Int32, _
        <InAttribute()> ByVal lpBaseAddress As UInt32, _
        <OutAttribute()> ByRef lpBuffer As Byte(), _
        <InAttribute()> ByVal nSize As Int32, _
        <OutAttribute()> ByRef lpNumberOfBytesRead As UInt32 _
        ) As Boolean
    End Function
 
    <Flags()> _
    Public Enum ProcessAccessPriviledges
        PROCESS_TERMINATE = &H1
        PROCESS_CREATE_THREAD = &H2
        PROCESS_SET_SESSIONID = &H4
        PROCESS_VM_OPERATION = &H8
        PROCESS_VM_READ = &H10
        PROCESS_VM_WRITE = &H20
        PROCESS_DUP_HANDLE = &H40
        PROCESS_CREATE_PROCESS = &H80
        PROCESS_SET_QUOTA = &H100
        PROCESS_SET_INFORMATION = &H200
        PROCESS_QUERY_INFORMATION = &H400
        PROCESS_SYNCHRONISE = &H100000
        PROCESS_ALL_ACCESS = &H100FFF
    End Enum
'----------------------------------------------------------------------------
 
 
        Dim p As Process() = Process.GetProcessesByName("WindowsApplication2")
        If p.Length = 0 Then
            MessageBox.Show("Process not found", "Error", MessageBoxButtons.OK, _
              MessageBoxIcon.Error)
            Exit Sub
        End If
        Dim proc As IntPtr = OpenProcess( _
          ProcessAccessPriviledges.PROCESS_ALL_ACCESS, False, p(0).Id)
        If proc = IntPtr.Zero Then
            MessageBox.Show("Could not open process", "Error", _
              MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If
 
        Dim addr As Int32 = 0
        Dim buffer(1023) As Byte
        Dim written As Long
        Do
            Try
                ' Hier wird buffer auf Nothing gesetzt und written auf 0 ...
                ReadProcessMemory(proc, addr, buffer, buffer.Length, written)
                Debug.WriteLine(buffer)
            Catch ex As Exception
                Debug.WriteLine("ReadProcessMemory: " & ex.Message)
                Exit Do
            End Try
            addr += &H100
        Loop
Weiß jemand, was da falsch läuft?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Daten aus anderem Prozess lesen1.280poncho05.09.07 16:57
Re: Daten aus anderem Prozess lesen843Maywood07.09.07 12:30
Re: Daten aus anderem Prozess lesen660poncho07.09.07 12:54
Re: Daten aus anderem Prozess lesen664Maywood07.09.07 13:13

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel