当前位置: 代码迷 >> 汇编语言 >> 关于ShellExecute函数执行的有关问题
  详细解决方案

关于ShellExecute函数执行的有关问题

热度:96   发布时间:2016-05-02 04:33:24.0
关于ShellExecute函数执行的问题
我是想运行一个批处理文件,文件内容是“dir e:\>e:123.txt”
然后将e:\123.txt中的信息写到窗口上
我是用ShellExecute函数运行的批处理文件,但是发现e:\123.txt。文件没有被写入,就像批处理文件没有被运行一样,但是ShellExecute函数又没有返回错误。
部分代码如下
.elseif	eax==WM_CREATE
invoke RtlMoveMemory,addr bName,addr E,7
invoke _ChangeBat ;更改批处理文件
invoke ShellExecute,NULL,addr open,addr Bat,NULL,NULL,SW_HIDE ;运行批处理文件
.if eax<32
invoke MessageBox,NULL,NULL,NULL,MB_OK
.endif
invoke CreateFile,addr hFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL ;打开文本文件
mov hFile,eax
invoke ReadFile,hFile,addr FBuffer,2048,addr FNum,NULL ;读出文本文件的内容
    .else


我试过将下面的GreateFile和ReadFile函数注释掉,批处理文件正常运行,e:\123.txt文件被正常写入。
求解这是什么问题?
------解决方案--------------------
“dir e:\>e:123.txt”

“dir e:\>e:\123.txt”
不是一回事!