能否通过代码实现,自动将Word或Excel编辑的文件保存,然后正常地将计算机关闭?

getnow 2001-07-19 05:32:16
能否通过代码实现,自动将Word或Excel编辑的文件保存,然后正常地将计算机关闭?
...全文
324 点赞 收藏 22
写回复
22 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lysking 2001-07-27
1.取得各进程句宾
2.向各程序发出WM_CLOSE消息
3.此时程序如果打开的是有文件名的文件,已经被修改的话,必然会弹出对话框
(可以在这跟踪API信息了...)
我想第一步应该跟终 Messagebox,然后给她以确定结束
如果有未取名的文件则,第二步跟踪 filedialog ,给其一个文件名,然后结束.
回复
vcsongs 2001-07-25
如果是普通程序. 如果想保存文件. 对各个程序的主窗口发CLOSE消息后, 如果需要保存文件, 一个共性的情况是都使用了FileDialog... 看看有没有什么办法... 比如HOOK这个对话框.
回复
lysking 2001-07-25
保存文件最难,我想了很久也不知道该从何入手。
回复
gunney 2001-07-23
好象这是一个难题 chief(大副)的回答还有点意思 谢谢你老兄
回复
xiaomin235 2001-07-22
用GetActiveObject()获得当前运行的对象实例,然后就可以做你想做的事,用ExitWindows()关机.
回复
chief 2001-07-21
各位,并不只是word、excel之類的程序呀,若是記事本還可以用COM來關嗎? 而vba就更不用說了
回复
chief 2001-07-20
2 getnow():
關鍵地方就在于當出現 文件保存對話框,你要如何能讓它強制保存呢?

我想山特軟件應不會如此簡單的實現此功能,可能它有通過hook來監控文件系統

2 plato:
我也曾想過用此方法,但事實上不太行得通,因為若有個文件為新建,并未有文件名,那麼你發出enter,它又會要求輸入文件名,那你該如何呢?

2 gunney(楚州才子):
我給你我用的方法:(高手莫笑)
1、找出系統中所有的頂層窗口(且無父窗口)
2、給這此窗口發出WM_QUERYENDSESSION,通過回應即可知道它是否需要保存
3、通過其窗口句柄找出其進程id,再以TerminateProcess殺掉該進程(我找不出一個通用的方法來讓該進程做保存動作)
4、再調用ExitWindows來關機(若是在2000下還需要改變相關權限才行)
回复
getnow 2001-07-20
事实上一些智能型UPS软件已经实现了这个功能,以下是山特的一则FAQ:
山特的监控软件能否在UPS关机前,自动将我的Word或Excel编辑文件保存?
如果用户的计算机上安装有电侦探9合1,或WinPower97 RUPSII,或WinPower98,或WinPower99,监控软件会自动保存你对文件所做的改动,如果你的文件尚未命名,监控软件会自动给这个文件以一个文件名存盘,然后正常地将计算机操作系统关闭。关闭和/或存盘的文件信息可从监控软件中的“上次关闭的应用程序”中获得。

我是这么考虑的:先获得应用程序的句柄,然后向其发送关闭程序的消息,如果文件没保存过,会出现一个保存文件的对话框,再强制以默认的文件名保存。也不知道这样是否可行?
回复
plato 2001-07-20
这个没有统一的办法,要不同的应用不同处理,编一个找窗口,然后发ALT-F4, ENTER确认健的程序。用TerminateProcess就不能存盘了。
回复
ed9er 2001-07-20
又是在给哪个傻B机关单位做OA吧?那帮白痴,叫他们先去学学电脑基本操作
回复
gunney 2001-07-20
可以讲清楚一点吗
给个demo好吗????
回复
objectman 2001-07-20
VBA做宏,
回复
getnow 2001-07-20
vcsongs(vcsongs),能否详细地说明一下,或者给个demo!
回复
vcsongs 2001-07-20
通过COM接口直接强制保存. 这样可以不出现文件保存对话框...
然后关机...
回复
getnow 2001-07-20
lysking(魔鬼鱼),能否把编译后的程序发一份给我看看。
我的Email:getnow@yeah.net
回复
lysking 2001-07-20
有人做出来过,但我只能用他们编译后的程序,可以保存文件,并可查看保存文件列表,难就难在如何保存,我猜想是通过跟踪API。
回复
getnow 2001-07-20
这个问题是不是太难了?
回复
vcsongs 2001-07-19
关机有API呀.
有什么特殊之处吗?
Word & Excel都是COM服务器. 可以通过它们的接口控制...
回复
gunney 2001-07-19
chief(大副) 
到底要如何呢?
我的 e-mail:gunney@sina.com
回复
seedundersnow 2001-07-19

Windows2000可以休眠,或许你可以参考....

回复
加载更多回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-19 05:32
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……