1、看你的代码,应该是Delphi写的吧。出现这个问题,是因为字符串的处理方式不同造成的。Delphi2007之后使用的Unicode,即默认为WideChar,之前的版本是AinsiChar。在Delphi2007之前的版本,你那样写是没错的。
2、winexec(c:\cm.bat,sw_shownormal);弹出的控制台中在执行第一条语句后显示已加载字库之类的信息,然后是执行第二条语句即typec:\test.txtprn后显示Filecreationerror,所以打印机也就没打印。
3、三个SDK函数:WinExec,ShellExecute,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。WinExec两个参数,前一个指定路径,后一个指定显示方式。
最简单的方式是直接运行你的批处理,不要在cmd窗口运行。直接双击,就可以了。
你要看那个程序有没有界面,有界面的没办法始终要弹出来的。如果也是命令行的,可以直接输入命令或者用start/min。
你新建个FORM1,然后双击FORM1,将上面的代码贴入,运行D7生成的程序就可以执行DOS命令了。还有其他问题??令名实行的过程你是可以看见的,这样吧,我先不把DOS命令隐藏,你自己看DOS执行过程,查看是否过程有错。
操作方法如下:点击开始,点击运行,输入cmd,点击确定;进入dos提示符模式后即可执行dos命令;退出dos在提示符后输入exit,回车即可退出。
winexec(clear.bat,sw_show);将你的DOS命令全部放在.bat文件里就可以了。
由于你双击运行,故第一次批处理%1为空,if不成立,转而运行下一句。然后再次打开自己,并传递参数h,此时if成立,跳转至begin开始运行。这两行很经典,可以使批处理无窗口运行。
WinExec主要运行EXE文件。如:WinExec(Notepad.exeReadme.txt,SW_SHOW);ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。
启动另一个exe程序有三个方法:WinExec();ShellExecute();和CreateProcess();其中WinExec()最简单,ShellExecute()较灵活,CreateProcess()最复杂。
可以通过ShellExecute函数进行调用。需要在USES段中加入SHELLAPI。示例:点击一个按钮后打开c:\myapp\myapp.exe。
winexec(clear.bat,sw_show);将你的DOS命令全部放在.bat文件里就可以了。
三个SDK函数winexec,shellexecute,createprocess可以使用。