在1.exe的form中双击一个图标(就是listview的一个节点),启动2.exe;
还要传参数(就是节点的信息)给2.exe。然后1.exe和2.exe互不干扰。关掉1.exe不影响2.exe。
这个怎样才能实现?比如像windows里的网络邻居,在里面双击“宽带连接”。启动宽带连接程序,而网络邻居可以关掉或
在里面再添加其它什么连接。
还要传参数(就是节点的信息)给2.exe。然后1.exe和2.exe互不干扰。关掉1.exe不影响2.exe。
这个怎样才能实现?比如像windows里的网络邻居,在里面双击“宽带连接”。启动宽带连接程序,而网络邻居可以关掉或
在里面再添加其它什么连接。
Pchar('参数'), nil, sw_shownormal);ShellExecute函数是用来打开或者打印一个指定的文件。这个文件可以是一个可执行文件,也可以是一个文档文件。它的语法如下:
HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpoperation, LPCTSTR lpFile,
LPTSTR lpParameters,LPCTSTR lplnrectory,INTnshowCmd ) ;
它的参数是: hwnd这个参数将指定一个父窗口。这个窗口将接收一个应用过程的任何消息。例如,一个应用程序可产生一个消息对话框来报告一个错误。 IPOPeration它是一个空终端字符串,用来说明操作的模式。下面的字符串是有效的:
(1)“OPen”它将打开由参数IPFile指定的文件。这个文件可以是一个可执行文件,也可以是一个文档文件。
(2)“Print“它将打印由参数IPFile指定的文件,这个文件是一个文档文件。当它是一个可执行文件的时候,仍可以执行这个程序。
lpOPeration参数可以设置为NULL,在这种情况下,这个函数将打开由参数lpFlle指定的文件。 IPFile它是一个空终端字符串,用来说明要打开或者打印的文件。 IPParameters当参数IPFile指定的是一个可执行文件时,参数lpParameters是一个空终端字符串,用来说明要打开程序的参数。当参数lpFile指定的是一个文档文件时,参数IPParameters应设置为空(NULL)。 IPDirectory它是一个空终端字符串,用来说明要打开或者打印的文件目录。 nshowCmd当参数IPFile指定一个可执行文件的时候,参数nshowCmd将指定在打开应用程序后如何显示这个应用程序。它可以是下面的数值;
(1)SW_HIDE隐藏这个窗口,并激活另一个窗口;
(2)SW_MAXIMIZE最大化指定的窗口;
(3)SW_MINIMIZE最小化指定的窗口,并激活在“Z”次序的下一层窗口;
(4)SWRESTORE激活并显示这个窗口;当这个窗口是最小化或者最大化, Win-dOWS 将储它的原来位置和大小;
(5)SWSHOW激活这个窗口,并以当前的位置和大小来显示;
(6)SW_SHOWDEFAULT以STARTUPINFO结构指定的SW_FLAG来设置显示的状态,STARTUPINFO是在应用程序运行时,由函数CreateProcess初始他的,一个应用程序应以这个标志位调用函数Showwindow来设置主窗口的显示状态;
(7)SW_SHOWMAXIMIZED激活这个窗口,并最大化地显示;
(8)SW_SHOWMINIMIZED激活这个窗口,并最小化地显示;
(9)SW_SHOWMINNOACTIVE最小化地显示这个窗口,原来激活的窗口仍然激活;
(10)SW_SHOWNA以当前的状态来显示这个窗口,原来激活的窗口仍然激活; 1
(11) SW_SHOWNOACTIVATE以最近的位置和大小来显示这个窗口,原来激活的窗口仍然激活;
(12) SW_SHOWNORMAL激活并显示这个窗口,当这个窗口是最小化或者最大地.Windows将存储它的原来的位置和大小,应用程序应在初始化的时候指定这个标志让。
当参数lpFile指定的是一个文档文件的时候,nshowCmd应设为0。 对返回值而言,当这个函数调用成功的时候,将返回被执行的应用程序的句柄,或者是动态数据链接(DDE)服务器应用程序的句柄;当这个函数调用失败的时候,将近日一个小于或者等于排的错误码,下面是这些错误码的意思;
① 0操作系统内存不够或者资源不够;
② ERROR_FILE_NOT_FOUND 指定的文件没有被发现;
② ERROR_PATH_NOT_FOUND 指定的路径没有被发现;
④ ERROR_BAD_FORMAT 这个可执行文件是无效的;
⑤ SE_ERR_ACCESSDENIED 操作系统不能访问被指定的文件(仅仅是 Windows95才有);
⑥ SE_ERR_ASSOCINCOMPLETE 被指定的文件名是不完整的或者是无效的;
⑦ SE_ERR_DDEBUSY 由于别的DDE传送正在进行,这个DDE传达将不能完成;
⑧ SE_ERR_DDEFAIL DDE传送失败;
⑨ SE_ERR_DDETIMUT 由于请求超出时间,DDE传达将不能完成;
⑩ SE_ERR_DLLNOTFOUND 被指定的动态连接库没有被发现(仅仅是Windows95才有);
⑾ SE_ERRFNF 被指定的文件没有被发现(仅仅是Windows 95才有);
⑿ SE_ERR_NOASSOC 没有应用程序和被指定文件的扩展名相关联;
⒀ SE_ERR_OOM 没有足够的内存来完成这个操作(仅仅是 Windows 95才有);
⒁ SE_ERR_PNF 被指定的路径没有被发现(仅仅是Windows 95才有);
⒂ SE_ERR_SHARE 发生共享冲突。
ShellExecute中的 Pchar('参数') 该怎么写?
2.exe的主form里的函数怎样得到这个参数?
谢谢!
----------------------------------------------------------------
原贴内容:
最后一点,比如我要传的参数是一个i:integer,传给2.exe的主form,那
ShellExecute中的 Pchar('参数') 该怎么写?
2.exe的主form里的函数怎样得到这个参数?
谢谢!这个参数是以空格分割的比如
'a b c'在2 .exe里面这样获取参数for i := 1 to ParamCount do
begin
M_Info.Lines.Add(LowerCase(ParamStr(i)));
end;//for
==============================
在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()函数。