如何判断..文件是否打开或说程序是否在运行?

n27741 2007-04-02 04:08:09
嗯...是这样的
我打开一个word文件 假设名字为1.doc
然后int FileHand = FileOpen("1.doc",0);
现在发现如下情况

如果1.doc没有运行,也就是说 没有打开这个word文件
那么FileOpen返回 非 -1的数

如果1.doc运行,既打开这个word文件
FileOpen返回 -1...

同时大家也注意到,对于同一个word文件,只能打开1个

而txt则不同
txt可以打开多个,
只要txt存在 fileopen()
始终返回文件句柄...

问 如何确确知道 一个文件以窗口的形式被打开了?????????
...全文
315 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheneyhehe 2007-04-03
  • 打赏
  • 举报
回复
除非我知道notepad.exe打开的是那个路径下的txt
-------------------------------------
可以知道吧,用GetCurrentDirectory不行吗?
n27741 2007-04-03
  • 打赏
  • 举报
回复
我也考虑过用findwindow
并且txt的Caption 就是"文件名.txt - 记事本"
word 就是 "文件名.doc - MircroSoft Word"

1 不知道类的名字 不能确定能否找到窗体,完全依赖微软是否按这样的格式显示

2 不同路径下 相同文件名的问题,按道理不同路径我可以执行操作,如果用findwindows
就判断通不过,除非我知道notepad.exe打开的是那个路径下的txt

cheneyhehe 2007-04-02
  • 打赏
  • 举报
回复
FindWindow不知道能不能解决这个问题
constantine 2007-04-02
  • 打赏
  • 举报
回复
word打开*.doc是用独占方式打开的,所以可以判断。
记事本打开文本文件不是,如果不是独占根本是没有办法判断的。
loki2k 2007-04-02
  • 打赏
  • 举报
回复
使用独占方式打开
如果失败则表示......
n27741 2007-04-02
  • 打赏
  • 举报
回复
这个"文件打开"还是没说清楚
1.txt的 只说 notepad.exe程序打开了一个名字叫1.txt的文件
1.doc 是谁打开的我不知道 肯定也是某个exe

那么我如何知道1.txt或者1.doc 已经被它的解释程序打开了?
假设存在这个函数function
bool function("1.txt")
如果发现此文件被exe解析,则返回true否则返回false
又或者
如果遍历当前进程发现存在notepad.exe进程
有如何知道这个exe打开的是1.txt?
请大家赐教

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧