程序A的image在程序启动的时候,用loadfromfile('test.bmp')载入一个图片。没有加路径,程序直接找exe所在路径,因此找的到文件。但是,如果在程序B用
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);
打开程序A,会提示找不到文件?难道这样打开的程序,路径是程序B的路径???尤其讨厌的是,我在程序A的一个类里面有一个动态创建的image,打开exe程序本地路径的图片,如果用上述的shellexecute调用的话,我还得为这个类传递程序的路径???---------------------------------------
不知道,是我理解不对,还是方法不对。请大家指点一二.
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);
打开程序A,会提示找不到文件?难道这样打开的程序,路径是程序B的路径???尤其讨厌的是,我在程序A的一个类里面有一个动态创建的image,打开exe程序本地路径的图片,如果用上述的shellexecute调用的话,我还得为这个类传递程序的路径???---------------------------------------
不知道,是我理解不对,还是方法不对。请大家指点一二.
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);调用程序A,A提示找不到文件test.bmp
呵呵,这个当然知道。看看我后面的描述“尤其讨厌的是,我在程序A的一个类里面有一个动态创建的image,打开exe程序本地路径的图片,如果用上述的shellexecute调用的话,我还得为这个类传递程序的路径???”
这个就好麻烦啊。
AppDir:String;
然后将你的Image改为动态加载:在FormCreate中加入:
GetDir(0,AppDir);
image1.picture.bitmap.loadfromfile(apppath+'aaa.bmp');
有个参数
ShellExecute(handle,'OPEN',PChar(sExePath),PChar(sParam),nil,SW_SHOWNORMAL);
哪个NIL参数不能设置nil
设置成你A程序的路径就可以拉
呵呵,可以了。多谢在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()函数。
========================
我也查到资料了。