G gutian Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #1 我想在程序中把另外一各程序运行,同时把自己关闭。该如何做
C coolbaby Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #2 ShellExcute(other app...);<br>application.terminate;
卷 卷起千堆雪tyn Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #3 uses ShellAPI;<br><br>ShellExecute(GetDesktopWindow, 'open', '调用的程序路径', nil, nil, 0);
G gutian Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #4 ShellExecute(GetDesktopWindow, 'open', pchar(FileName), nil, nil, 0);<br>一点效果都没有。<br>我的程序是一个用于通过网络自动升级的,在download完新程序后,在升级程序中运行我的<br>程序,然后把升级程序关闭。<br>但是无论如何都不能把我的程序运行起来,直接双击是可以的。
ShellExecute(GetDesktopWindow, 'open', pchar(FileName), nil, nil, 0);<br>一点效果都没有。<br>我的程序是一个用于通过网络自动升级的,在download完新程序后,在升级程序中运行我的<br>程序,然后把升级程序关闭。<br>但是无论如何都不能把我的程序运行起来,直接双击是可以的。
F free_knight Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #5 uses WinProcs; <br> ..... <br>begin <br> WinExec(......); <br>.......... <br>end. <br><br>和调用Pascal库函数没什么两样。<br> <br>例如:<br>WinExec('c:/windows/calc.exe',SW_SHOWNORMAL); //启动计算器<br>函数原型为:<br>UINT WinExec(<br>LPCSTR lpCmdLine, // address of command line <br>UINT uCmdShow // window style for new application <br>); <br><br>
uses WinProcs; <br> ..... <br>begin <br> WinExec(......); <br>.......... <br>end. <br><br>和调用Pascal库函数没什么两样。<br> <br>例如:<br>WinExec('c:/windows/calc.exe',SW_SHOWNORMAL); //启动计算器<br>函数原型为:<br>UINT WinExec(<br>LPCSTR lpCmdLine, // address of command line <br>UINT uCmdShow // window style for new application <br>); <br><br>
G gutian Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #7 不对,我刚才实验过,好像我用以上的函数调用外部程序是可以的,就是调用这个程序不行<br>而我通过双击又是可以的
G gutian Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #8 发现一个更奇怪的问题了,只要是我通过网络下载的话,程序就不能自动运行起来,而<br>文件的大小没有变化
Z zlt Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #9 你DownLoad下来的Program是否完整,有没奖以前的程序防到另一路径!
I iseek Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-30 #12 实现打开文件<br>打开Windows已经注册的文件其实很简单,根据以下代码定义一个过程:<br>procedure URLink(URLChar);<br>begin<br>ShellExecute(0, nil, URL, nil, nil, SW_NORMAL);<br>end;<br>在要调用的地方使用<br>URLink('Readme.txt');<br>如果是链接主页的话,那么改用<br>URLink('http://gui.yeah.net');
实现打开文件<br>打开Windows已经注册的文件其实很简单,根据以下代码定义一个过程:<br>procedure URLink(URLChar);<br>begin<br>ShellExecute(0, nil, URL, nil, nil, SW_NORMAL);<br>end;<br>在要调用的地方使用<br>URLink('Readme.txt');<br>如果是链接主页的话,那么改用<br>URLink('http://gui.yeah.net');
I iseek Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-01 #14 gutian,我这样做行啊,当你运行了一个程序后,再close自己怎么不行?<br>那一段只是我从硬盘上拽的一个例子。<br>不过,我的确没有看清楚是要启动一个不带参数的exe。URLink是启动一个默认打开某类<br>文件的关联程序。你完全可以把它仅仅看作一个思路,你说对么。<br>呵呵,不要轻易说人乱说,我也可以说你乱说啊。<br>关键看答题的人是真心还是捣乱。难道这儿不允许答错么?<br>其实你提的这些问题以前肯定有答案,就不能自个儿去找找么?<br>我再贴一帖:<br>========================================================<br>执行外部程序<br>var<br> pWindowsList: pointer;<br> hActiveWindow: HWnd;<br> hExeHandle: THandle;<br>begin<br> pWindowsList := DisableTaskWindows(0);<br> hActiveWindow := GetActiveWindow;<br> try<br> hExeHandle := WinExec('arj.exe /?',SW_SHOWNORMAL);<br> while GetModuleUsage(hExeHandle) <> 0 do<br> Application.ProcessMessages;<br> finally<br> EnableTaskWindows(pWindowsList);<br> SetActiveWindow(hActiveWindow);<br> end;<br>end;<br>================================================<br>但愿你不要再说我乱说。呵呵。<br>
gutian,我这样做行啊,当你运行了一个程序后,再close自己怎么不行?<br>那一段只是我从硬盘上拽的一个例子。<br>不过,我的确没有看清楚是要启动一个不带参数的exe。URLink是启动一个默认打开某类<br>文件的关联程序。你完全可以把它仅仅看作一个思路,你说对么。<br>呵呵,不要轻易说人乱说,我也可以说你乱说啊。<br>关键看答题的人是真心还是捣乱。难道这儿不允许答错么?<br>其实你提的这些问题以前肯定有答案,就不能自个儿去找找么?<br>我再贴一帖:<br>========================================================<br>执行外部程序<br>var<br> pWindowsList: pointer;<br> hActiveWindow: HWnd;<br> hExeHandle: THandle;<br>begin<br> pWindowsList := DisableTaskWindows(0);<br> hActiveWindow := GetActiveWindow;<br> try<br> hExeHandle := WinExec('arj.exe /?',SW_SHOWNORMAL);<br> while GetModuleUsage(hExeHandle) <> 0 do<br> Application.ProcessMessages;<br> finally<br> EnableTaskWindows(pWindowsList);<br> SetActiveWindow(hActiveWindow);<br> end;<br>end;<br>================================================<br>但愿你不要再说我乱说。呵呵。<br>
影 影 子 Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-01 #15 似乎在WIN2000上调用DOS命令得不到结果。<br>例如COPY命令,除非生成一个批处理的文件并执行它,再删除该批处理文件。<br>关闭程序(没测试过,应该可以的吧):<br>halt(要注意资源释放)<br>Application.Terminate<br>向主窗口发送WM_CLOSE消息
似乎在WIN2000上调用DOS命令得不到结果。<br>例如COPY命令,除非生成一个批处理的文件并执行它,再删除该批处理文件。<br>关闭程序(没测试过,应该可以的吧):<br>halt(要注意资源释放)<br>Application.Terminate<br>向主窗口发送WM_CLOSE消息
P power_alan Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-02 #16 应该是WINDOWS有问题,换台机子试试吧!
G gutian Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-03 #17 谢谢各位,这两天不在单位,回去试一试告诉各位结果,祝各位节日快乐
I iseek Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-04 #19 不会吧,我的程序里就有调用外部程序的片断呀。<br>关掉一个知道文件名也知道路径的程序应该是很简单的。<br>即使不知道,也可能杀掉线程。<br><br>楼上的DFW要不来段完整的例子?<br>
G gutian Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-04 #20 如果仅仅是调用的话就没有这么多烦恼了,问题是我是用indy先下载(从iis),然后再<br>调用就不行了呀