热情软件屋

 

Shell函数无法运行程序


编号:QA000182
建立日期: 1998年12月10日 最后修改日期:2002年2月21日
所属类别:

猫毛毛:
    我在编一个开机管理程序,需要在程序中执行一些可执行文件(*.exe;*.bat)。我用了Shell函数,可是一些游戏程序无法执行(如:帝国时代、英雄无敌2 for Win95、野兽与乡巴佬等)。清指点迷津。谢谢!这些程序不能运行其现象是:执行或屏幕闪烁几下就返回,似乎是程序被运行后又迅速结束。

回答:

    Shell函数本身没有什么秘技。关键是看你的游戏在退出时是否有什么提示信息,这些信息可能有助于解决问题。一般Shell函数不成功,有以下几种可能:
    1、软件对内存要求太高,有其它程序运行时可能内存不够;
    2、软件启动时要求加参数,没有参数无法运行;
    3、软件启动时对当前目录有特殊要求,VB使用Shell语句时,一般以VB程序的目录为当前目录,如果你要为软件指定当前目录可以使用Windows API中的ShellExecute;
    4、由于你的程序的影响,要调用的程序无法打开某些文件或加载某些模块。
    
    chen-mingjie问:
    我有一个dos下的中断采集程序,在window中能正常调用,在vb中用shell 调用能进主菜单,但运行其中某一程序时就退出。但在windows中能双击图标完全正常调用。参见了你的相关问题,分析可能是需要指定当前目录,请问如何在shell 调用中用shellexecute如何指定路径,谢谢。
    答:
    ShellExecute的声明如下:
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    其中的lpDirectory参数就是程序的初始路径。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio