文件在别的软件中打开了,怎样在程序中关闭它?(100分)

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

guan1573

Unregistered / Unconfirmed
GUEST, unregistred user!
文件在别的软件中打开了,怎样在程序中关闭它?
 
也许我没有说清楚,在程序中将文件和软件一起关闭!
 
可用如下代码:
var B_Hwnd:Hwnd;
begin
B_Hwnd:=Winprocs.FindWindow(nil,'软件显示信息');
//软件显示信息是该软件打开文件时在系统下方工具条上显示的信息:
if B_Hwnd<>0 then SendMessage(B_Hwnd,WM_CLOSE,0,0);
end;

 
var hand:thandle;
begin
hand:=findwindow(nil,'待关闭软件的标题');
sendmessage(hand,wm_close,0,0);
end;
 
var h1,h2:Thandle;
begin
h1 :=findwindow(nil,'待关闭软件的标题');
h2 :=Findwindow(nil,'打开文件有标题');
sendmessage(h1,wm_close,0,0);
sendmessage(h2,wm_close,0,0);
end;
 
关键问题是,你如何知道待关闭的程序是哪个?
 
给你一个建议
1.据我所知 金山毒霸由此功能,实现方法不太清楚,可能用的是驱动
建议研究一下它
2.我记得 有一样东西 叫 FCB 文件控制块 我研究操作系统。如果一个文件
被打开,则内存中肯定有此纪录。
现在很忙,有空时研究一下
顺便问一下又没有 好的 虚拟主机提供商
 
顶部