首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

同一个程序,普通帐号运行正常,但以System帐号来运行就出错.解决方案

2012-02-04 
同一个程序,普通帐号运行正常,但以System帐号来运行就出错.我是用vb6来写的,第一步: 引用 vfpdll.dll程序

同一个程序,普通帐号运行正常,但以System帐号来运行就出错.
我是用vb6来写的,

第一步: 引用 vfpdll.dll程序

有以下代码(片断):

VB code
sub timer1_timer()  call testendifsub test()  on error resume next Dim vfp As New test.CData  '创建vfpdll实例 vfpdll是一个用vfp8写的一个DLL文件 for i=0 to 100'     ....省略n多代码.....      log.writeLog "再次调用VFP.DLL来比较。" '向日志文件写入运行信息       vfp.returnStr = "" 'vfpDLL的返回值       vfp.FileName = sFile        vfp.SCPATH = ksPath       vfp.AnsPath = Form1.File3.Path                      If Err.Number <> 0 Then log.writeLog "vfpDLL这里有错误。"'   ....省略n多代码... nextend sub

以上代码编译成EXE文件后,直接运行它(当前系统是XP,用户名是:administrator) 程序没有问题,可以正常运行.
 
但我把这个程序以SYSTEM帐号(比如在计划任务中创建一个运行本程序的计划并指定以System帐号来运行) 来运行,则程序只能运行到
  log.writeLog "再次调用VFP.DLL来比较。" '向日志文件写入运行信息

因为我检查运行日志文件到""再次调用VFP.DLL来比较。"这句话后就结束了.

但程序未蹦溃,因为timer还在正常工作,(每过一个周期还能调用test过程)

我检查了权限,System对vfpdll.DLL拥有完全控制权限.

[解决办法]
改成如下代码,然后运行试试看。
或者单步调试一下

VB.NET code
sub test() Dim vfp As New test.CData  '创建vfpdll实例 vfpdll是一个用vfp8写的一个DLL文件 for i=0 to 100      try'     ....省略n多代码.....      log.writeLog "再次调用VFP.DLL来比较。" '向日志文件写入运行信息       vfp.returnStr = "" 'vfpDLL的返回值       vfp.FileName = sFile        vfp.SCPATH = ksPath       vfp.AnsPath = Form1.File3.Path                '   ....省略n多代码...     catch ex as excption         log.writeLog ex.tostring     end try nextend sub 

热点排行