在Delphi中带参数调用.exe,.com文件和运行dos下.bat文件方法大收集(绝对给分) winexecshellexecutecreateprocess 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WinExec('c:\autoexec.bat',Sw_ShowNormal); ShellExecute(0,nil,'c:\1.exe','-a -r',nil,SW_SHOW); CreateProcess('c:\1.exe','-a -r',nil,nil,False,CREATE_NEW_PROCESS_GROUP,nil,nil,Startinfo,ProcessInfo) 在win32下一般用shellexecute和createprocesswinexec是为了兼容win16而留下的函数 高手呀,谢谢.winexecshellexecutecreateprocess 3个函数有什么差别呢?谢谢. 我用ShellExecute(Application.Handle,nil,'pgn.bat','0','pgn.bat', 0);每运行dos下的一个.bat文件后,按ctrl+alt+del总是发现一些winoldap,请问如何能不出现这些东西pgn.bat的内容为MODE COM1 96,N,8,1COPY KILL.pll COM1copy OutGndpdy.lp COM1 把这个SW_SHOW设为SW_Hide,看看如何! 不行,还是出现winoldap,说明一下,我的程序没有窗体,所有代码放在一个工程文件中 setwindowlong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW) 我也遇到过winoldap的情况,那是用winexec的时候,如果你用CREATEPROCESS在用EXITPROCESS就能避免出现着这个问题 可以添加application.mainform.hide试一试 只有一个工程文件,源代码如下,pgn.bat文件的内容在上面发过了program gjdpdy;uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls,ShellAPI;{$R *.RES}beginShellExecute(Application.Handle,nil,'pgn.bat','0','pgn.bat', 0);end. MODE COM1 96,N,8,1 //mode是什么东西? COPY KILL.pll COM1 //kill.pll是什么东西? copy OutGndpdy.lp COM1 //outgunpdy.lp是什么东西? pgn.bat文件说明MODE COM1 96,N,8,1 //设置com1口连接打印机96为波特率9600,数据位8,奇偶校检无N,停止位1COPY KILL.pll COM1 //kill.pll是传到打印机的第一个文件(相当于一个txt文件)copy OutGndpdy.lp COM1 //outgunpdy.lp是传到打印机的第二个文件(相当于一个txt文件) 我认为问题出在这一行,但是不知怎么改,请大家多出表一下自己的意见。谢谢!ShellExecute(Application.Handle,nil,'pgn.bat','0','pgn.bat', 0); 我现在在NT/98下用WinExec定时执行一个.bat文件,也会看到winoldap在任务中,但过一阵子会自己结束啊,甚至定时太短,同时有多个winoldap在任务中时过一会都会自动结束,不会影响我的程序,不知你的是否不能自动结束?还有我想你用CREATEPROCESS在用EXITPROCESS应该可以避免这个问题,不过我没试过。 估计winoldap这个任务是windows启动16位的dos程序自动启动的任务,这个任务的作用是模拟dos环境。 用SendMessage(Findwindow('tty',nil'),wm_close,0,0)就可以关闭他了。 SendMessage(Findwindow('tty',nil'),wm_close,0,0);出错改为SendMessage(Application.Handle,wm_close,0,0);后还是出现winoldap WinExec('a.bat' ,0) //0隐藏运行 简单:在你的bat文件的文件头加一行:@echo off再试试 WinExec('a.bat' ,0) 不行@echo off也不行还是出现winoldap 关键是winoldap是否会自动关掉,我用WinExec会自动退出啊,若会退出,则没有任何问题啊。 to 11830(其其):你的winoldap会不会自己退出? 看来我的跟你的不同,你还是啃啃如何用CREATEPROCESS,EXITPROCESS实现吧.若实现了,麻烦贴出来,让我观摩观摩. WinExec好象是启动DOS的最好方式,SHELLEXECUTE应该作为WINDOWS程序的最好调用!! winexec("C:\Program Files\Windows Media Player\MPLAYER2.EXE avseq01.dat",1); 非常奇怪的一个问题??急!! 求救 Delphi如何读取VB的Form文件并创建窗体 我用delphi10,但是却没有sample组件,该怎么办啊? 新建QQ群,欢迎广大delphi爱好者加入.群号:25203676 如何手工生成对像到窗口上 在Panel1上显示一个Form 请问大家,这个DLL加载后用什么方式卸载?FreeLibrary行不通 大虾们给点意见 在DELPHI中如何实现拷贝目录!!!!!!!!!!!!!!! 请问,诸如:$80、$7f等是什么数据类型呀? 我要透明的Panel, 快没气了, 找了一下午!!!!!
ShellExecute(0,nil,'c:\1.exe','-a -r',nil,SW_SHOW);
CreateProcess('c:\1.exe','-a -r',nil,nil,False,CREATE_NEW_PROCESS_GROUP,nil,nil,Startinfo,ProcessInfo)
winexec是为了兼容win16而留下的函数
winexec
shellexecute
createprocess
3个函数有什么差别呢?谢谢.
ShellExecute(Application.Handle,nil,'pgn.bat','0','pgn.bat', 0);
每运行dos下的一个.bat文件后,按ctrl+alt+del总是发现一些winoldap,
请问如何能不出现这些东西
pgn.bat的内容为
MODE COM1 96,N,8,1
COPY KILL.pll COM1
copy OutGndpdy.lp COM1
说明一下,我的程序没有窗体,所有代码放在一个工程文件中
program gjdpdy;
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,ExtCtrls,ShellAPI;
{$R *.RES}
begin
ShellExecute(Application.Handle,nil,'pgn.bat','0','pgn.bat', 0);
end.
COPY KILL.pll COM1 //kill.pll是什么东西?
copy OutGndpdy.lp COM1 //outgunpdy.lp是什么东西?
MODE COM1 96,N,8,1 //设置com1口连接打印机96为波特率9600,数据位8,奇偶校检无N,停止位1
COPY KILL.pll COM1 //kill.pll是传到打印机的第一个文件(相当于一个txt文件)
copy OutGndpdy.lp COM1 //outgunpdy.lp是传到打印机的第二个文件(相当于一个txt文件)
ShellExecute(Application.Handle,nil,'pgn.bat','0','pgn.bat', 0);
出错
改为
SendMessage(Application.Handle,wm_close,0,0);
后还是出现winoldap
再试试
@echo off也不行
还是出现winoldap