阅读:1120回复:15
一个简单的vxd及测试程序
一个简单的vxd(Ctrl+C)及测试程序
|
|
|
沙发#
发布于:2002-12-17 20:03
部分源码:
BOOL GxgadadDevice::OnSysDynamicDeviceInit() { pCC=new XCtrlCEvent(); if(pCC) return pCC->hook(); else return FALSE; vxdstop=1; return TRUE; } BOOL GxgadadDevice::OnSysDynamicDeviceExit() { delete pCC; return TRUE; } |
|
板凳#
发布于:2002-12-17 20:04
XCtrlCEvent::XCtrlCEvent() :
VHotKey(C_SCAN, SCAN_NORMAL, HKSS_Ctrl, CallOnPress) {} VOID XCtrlCEvent::handler(BYTE scan, keyAction_t ka, DWORD shift, PVOID refData, DWORD elapased) { //dout << \"Ctrl-C detected\" << endl; vxdstop=0; reflectToVM(Get_Cur_VM_Handle(), shift); } |
|
地板#
发布于:2002-12-18 09:18
======Gong_XG=====
请Gong_XG公布全部的源码,让我们见识,见识哦! |
|
|
地下室#
发布于:2002-12-18 09:24
XCtrlCEvent::XCtrlCEvent() : 我曾经遇到一个问题,Ctrl_C我改为ctrl+alt+delete 当我reflectToVM时过几秒就蓝屏了,我一直也没解决这问题,你是试刊 |
|
|
5楼#
发布于:2002-12-19 01:17
ctrl+alt+del我试过多次,没解决!!!
|
|
6楼#
发布于:2002-12-19 01:19
估计静态的vxd更难解决。
主要问题:接收到信号后,想不出如何进一步处理。 |
|
7楼#
发布于:2002-12-19 19:05
dout要输出的东西会在什么地方显示?谢谢
怎么vxd的虚拟键值和vc里的不一样啊,在哪有各个键的对应键值啊!!谢谢! reflectToVM(Get_Cur_VM_Handle(), shift); 是将消息传递到虚拟机中,假如把这句去掉不就等于屏蔽这个键值了吗?如果去掉的话,是不是会出错? |
|
|
8楼#
发布于:2002-12-20 09:10
部分源码:
BOOL GxgadadDevice::OnSysDynamicDeviceInit() { pCC=new XCtrlCEvent(); if(pCC) return pCC->hook(); else return FALSE; vxdstop=1; //请问这两个语句能够被执行吗? return TRUE; } |
|
|
9楼#
发布于:2002-12-20 11:16
dout要输出的东西会在什么地方显示?谢谢 看dout输出可以用DriverMonitor 或dbgview 你的ctrl-c不是用的是c的scan code 吗? 如果去掉这句话不会出错。是屏蔽盖键值。 对ctrl_shift_alt,屏蔽和取消可以在别的地方实现,不用在reflectToVM也是可以的,想想就知道了 :D |
|
|
10楼#
发布于:2002-12-20 11:19
部分源码: 你说呢?当然不能了,faint。vxd用的就是C嘛。 :D |
|
|
11楼#
发布于:2002-12-20 12:31
部分源码: 完全可以执行,我的应用程序就是监督它的. |
|
12楼#
发布于:2002-12-20 15:39
[quote]部分源码: 完全可以执行,我的应用程序就是监督它的. [/quote] 当真?汗,为什么? |
|
|
13楼#
发布于:2002-12-20 15:41
前面return 了后面还可以吗?
|
|
|
14楼#
发布于:2002-12-20 19:45
前面是判断hook.
|
|
15楼#
发布于:2002-12-22 12:42
真的是c的虚拟键值吗?
我在msdn上查的c的键值是43啊, 在vxd里是46了.为什么啊!! |
|
|