源代码如下:
THEPATH = PATH(CurrentDb.Name)
START = THEPATH & "CARDCMD.EXE 1"
TOREAD = THEPATH & "CARDCMD.EXE 2"
GETDATA = THEPATH & "CARDCMD.EXE 3"
TOCLOSE = THEPATH & "CARDCMD.EXE 4"
DATAFILE = THEPATH & "RESULT.TXT"If Shell(START, vbHide) = 0 Then GoTo ERR_READTMP
If Shell(TOREAD, vbHide) = 0 Then GoTo ERR_READTMP
If Shell(GETDATA, vbHide) = 0 Then GoTo ERR_READTMP 
Open DATAFILE For Input As #1
 Z = Input(151, #1)
Close #1
但结果文件读不出来

解决方案 »

  1.   

    dos下面的程序接受参数和windows程序不一样,所以我们传过去的函数根本没作用。折腾一个多小时就折腾出这么一个结论,未必正确。
      

  2.   

    try thisTHEPATH = PATH(CurrentDb.Name)
    START = THEPATH & "\CARDCMD.EXE 1"
    TOREAD = THEPATH & "\CARDCMD.EXE 2"
    GETDATA = THEPATH & "\CARDCMD.EXE 3"
    TOCLOSE = THEPATH & "\CARDCMD.EXE 4"
    DATAFILE = THEPATH & "\RESULT.TXT"If Shell(START, vbHide) = 0 Then GoTo ERR_READTMP
    If Shell(TOREAD, vbHide) = 0 Then GoTo ERR_READTMP
    If Shell(GETDATA, vbHide) = 0 Then GoTo ERR_READTMP 
    Open DATAFILE For Input As #1
     Z = Input(151, #1)
    Close #1
    但结果文件读不出来
      

  3.   

    我没有用VB写过,但在语言中用shellExecute("c:\\test\\cardcmd.exe 1") 是可以的。
      

  4.   

    这是本人以前编写的一个软件的启动事件(放在公共模块中,并在工程属性中设置从Sub Main启动),调试时可在工程属性的生成页下的命令行参数栏中输入\你定义的参数即可见至效果;运行时只要输入“文件名\你定义的参数
    即可.本例定义了四个命令行参数C、R、L、SPublic Sub Main()
    Dim CmdStr As String'待传入的命令行参数变量CmdStr = Left$(Command, 2)'取命令行参数\?Select Case UCASE(CmdStr)'控制大小写无关
    Case "/C"'参数C处理
    ……
    Exit SubCase "/R"'参数R处理
    ……
    Exit SubCase "/L"'参数L处理
    ……
    Exit SubCase "/S"'参数S处理
    ……
    Exit Subcase else‘没有命令行参处理
    ……
    End Select
    End Sub
      

  5.   

    我试了
    startread="c:\\test\\cardcmd.exe 1"
    Shell(startread,vbhide)

    THEPATH = PATH(CurrentDb.Name)
    START = THEPATH & "\CARDCMD.EXE 1"
    TOREAD = THEPATH & "\CARDCMD.EXE 2"
    GETDATA = THEPATH & "\CARDCMD.EXE 3"
    TOCLOSE = THEPATH & "\CARDCMD.EXE 4"
    DATAFILE = THEPATH & "\RESULT.TXT"If Shell(START, vbHide) = 0 Then GoTo ERR_READTMP
    If Shell(TOREAD, vbHide) = 0 Then GoTo ERR_READTMP
    If Shell(GETDATA, vbHide) = 0 Then GoTo ERR_READTMP 
    Open DATAFILE For Input As #1
     Z = Input(151, #1)
    Close #1程序没反应,用一个批处理文件放在CARDCMD.EXE同目录下
    CARDCMD.EXE 1
    CARDCMD.EXE 2
    CARDCMD.EXE 3
    CARDCMD.EXE 4
    是正常的
    ---------------------------------------------------
    各位高手帮忙啊,BOSS一直在催着要
      

  6.   

    cardcmd.exe 1
    是初始化
    cardcmd.exe 2
    读卡机读卡
    cardcmd.exe 3
    内容写入到result.txt
    cardcmd.exe 4
    关闭读卡机
    我在程序里调用cardcmd.exe的几种方式
    然后读result.txt内容,写到access数据库里
      

  7.   

    在帮你找最佳答案之前,先给你一个替代方案:
    把cardcmd.exe 1 写入一个批处理文件card1.bat
    把cardcmd.exe 2 写入一个批处理文件card2.bat
    把cardcmd.exe 3 写入一个批处理文件card3.bat
    把cardcmd.exe 4 写入一个批处理文件card4.bat
    这几个批处理文件和cardcmd.exe文件放在一个目录下。然后把相应程序中的“cardcmd.exe 1”改为“card1.bat”
    依此类推。
    可以肯定的是,这个替代方法是可行的,我已经试过了。