关于外部程序的调用?(100分)

  • 主题发起人 主题发起人 kucio
  • 开始时间 开始时间
K

kucio

Unregistered / Unconfirmed
GUEST, unregistred user!
在我的程序中需要调用其他的程序以完成某个特定的任务,我想问能不能<br>控制这个程序的运行,例如使该程序的某个按钮失效,获知这个程序生成<br>了那些文件等等。<br>我不知道这些从原理上行不行的通,请各位高手指点!
 
&gt;&gt;控制这个程序的运行,例如使该程序的某个按钮失效<br>应该可以,看看已答问题.<br><br>&gt;&gt;获知这个程序生成了那些文件<br>估计不行.
 
如果是Com接口的程序肯定可以,如果不是那只有通过FindWindow函数取得目标<br>窗口的句柄。用法是:<br>FindWindow(ClassName,TileName);//ClassName为窗口的类名,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TileName为窗口的标题<br>这两个用一个即可,通过Delphi的工具WinSight可以得到窗口的类名和标题。<br>通过GetMenu<br>可以得到窗口的主菜单句柄。具体可看看联机帮助。<br>禁止了一个菜单相应的按钮应可以禁止,我没试过。<br>如果不是Com程序获知这个程序生成了那些文件好像不可能。<br>
 
"是Com程序"就能知道生成了哪些文件吗?
 
Fencer:<br>能举个简单的例子吗?
 
好像不太可能。还是说的再清楚一点吧
 
<br>@_@<br><br>只要那些'其他的程序'也是你写的就行 :)<br>或者提供接口
 
kao!如果是自己的程序,还用在这里提问码?
 
控制这个程序的运行应该可以<br>用findwindow得到窗口句柄,然后对它发送windows消息就可以了。<br>获知这个程序生成了那些文件恐怕很难,有个办法是随时检测硬盘上的文件的变化<br>但这个实现起来也不容易。
 
&gt;&gt;如果是Com接口的程序肯定可以<br>&nbsp; &nbsp;我帮Fencer解释一下吧,不知道大伙有没有看过Marco Cantu的《Delphi从入门到精通》,上面有个经过COM包装的FileEditor的例子,大家参照一下。<br>&nbsp; &nbsp; 其实COM接口的程序就是提供函数接口可供外部程序调用。所以一个程序做的好的话(开放性好),用不用COM接口都无所谓(但COM更标准).
 
使程序的某个按钮失效比较难,要获知这个程序生成了那些文件不难、<br>可以用硬盘扫描的办法,类似Cleansweep,动态监视硬盘文件的改变<br>(算法文件太大,如需请E-mail ot lzw77@163.net)<br>
 
柳五公子: 如果这个"外部程序"是自己的,不用com也可以知道生成了哪些文件.<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 如果不是自己的,用com也没用. 人家可不一定给你提供生成了哪些<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 文件的接口.<br><br>BTW:《Delphi从入门到精通》哪里可以下载?
 
多人接受答案了。
 
后退
顶部