yanwang2008
驱动牛犊
驱动牛犊
  • 注册日期2002-04-11
  • 最后登录2005-02-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1443回复:3

在打印驱动和在MFC中分别调用一个应用程序,其运行结果为什么不一样?

楼主#
更多 发布于:2003-10-21 13:57
我用DDK在WIN2000下编写了一个虚拟打印机程序,在打印结束时,调用以下语句:
WinExec(\"LF.exe\",SW_SHOW);//调用某应用程序
说明:LF.exe用于调用Windows地址本。
问题:在Windows资源管理器中双击运行LF.exe或用VC的MFC用WinExec调用LF.exe,都可以顺利地调出Windows地址本,并读取默认登录用户的地址本数据。但在以上虚拟打印机中调用,则可以执行LF.exe,并调用地址本,然而无法读取默认用户的地址本数据,为什么?到底在DDK中和在MFC中调用有何区别?
Hellboy
驱动牛犊
驱动牛犊
  • 注册日期2003-07-22
  • 最后登录2005-06-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-22 13:09
虚拟打印机驱动使用system用户调用外部程序,任务管理器中可以看到 LF.exe 程序的用户名是system,所以无法获得登陆用户的数据
yanwang2008
驱动牛犊
驱动牛犊
  • 注册日期2002-04-11
  • 最后登录2005-02-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-24 09:07
Hellboy:
你好!非常感谢你的回答,让我知道了原因所在。但现在我还没有解决这个问题。请问如何解决这个问题?虚拟打印机驱动能否使用登录用户而不是system用户调用外部程序?或者:如何修改LF.exe的代码,让运行后以登录用户来控制自己?



 


 
Hellboy
驱动牛犊
驱动牛犊
  • 注册日期2003-07-22
  • 最后登录2005-06-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-14 09:22
可以在系统后台驻留一个程序( 使用ShowWindow(SW_HIDE),这样生成的程序窗口是隐藏的 )。打印驱动里面的WinExec(\'lf.ex\',sw_show),改为Sendmessage发送消息给后台的程序,然后使用后台程序来调用\"lf.exe\" 。
游客

返回顶部