S seaflyboy Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #1 我发现用api函数调用delphi编译的exe文件有问题。将exe文件最小化,再用api函数调用<br>exe文件,并将它放到最前时,这个exe文件不能够最小化了,而调用非delphi编译的exe<br>文件时,就没有这种问题。请问谁有高招能解决这个问题?<br>请实验过了再给我答复。<br>
我发现用api函数调用delphi编译的exe文件有问题。将exe文件最小化,再用api函数调用<br>exe文件,并将它放到最前时,这个exe文件不能够最小化了,而调用非delphi编译的exe<br>文件时,就没有这种问题。请问谁有高招能解决这个问题?<br>请实验过了再给我答复。<br>
S seaflyboy Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #3 这是我的程序(打‘//’是我实验过的句子):<br>procedure TForm1.Button1Click(Sender: TObject);<br>var wnd:hwnd;<br> schar;<br>begin<br> wnd:=findwindow(nil,'接受工程发布通知书');<br> edit1.Text:=inttostr(wnd);<br> ShowWindow(wnd,SW_MAXIMIZE)<br> //ShowWindow(wnd,sw_restore)<br> //SetForegroundWindow(wnd)<br> //SetWindowPos(Handel_temp, HWND_TOP, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);<br> //SetForegroundWindow(handel_temp);<br> //sendmessage(handel_temp,wm_syscommand,SC_RESTORE,0);<br> //postmessage(handel_temp,WM_SHOWWINDOW,0,SW_PARENTCLOSING);<br>end;<br>
这是我的程序(打‘//’是我实验过的句子):<br>procedure TForm1.Button1Click(Sender: TObject);<br>var wnd:hwnd;<br> schar;<br>begin<br> wnd:=findwindow(nil,'接受工程发布通知书');<br> edit1.Text:=inttostr(wnd);<br> ShowWindow(wnd,SW_MAXIMIZE)<br> //ShowWindow(wnd,sw_restore)<br> //SetForegroundWindow(wnd)<br> //SetWindowPos(Handel_temp, HWND_TOP, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);<br> //SetForegroundWindow(handel_temp);<br> //sendmessage(handel_temp,wm_syscommand,SC_RESTORE,0);<br> //postmessage(handel_temp,WM_SHOWWINDOW,0,SW_PARENTCLOSING);<br>end;<br>
Y yzhshi Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #4 Delphi里面,它的Application和Form分别是两个Handle,你FindWindow查找的是哪一个Handle,<br>如果两个相同,最好都实验一下。
S seaflyboy Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #5 to yzhshi:<br>???您说的我不太懂,我用findwindow找的是标题为'接受工程发布通知书'的窗口。您能说<br>的明白点么?或给我点代码看看!<br>
Y yzhshi Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #6 你看见的窗体的Caption和按Ctrl+Tab显示的Caption可能不是一个,一个是Application的,<br>一个是Form的。<br>我现在挺忙的,你先自己实验一下吧。OK?
D dcsdcs Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #7 ShowWindow(wnd,SW_MAXIMIZE)<br>就发送一个最大话的message<br>没有问题,<br>ShowWindow(wnd,SW_MAXIMIZE)//最大话<br> //ShowWindow(wnd,sw_restore)//恢复<br> //SetForegroundWindow(wnd)<br> //SetWindowPos(Handel_temp, HWND_TOP, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);//设置form信息<br> //SetForegroundWindow(handel_temp);<br> //sendmessage(handel_temp,wm_syscommand,SC_RESTORE,0);<br> //postmessage(handel_temp,WM_SHOWWINDOW,0,SW_PARENTCLOSING);<br>
ShowWindow(wnd,SW_MAXIMIZE)<br>就发送一个最大话的message<br>没有问题,<br>ShowWindow(wnd,SW_MAXIMIZE)//最大话<br> //ShowWindow(wnd,sw_restore)//恢复<br> //SetForegroundWindow(wnd)<br> //SetWindowPos(Handel_temp, HWND_TOP, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);//设置form信息<br> //SetForegroundWindow(handel_temp);<br> //sendmessage(handel_temp,wm_syscommand,SC_RESTORE,0);<br> //postmessage(handel_temp,WM_SHOWWINDOW,0,SW_PARENTCLOSING);<br>
萧 萧月禾 Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #8 to seaflyboy: 请问你是不是也在作招投标的项目呀?[]
S seaflyboy Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #9 to yzhshik,我先试试。<br>to dcsdcs:我试过了,还是老问题。
H hawkfly Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #11 我原来用BCB做程序时也有这个问题,后来经过实验,用下面这段代码可以正常工作,<br>不过我没有对delphi做测试。<br>Title为程序窗口的名称,ExeName为程序名。<br><br>void RunProgram(char * Title,char * ExeName,char *param)<br>{<br> HWND hd=NULL;<br> hd=FindWindow(NULL,Title);<br> AnsiString Param;<br> Param=param;<br> if(hd!=NULL)<br> {<br> SendMessage(hd,WM_SYSCOMMAND,SC_RESTORE,NULL);<br> BringWindowToTop(hd);<br> }<br> else<br> ShellExecute(Handle,NULL,ExeName,Param.c_str(),SoftPath.c_str(),SW_SHOWNORMAL);<br>}<br>
我原来用BCB做程序时也有这个问题,后来经过实验,用下面这段代码可以正常工作,<br>不过我没有对delphi做测试。<br>Title为程序窗口的名称,ExeName为程序名。<br><br>void RunProgram(char * Title,char * ExeName,char *param)<br>{<br> HWND hd=NULL;<br> hd=FindWindow(NULL,Title);<br> AnsiString Param;<br> Param=param;<br> if(hd!=NULL)<br> {<br> SendMessage(hd,WM_SYSCOMMAND,SC_RESTORE,NULL);<br> BringWindowToTop(hd);<br> }<br> else<br> ShellExecute(Handle,NULL,ExeName,Param.c_str(),SoftPath.c_str(),SW_SHOWNORMAL);<br>}<br>
Y yzhshi Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #12 记得最近在DFW上讨论那个Application本身也是一个窗体的问题,估计问题就出在这里。<br>这可能是Delphi特有的呀。[]
S seaflyboy Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-25 #13 to hawkfly:谢谢!这些命令我都试过,除了调用delphi编译的exe文件有问题,调用其他的<br>exe文件没什么问题。