========================================================================
DYNAMIC LINK LIBRARY : ManagedSpyLib Project Overview
========================================================================
ManagedSpyLib.vcproj
ManagedSpyLib is a library that exposes one class called ControlProxy. A ControlProxy
represents a System.Windows.Forms.Control in another process. So, in other words, if
you have a ControlProxy in process A, it represents, say, a System.Windows.Forms.Button
in process B.
The ControlProxy class allows you to retrieve property values and sync on events.
Note that throughout the code and comments, we refer to process A as the "spying process"
and process B as the "spied process".
AssemblyInfo.cpp
This file contains assembly attribute information such as Company name and version.
Commands.cpp
Commands.h
Commands contains handlers for custom window messages. The way ManagedSpyLib works is that
when you want to create a ControlProxy, get/set values, the library turns on a window hook
in the destination process. The commands class is what both sends these messages and receives
them in the spied-on process.
A confusing thing here is that part of the class is executing in the spying process and other
parts execute in the spied process. I've tried to annotate these as best I could.
ControlProxy.h
ControlProxy.cpp
A ControlProxy is created inside the spied process and sent back to the spying process via
binary serialization (therefore ControlProxy is fully serializable).
Once deserialized on the spying process side, when you get or set values, the proxy will send
window messages to get/set values.
A ControlProxy is also left in a cache in the spied process to listen on events. When an event
is fired in the spied process, the ControlProxy will send a window message back to the listening
process. A current limitation is that ControlProxy events only supports one listening process.
This can be fixed with a little sweat.
CustomEventArgs.h
This contains a binary serializable version of MouseEventArgs. Note that all EventArgs must
be binary serializable or else they will not be sent to the event listener of the ControlProxy.
Mem.h
Mem.cpp
The Mem files define the use of memory mapped files. These are used to pass information between
the spying and spied process.
Messages.h
This lists all of the custom window messages we use
PropertyDescriptorProxy.h
PropertyDescriptorProxy.cpp
We implement ICustomTypeDescriptor on ControlProxy. This allows users to call TypeDescriptor.GetProperties
on a ControlProxy and set/get property values as if it were the actual control. This fucntionality is
used in the ManagedSpy application by putting the ControlProxy in the PropertyGrid (The winforms propertygrid
will automatically query ICustomTypeDescriptor).
PropertyDescriptorProxy is a custom written PropertyDescriptor used in our ICustomTypeDescriptor implementation.
/////////////////////////////////////////////////////////////////////////////
Other notes:
Some of the contents in Commands could be placed in ControlProxy to make things a bit clearer.
Another option is to use .Net remoting instead of memory mapped files.
/////////////////////////////////////////////////////////////////////////////
没有合适的资源?快使用搜索试试~ 我知道了~
D:\swb\SPY++.zip
共120个文件
cs:28个
resx:10个
exe:9个
4星 · 超过85%的资源 需积分: 6 31 下载量 10 浏览量
2007-08-09
19:46:32
上传
评论
收藏 1.84MB ZIP 举报
温馨提示
D:\swb\SPY++.zip
资源推荐
资源详情
资源评论
收起资源包目录
D:\swb\SPY++.zip (120个子文件)
app.aps 2KB
Play.bmp 824B
Delete.bmp 824B
Filter2.bmp 824B
Refresh.bmp 824B
Stop.bmp 824B
ResolveAssemblyReference.cache 6KB
TestManageSpy.csproj.GenerateResource.Cache 1019B
TestManagedSpy.csproj.GenerateResource.Cache 958B
UnitTest.csproj.GenerateResource.Cache 842B
spyxx.chm 129KB
app.config 74B
TestManageSpy.vshost.exe.config 74B
TestManageSpy.exe.config 74B
Commands.cpp 12KB
ControlProxy.cpp 8KB
Mem.cpp 4KB
EventTargetWindow.cpp 2KB
AssemblyInfo.cpp 1KB
PropertyDescriptorProxy.cpp 1002B
Stdafx.cpp 206B
Form1.Designer.cs 24KB
Form1.Designer.cs 12KB
Form1.cs 10KB
EventFilterDialog.Designer.cs 5KB
HelpAbout.Designer.cs 5KB
Resources.Designer.cs 4KB
Form3.Designer.cs 3KB
EventFilterDialog.cs 3KB
Form1.cs 3KB
Resources.Designer.cs 3KB
Resources.Designer.cs 3KB
Form2.Designer.cs 2KB
Form1.Designer.cs 2KB
NativeMethods.cs 2KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
Settings.cs 1KB
Settings.Designer.cs 1KB
Settings.Designer.cs 1KB
Settings.Designer.cs 1KB
Form2.cs 1006B
Form1.cs 776B
Form3.cs 602B
Program.cs 480B
Program.cs 475B
Program.cs 462B
HelpAbout.cs 328B
TestManagedSpy.csproj 4KB
ManagedSpy.csproj 4KB
UnitTest.csproj 3KB
makefile.def 59B
MFC71u.dll 1023KB
msvcp71.dll 488KB
msvcr71.dll 340KB
ManagedSpyLib.dll 204KB
ManagedSpyLib.dll 204KB
ManagedSpyLib.dll 204KB
spyxxhk.dll 80KB
EULA.doc 45KB
spyxx.exe 496KB
ManagedSpy.exe 284KB
ManagedSpy.exe 104KB
TestManageSpy.exe 24KB
TestManageSpy.exe 24KB
UnitTest.exe 20KB
UnitTest.exe 20KB
TestManageSpy.vshost.exe 6KB
UnitTest.vshost.exe 6KB
MS_Spy_pp71.gif 21KB
ControlProxy.h 10KB
Commands.h 3KB
Mem.h 2KB
PropertyDescriptorProxy.h 2KB
Messages.h 2KB
CustomEventArgs.h 1KB
EventTargetWindow.h 538B
Stdafx.h 220B
resource.h 91B
search.ico 29KB
app.ico 1KB
2ccc.com.nfo 746B
2ccc.com.nfo 746B
TestManageSpy.pdb 50KB
TestManageSpy.pdb 50KB
UnitTest.pdb 22KB
UnitTest.pdb 22KB
app.rc 1KB
TestManageSpy.Form1.resources 180B
TestManageSpy.Properties.Resources.resources 180B
TestManageSpy.Form3.resources 180B
TestManageSpy.Form2.resources 180B
UnitTest.Form1.resources 180B
UnitTest.Properties.Resources.resources 180B
Form1.resx 55KB
HelpAbout.resx 50KB
Resources.resx 6KB
Form2.resx 6KB
Form1.resx 6KB
共 120 条
- 1
- 2
资源评论
- alfei2013-02-25本来自己从VS中提取了,后来找不到了,还是CSDN方便,直接下载试用!
virusswb
- 粉丝: 92
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- #P0015. 全排列 超级简单
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功