========关于shellExecute指令调用程序问题============

lovefox_zoe 2005-08-08 01:57:24
程序A的image在程序启动的时候,用loadfromfile('test.bmp')载入一个图片。没有加路径,程序直接找exe所在路径,因此找的到文件。但是,如果在程序B用
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);
打开程序A,会提示找不到文件?难道这样打开的程序,路径是程序B的路径???

尤其讨厌的是,我在程序A的一个类里面有一个动态创建的image,打开exe程序本地路径的图片,如果用上述的shellexecute调用的话,我还得为这个类传递程序的路径???

---------------------------------------
不知道,是我理解不对,还是方法不对。请大家指点一二.
...全文
210 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovefox_zoe 2005-08-08
  • 打赏
  • 举报
回复
楼上大哥:
呵呵,可以了。多谢

在USES段加入SHELLAPI,使用时如:
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()函数。
========================
我也查到资料了。
lwk_hlj 2005-08-08
  • 打赏
  • 举报
回复
你的ShellExecute方法有误
有个参数
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);
哪个NIL参数不能设置nil
设置成你A程序的路径就可以拉
lovefox_zoe 2005-08-08
  • 打赏
  • 举报
回复
嗯,如果类里面有动态创建载入图片的呢?该不会把这个apppath传进去吧
qizhf 2005-08-08
  • 打赏
  • 举报
回复
shellexecute的参数是类似命令行的参数吧

试试这样:

在A的程序中添加成员
AppDir:String;
然后将你的Image改为动态加载:在FormCreate中加入:
GetDir(0,AppDir);
image1.picture.bitmap.loadfromfile(apppath+'aaa.bmp');

lovefox_zoe 2005-08-08
  • 打赏
  • 举报
回复
to 楼上:
呵呵,这个当然知道。看看我后面的描述

“尤其讨厌的是,我在程序A的一个类里面有一个动态创建的image,打开exe程序本地路径的图片,如果用上述的shellexecute调用的话,我还得为这个类传递程序的路径???”
这个就好麻烦啊。
jianke5555 2005-08-08
  • 打赏
  • 举报
回复
你给A赋上路径就行了:loadfromfile(GetCurrentDir+'\test.bmp')
lovefox_zoe 2005-08-08
  • 打赏
  • 举报
回复
在程序B里面用语句
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);

调用程序A,A提示找不到文件test.bmp
ztenv 2005-08-08
  • 打赏
  • 举报
回复
A提示找不到文件test.bmp吧?说的不太清楚呀;当A程序启动时,你把A的路径设置为当前路径不就行了吗?SetCurrentDirectory();

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧