阅读:1427回复:6
怎样用vxd在win98出现登陆对话框之前先运行自定义的对话框??
因为软件设计需要,我要在win98出现登陆对话框之前先运行一个我自定义的对话框,这个对话框里也要像登陆对话框一样有输入功能,曾经看过有书介绍在vxd的OnDeviceInit()函数中执行SHELL_CallAtAppyTime(&trick, hSysVM, 0, 0)就可实现(用的是vtoolsd + vc6.0),不过书上的例子只是出现一个对话框,而没有输入功能,因资料特别缺乏兼刚学vxd不久,暂时找不到很好的解决方法,请高手出手相救!!!!究竟在vxd中调用什么的Shell服务能实现输入功能。(声明:我在搞的是一个硬盘加密程序,不是黑客工具)
开发环境:WIN98,VTOOLSD3.0,VC++6.0,SOFTICE。 |
|
沙发#
发布于:2002-08-25 23:52
:mad:怎么没人帮我解决问题呀?
再次声明:我搞的不是黑客工具,是一个硬盘加密程序,现在绝大部分的问题都解决了。这问题还困扰着我。如果大家觉得这处理方法不方便向大众公布的话,可以发到我email上吗? dszsun@sina.com |
|
板凳#
发布于:2002-08-25 19:29
Hellp!!!
有人能帮帮我吗?我是在编一个硬盘加密的程序,就差这一步啦 :D 虽然我找到了代替的办法,但是不比这样做的好。 我查了很多资料了,读查不到。有人能告诉我吗? |
|
地板#
发布于:2002-08-25 07:46
我把我实验的源码贴出来吧,但它没有输入功能,该加点什么进去才能有输入功能呢?急盼回复。
---------------------vxd(静态的)中的cpp文件--------------- // GETCODE.cpp - main module for VxD TRICK #define DEVICE_MAIN #include \"getcode.h\" Declare_Virtual_Device(GETCODE) #undef DEVICE_MAIN //添加变量 PPVOID pp; char* msg=\"DHL硬盘加密\"; char* cap=\"请输入你的帐号密码:\"; SHELLMessage_THUNK thunk; //添加shell_exe函数 void _cdecl shell_exe (PVOID p, DWORD flags) { struct { WORD nCmdShow; DWORD lpCmdLine; }winex; winex.nCmdShow = 3; winex.lpCmdLine = SHELL_LocalAllocEx (LMEM_STRING, 0, \"Explorer.exe\", pp); SHELL_CallDll (\"KERNEL\", \"WINEXEC\", sizeof(winex), &winex); SHELL_LocalFree (winex.lpCmdLine); } //添加msgcall函数 void _stdcall msgcall (DWORD resid, PVOID refdata) { SHELL_CallAtAppyTime (&shell_exe, 0, 0, 0); } //添加getcode函数 void _cdecl getcode (PVOID p, DWORD flags) { SHELL_Message ((VMHANDLE) p, MB_OK, msg, cap, msgcall, 0, &thunk); } BOOL GetcodeDevice::OnDeviceInit(VMHANDLE hSysVM, PCHAR pszCmdTail) { return SHELL_CallAtAppyTime (&getcode, hSysVM, 0, 0); } 那输入服务的函数怎样编???要调用什么Shell服务? |
|
地下室#
发布于:2002-08-24 23:17
盼望高手来帮我解决问题呀!
|
|
5楼#
发布于:2002-08-24 19:36
回zxy2845986:
但我用的是vtoolsd,在vtoolsd里能实现吗?我在vtoolsd里已经有办法让他出现一个窗口,点击确定才进去,但还没找到可以让用户输入的办法。该调用什么Shell服务来让用户输入呀! 呵:)我还没学ddk,麻烦大家啦。 开发环境:WIN98,VTOOLSD3.0,VC++6.0,SOFTICE。 |
|
6楼#
发布于:2002-08-24 16:25
ddk 有例子,可以把登陆对话框替换为你自己的对话框,在DDK下找一个“GENA”的例子
|
|