阅读:1443回复:3
在打印驱动和在MFC中分别调用一个应用程序,其运行结果为什么不一样?
我用DDK在WIN2000下编写了一个虚拟打印机程序,在打印结束时,调用以下语句:
WinExec(\"LF.exe\",SW_SHOW);//调用某应用程序 说明:LF.exe用于调用Windows地址本。 问题:在Windows资源管理器中双击运行LF.exe或用VC的MFC用WinExec调用LF.exe,都可以顺利地调出Windows地址本,并读取默认登录用户的地址本数据。但在以上虚拟打印机中调用,则可以执行LF.exe,并调用地址本,然而无法读取默认用户的地址本数据,为什么?到底在DDK中和在MFC中调用有何区别? |
|
沙发#
发布于:2003-10-22 13:09
虚拟打印机驱动使用system用户调用外部程序,任务管理器中可以看到 LF.exe 程序的用户名是system,所以无法获得登陆用户的数据
|
|
板凳#
发布于:2003-10-24 09:07
Hellboy:
你好!非常感谢你的回答,让我知道了原因所在。但现在我还没有解决这个问题。请问如何解决这个问题?虚拟打印机驱动能否使用登录用户而不是system用户调用外部程序?或者:如何修改LF.exe的代码,让运行后以登录用户来控制自己? |
|
地板#
发布于:2003-11-14 09:22
可以在系统后台驻留一个程序( 使用ShowWindow(SW_HIDE),这样生成的程序窗口是隐藏的 )。打印驱动里面的WinExec(\'lf.ex\',sw_show),改为Sendmessage发送消息给后台的程序,然后使用后台程序来调用\"lf.exe\" 。
|
|