急!!!调用外部程序(.exe)时如何能同时控制该窗体的大小,位置(300分)

  • 主题发起人 主题发起人 gzg
  • 开始时间 开始时间
G

gzg

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; 我在作一个程序时需要调用一个raswin.exe的程序,并且希望他在特定的<br>位置以一定的大小打开他的窗口。<br>&nbsp; &nbsp;我开始用了Winexec来先打开raswin.exe,然后用setwindowpos来控制其大小<br>和位置,但这样的话,每次调用都能看见raswin.exe先在左上角以一定的大小<br>打开,然后再改变其位置与大小。而我希望他一出现就已经改变好了大小。<br>&nbsp; &nbsp;后来我又用了CreateProcess,但不成功,可能我用的参数不对,因为不太熟。<br>&nbsp; &nbsp;程序马上就要交了,十万火急,请高手指点!<br>&nbsp; &nbsp;
 
先以打开为hide方式winexec('raswin.exe',sw_hide),<br>再用setwindowpos,再 &nbsp;showwindow(the,sw_Show);
 
呵呵,实在是高。 &nbsp;:)
 
如果那个程序根本不理会传入的nCmdSHow参数,就不行。<br><br>最稳妥的方法是建立Hook,截获窗口建立的消息,给它重新设置位置
 
最简单的是Winexec('文件名.exe',SW_SHOWMAXIMIZED)<br>SW_SHOWMAXIMIZED: 最大化<br>SW_SHOWMINIMIZED: 最小化<br>如果要指定位置,要用SetWindowsPos,设置大小,用SetWindowsExtEx,用过来都很烦。
 
错了,用SetWindowsPos即可,但你首先要取得被执行程序的窗口句柄才行。(用Winsight<br>看)
 
如果你有耐心,又或者在今后两天内还没行通,我就争取在明后天做出来给你。今天太忙了。
 
先用winexec('raswin.exe',sw_hide)打开,再setwindowpos,再showwindow(handle,sw_normal);
 
多人接受答案了。
 
后退
顶部