如何获得打开文件的句柄 或者怎么样打开指定文件并嵌入到我的程序中 ( 积分: 200 )

  • 主题发起人 主题发起人 埃及使者
  • 开始时间 开始时间

埃及使者

Unregistered / Unconfirmed
GUEST, unregistred user!
要求是:打开指定文件(用户指定),文件可能是.doc,.xls,.pdf....然后显示在我的程序中的一个容器内(最好能充满)。<br>我的思路是:1、使用shellexecute打开(因为文件的格式太多)<br>2、找到该文件的句柄(缺少方法,无法使用FINDWINDOW)<br>3、windows.setparent(文件句柄,程序中容器的句柄)&nbsp;&nbsp;(现在无法充满容器,不知道有什么好的方法)<br><br>我的思路不是必须的,有其他方法也可以!<br>请大家多发表看法!<br>路过的,请帮忙顶一下!谢谢!
 
这个以前有人问过&nbsp;&nbsp;确实不好找句柄&nbsp;关键什么都不知道
 
if&nbsp;WinExec('DataBack.exe&nbsp;&nbsp;1',SW_SHOWNORMAL)&nbsp;&lt;&nbsp;31&nbsp;&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(Application.Handle,&nbsp;'調用失敗!','錯誤',MB_OK+MB_ICONERROR);<br>在delphi&nbsp;7中&nbsp;要uses&nbsp;windows單元
 
winexec&nbsp;不符合要求,以为我要调用的是文件,不一定是可执行程序!<br>在就是楼上的代码是做什么的,似乎与本问题无关啊!
 
等高手来回答&nbsp;&nbsp;先做个记号
 
hook&nbsp;createfile
 
findwindow经常有奇怪的问题,<br>可以先用&nbsp;spy++看看你的窗口名字和类型<br>然后用EnumWindows根据窗口名字和类型找出窗口的句柄<br><br>shellexecute(&nbsp;.....);<br>EnumWindows(&nbsp;@EnumWindowsProc,LongInt(self));<br><br>function&nbsp;EnumWindowsProc(AHWnd:&nbsp;HWnd;<br>&nbsp;&nbsp;&nbsp;LPARAM&nbsp;:&nbsp;LPARAM):&nbsp;boolean;&nbsp;stdcall&nbsp;;<br>var<br>&nbsp;&nbsp;WndCaption:&nbsp;array[0..254]&nbsp;of&nbsp;char;<br>&nbsp;&nbsp;WndClassName:&nbsp;array[0..254]&nbsp;of&nbsp;char;<br>&nbsp;&nbsp;i&nbsp;:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;GetWindowText(AHWnd,&nbsp;@WndCaption,&nbsp;254);<br>&nbsp;&nbsp;GetClassName(AHWnd,&nbsp;@WndClassName,&nbsp;254);<br><br>&nbsp;&nbsp;//&nbsp;根据&nbsp;WNDCAPTION&nbsp;和&nbsp;WNDCLASSNAME&nbsp;确定AHWND是否是目标窗口<br>end;
 
请详细些说明!
 
后退
顶部