阅读:2042回复:33
我的vxd不工作?
照书上抄了个vxd的代码,是捕捉ctrl+c 键的,编译成功了,修改注册表静态加载,也成功了,但是按ctrl+c 没什么反映啊!高手帮忙看看,源码在下面,
# HOTKEY.mak - makefile for VxD HOTKEY DEVICENAME = HOTKEY FRAMEWORK = CPP DEBUG = 1 OBJECTS = hotkey.OBJ !include $(VTOOLSD)\\include\\vtoolsd.mak !include $(VTOOLSD)\\include\\vxdtarg.mak hotkey.OBJ: hotkey.cpp hotkey.h /// // HOTKEY.h - include file for VxD HOTKEY #include <vtoolscp.h> #define DEVICE_CLASS HotkeyDevice #define HOTKEY_DeviceID UNDEFINED_DEVICE_ID #define HOTKEY_Init_Order UNDEFINED_INIT_ORDER #define HOTKEY_Major 1 #define HOTKEY_Minor 0 class HotkeyDevice : public VDevice { public: virtual BOOL OnDeviceInit(VMHANDLE hVM,PCHAR pszCmdTail); }; //class HotkeyVM : public VVirtualMachine //{ //public: // HotkeyVM(VMHANDLE hVM); //}; //class HotkeyThread : public VThread //{ //public: // HotkeyThread(THREADHANDLE hThread); //}; class XCtrlCEvent:public VHotKey {public: XCtrlCEvent(); virtual VOID handler(BYTE scan,keyAction_t ka,DWORD shift,PVOID refData,DWORD elapased); }; /// // HOTKEY.cpp - main module for VxD HOTKEY #define DEVICE_MAIN #include \"hotkey.h\" Declare_Virtual_Device(HOTKEY) #undef DEVICE_MAIN #define C_SCAN 43 //HotkeyVM::HotkeyVM(VMHANDLE hVM) : VVirtualMachine(hVM) {} //HotkeyThread::HotkeyThread(THREADHANDLE hThread) : VThread(hThread) {} BOOL HotkeyDevice::OnDeviceInit(VMHANDLE hVM,PCHAR pszCmdTail) {XCtrlCEvent* pCC=new XCtrlCEvent(); if(pCC) return pCC->hook(); else return FALSE; } XCtrlCEvent::XCtrlCEvent(): VHotKey(C_SCAN,SCAN_NORMAL,HKSS_Ctrl,CallOnPress) {} VOID XCtrlCEvent::handler(BYTE scan,keyAction_t ka,DWORD shift,PVOID refData,DWORD elapsed) { #ifdef DEBUG dout<<\"Ctrl-c detected\"<<endl; #endif dout<<\"Ctrl-c detected\"<<endl; //reflectToVM(Get_Cur_VM_Handle(),shift); } |
|
|
沙发#
发布于:2002-12-04 22:13
呵呵,编个应用程序,调用该vxd.
在应用程序中监视CTRL+C的情况。 一般是通过参数和vxd交换信息。 |
|
板凳#
发布于:2002-12-04 22:15
或者用调试软件
|
|
地板#
发布于:2002-12-04 22:17
#define C_SCAN 43
========= 好像 #define C_SCAN 56 |
|
地下室#
发布于:2002-12-05 09:18
试试用修改system.ini的方法看?
还有C的scan值别搞错了 :D |
|
|
5楼#
发布于:2002-12-05 10:07
哥们:看好了
#define C_SCAN 46 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); } |
|
6楼#
发布于:2002-12-05 11:42
怎么样了?
|
|
7楼#
发布于:2002-12-05 12:09
怎么样了? 什么怎么样? |
|
|
8楼#
发布于:2002-12-05 12:13
猪弟:
我是猴哥,正问楼主呢。 |
|
9楼#
发布于:2002-12-05 12:56
猪弟: 悟空,你又调皮了 |
|
|
10楼#
发布于:2002-12-05 19:01
谢谢两位哥们的帮助,现在还是一头雾水,我以前没接触过vxd!
请问大哥vxdstop=0; 什么意思啊,这个变量在什么地方定义的啊! 我是想做一个静态加载的vxd,完成的功能是按下ctrl+alt+del,能弹出个对话框,也就是不管在什么时候,按下ctrl+alt+del 就弹出对话框,这个实例是从书上抄的,我自己编译成vxd了,静态加载也成功了把,我用vtoolsd里的,vxd viewer 能看到我vxd,但是按下ctrl+c 就是没反映。把#define C_SCAN 43 改成46了还是一样,能帮我解释一下吗? 要不你帮我写一个关于ctrl+alt+del 的vxd ,调试好了,把源码发给我,我给50分,更多也可以!我的邮箱是d992901@sina.com |
|
|
11楼#
发布于:2002-12-05 19:04
关于vxd 的调试我也不会,请问怎么去调试vxd, 用什么工具和方法!谢谢老大们!
|
|
|
12楼#
发布于:2002-12-05 19:45
好吧!!
|
|
13楼#
发布于:2002-12-05 20:20
谢谢拉,呵呵,你发过来后,我会再发几个帖子,给你分的!!呵呵!顺便讲一讲,怎么调试vxd把
|
|
|
14楼#
发布于:2002-12-05 20:28
哥们,编完了。
包括vxd源码和一个测试程序,及其说明。 调试我用softice. |
|
15楼#
发布于:2002-12-05 20:29
rar压缩,没问题吧。
|
|
16楼#
发布于:2002-12-05 20:36
不上兆就没问题,我看看,不明白的再问你,如何?老大?
我的qq 号码是29990495 |
|
|
17楼#
发布于:2002-12-05 20:39
给分就好说,应用程序和vxd先发过去,呆会发源程序。
|
|
18楼#
发布于:2002-12-05 20:39
汇编我学的不是很好,只学了点皮毛,所以softice 有点费劲,呵呵!发过来把,真的很感谢你拉!
|
|
|
19楼#
发布于:2002-12-05 20:41
分数不是问题,除了这20外,我在发3个帖子,给你50,可以把!
|
|
|
上一页
下一页