DELPHI 如何打开同目录下的程序?
目录下有123.EXE
怎么打开它呢?SHELLAPI的方法全给我
DELPHI 如何打开同目录下的程序?
目录下有123.EXE
怎么打开它呢?SHELLAPI的方法全给我
有一个函数 可以获取应用程序所在文件夹的路径
extractfilepath 利用这个函数 可以使你实现你所说的功能
extractfilepath(application.exename);
然后你可以使用api函数运行你同文件夹下的程序了
函数原型:
function ExtractFilePath(const FileName: string): string;
返回文件的路径
application.exename 或者是Paramstr(0)都可以使用
ExtractFilePath(application.exename) 或者 ExtractFilePath(paramstr(0))
这两个都可以返回你应用程序所在文件夹路径
比如打开跟程序同目录的文件 如abc.exe在c:/中 如何打开c:/abc/kk.txe 而不用loadformfile('c:/abc/kk.txt') 用('/abc/kk.txt')中的话
要利用ParamStr函数,ParamStr(0)能获取EXE文件名,然后用ExtractFileDir函数取出目录名,看我下面的例子程序: {$apptype console} program temp; uses sysutils; var s:string; begin s:=ExtractFileDir(ParamStr(0)); s:=s+'\abc\kk.txt'; writeln(s); end. 以上程序在DELPHI7下运行通过。
为了宣传下本站,我会长期来为大家解决关于ASP+ACCELL+SQL 与PHP+MYSQL的一些问题
本站网址: http://www.zhanzhangzhijia.com/ 欢迎站长或IT行业访问!
我看了您的问题,既然您说得出SHELLAPI哪么肯定知道ShellExecute,关键应该是‘同目录下’吧。应该是您程序内调用了其它目录,然后没返回做成的错误。应用ExtractFilePath(ParamStr(0))返回目录。
我想答案是ShellExecute(handle, 'open', PChar(ExtractFilePath(ParamStr(0))+'123.EXE'), nil, '',SW_SHOWMAXIMIZED);
其它几个NIL呀、SW_显示方式呀、''内的打开文件呀、运行参数什么的自己再多找找吧。
我随手粘贴一些您看应该已足够
方法一uses WinProcs;
例:WinExec('D:\GoldPacs\GoldConfig.exe',sw_normal);
方法二
用ShellExecute更好,在USES段加入SHELLAPI,使用时如:
执行"c:\myapp\myapp.exe"参数为"-s"
ShellExecute(handle,'open','c:\myapp\myapp.exe','-s',',SW_SHOWNORMAL);
第一个参数为父窗口句柄;
第二个参数为打开方式(OPEN,PRINT两种);
第三个参数为执行文件全路径;
第四个参数为执行文件参数;
第五个参数为执行文件开始运行时的初始目录;
第六个参数为为执行文件运行方式(SW_HIDE,SW_MAXIMIZE,SW_MINIMIZE,
SW_RESTORE,SW_SHOW,SW_SHOWDEFAULT,SW_SHOWMAXIMIZED,SW_SHOWMINIMIZED,
SW_SHOWMINNOACTIVE,SW_SHOWNA,SW_SHOWNOACTIVATE,SW_SHOWNORMAL);
具体请看帮助。另外,如果为字符串参数,其中包含变量或运算的必需用PCHAr()函数。
如果你想省事,要求又没那么高的话
Winexec也可以的。
shellexecute(0,nil,pchar('123.exe),nil,nil,0);
关于ShellExecute函数: 在ShellAPI单元中,ShellExecute函数的定义为: function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall; 作用:打开或打印一个指定的文件; 参数说明: hWnd hwnd, //指向父窗口的句柄; Operation: PChar, //指向一个null结尾的串以指明要执行的操作; 可以是"open","print","explore",NULL; FileName: PChar, //指向文件名或文件夹名串; Parameters: PChar, //指向一个null结尾的串以指明可执行文件的参数; 如果FileName参数为文档,此参数应为NULL; Directory: PChar, //指向一个null结尾的串以指明默认目录; ShowCmd: Integer //文件在打开时是否显示; 如果FileName参数为文档,此参数应为0;