当前位置:编程学习 > C#/ASP.NET >>

有没有大神进来帮小弟一把 在线等

如何用C#读取其他应用程序中的数据 --------------------编程问答-------------------- WIN32API:
ReadProcessMemory --------------------编程问答--------------------
引用 1 楼  的回复:
WIN32API:
ReadProcessMemory


+1
学习啦 --------------------编程问答-------------------- 具体怎么用的能说下吗? --------------------编程问答-------------------- 你要读别的程序的什么数据? --------------------编程问答--------------------
引用 1 楼  的回复:
WIN32API:
ReadProcessMemory

能具体说下吗 --------------------编程问答--------------------
引用 3 楼  的回复:
具体怎么用的能说下吗?

比如说读取QQ上的好友 --------------------编程问答--------------------
引用 6 楼  的回复:
引用 3 楼  的回复:

具体怎么用的能说下吗?

比如说读取QQ上的好友

。。。 --------------------编程问答--------------------
引用 6 楼  的回复:
引用 3 楼  的回复:

具体怎么用的能说下吗?

比如说读取QQ上的好友

不可以实现吗? --------------------编程问答-------------------- 进程间取数据很复杂 再说C#一般没这需求 --------------------编程问答-------------------- 其实我就想实现这个  C#没办法实现吗 --------------------编程问答-------------------- 这个没办法,除非你知道它在内存中的地址 --------------------编程问答-------------------- 读取qq好友 --------------------编程问答-------------------- 刚写了个示例读取 5940号进程,4326268地址的一个32位整数,需要读取其他进程内存的也许有用
        [DllImport("kernel32.dll")]
        private static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, Int32 nSize, IntPtr lpNumberOfBytesRead);
        [DllImport("kernel32.dll")]
        private static extern bool VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress, Int32 dwSize, Int32 flNewProtect, IntPtr lpflOldProtect);
        [DllImport("kernel32.dll")]
        private static extern IntPtr OpenProcess(Int32 dwDesiredAccess, Int32 bInheritHandle, Int32 dwProcessId);
        [DllImport("kernel32.dll")]
        private static extern bool CloseHandle(IntPtr  hObject);




        private void button3_Click(object sender, EventArgs e)
        {
            IntPtr lpBuffer = Marshal.AllocHGlobal(4);
            IntPtr lpReadBytes = Marshal.AllocHGlobal(4);
            IntPtr hProc = OpenProcess(2035711, 1, 5940);
            IntPtr lpAddress = (IntPtr)4326268;
            IntPtr lpflOldProtect = Marshal.AllocHGlobal(4);

            VirtualProtectEx(hProc, lpAddress, 4, 4, lpflOldProtect);

            ReadProcessMemory(hProc, lpAddress, lpBuffer, 4, lpReadBytes);

            int oldProtect = (int)Marshal.PtrToStructure(lpflOldProtect, typeof(Int32));

            VirtualProtectEx(hProc, lpAddress, 4, oldProtect, lpflOldProtect);

            CloseHandle(hProc);

            Int32 n = (Int32)Marshal.PtrToStructure(lpBuffer, typeof(Int32));

            MessageBox.Show(n.ToString());

            Marshal.FreeHGlobal(lpBuffer);
            Marshal.FreeHGlobal(lpReadBytes);
            Marshal.FreeHGlobal(lpflOldProtect);
        }
--------------------编程问答--------------------
引用 8 楼  的回复:
引用 6 楼 的回复:

引用 3 楼 的回复:

具体怎么用的能说下吗?

比如说读取QQ上的好友

不可以实现吗?

没什么,只是觉得这个难度系数很大 --------------------编程问答-------------------- 看高手回答问题就是一种学习 --------------------编程问答-------------------- 消息队列可以实现应用应用程序之间的通信。 --------------------编程问答-------------------- --------------------编程问答-------------------- C#的功能是出其意料的强大啊 --------------------编程问答--------------------
引用 12 楼  的回复:
读取qq好友

不是很懂地址内存和进程号 大神求助 能不能加我个QQ或者给我留个QQ请教你 --------------------编程问答--------------------
引用 13 楼  的回复:
刚写了个示例读取 5940号进程,4326268地址的一个32位整数,需要读取其他进程内存的也许有用
C# code
        [DllImport("kernel32.dll")]
        private static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpB……


不是很懂地址内存和进程号 大神求助 能不能加我个QQ或者给我留个QQ请教你
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,