如何用SetWindowPos控制用ShellExecute执行的程序的位置(30分)

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

koliwo

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; &nbsp;我用ShellExecute执行了一个可执行程序,<br>&nbsp; &nbsp; 希望控制此程序在屏幕上的显示位置。用了SetWindowPos,可是控制不成功。<br>&nbsp; &nbsp; 代码可编译过去,但无法实现。 谁能帮我 &nbsp;谢拉!!<br>&nbsp;var<br>&nbsp; hw: HWND;<br>&nbsp; wp: TWindowPos;<br>begin<br>&nbsp; &nbsp; ShellExecute(handle,'open',123.xls','','',SW_SHOWDEFAULT);<br>&nbsp; &nbsp; hw := FindWindow('123.xls', nil);<br>&nbsp; if hw &lt;&gt; 0 then<br>&nbsp; &nbsp; &nbsp; &nbsp;SetWindowPos(hw,HWND_BOTTOM, 10, 10,10, 20,SWP_SHOWWINDOW);<br>end;
 
标题是 123.xls 吗? 那应该 FindWindow( nil ,'123.xls');
 
不对啊 &nbsp; &nbsp;还是不可以控制 EXCEL 的位置啊。
 
备注:如果设置了SWP_SHOWWINDOW和SWP_HIDEWINDOW标志,则窗口不能被移动和改变大小。如果使用SetWindowLong改变了窗口的某些数据,则必须调用函数SetWindowPos来作真正的改变。使用下列的组合标志:SWP_NOMOVEISWP_NOSIZEISWP_FRAMECHANGED。
 
你说的 &nbsp; 好像不对啊 &nbsp; 能否详细一些 &nbsp; <br>提出个测试过的 解决办法啊
 
SetWindowPos(hw,HWND_BOTTOM, 10, 10,10, 20,SWP_NOZORDER or SWP_NOACTIVATE);
 
后退
顶部