VB6 如何扫描内存中已经打开的excel和word文档并自动将其保存?

hSnapShot=CreateToolhelpSnapshot(TH32CS_SNAPall,0)'获得进程“快照”的句柄Proc.dwSize=Len(Proc)lP... hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) '获得进程“快照”的句柄
Proc.dwSize = Len(Proc)
lPid = ProcessFirst(hSnapShot, Proc) '获取第一个进程的PROCESSENTRY32结构信息数据
I = 0
Do While lPid <> 0 '当返回值非零时继续获取下一个进程
If InStr(1, UCase(Proc.szExeFile), "EXCEL.EXE") Then
MsgBox ("请将打开的Excel表格保存并关闭,以免数据丢失。")

此处如何让其自动保存?

lPHand = Proc.th32ProcessID
lPHand = OpenProcess(1&, True, lPHand) '获取进程句柄
TMBack = TerminateProcess(lPHand, 0&) '关闭进程
CloseHandle lPHand
End If
I = I + 1
lPid = ProcessNext(hSnapShot, Proc) '循环获取下一个进程的PROCESSENTRY32结构信息数据
Loop
CloseHandle hSnapShot '关闭进程“快照”句柄
88900好,你所列出的语句是要调用EXCEL程序和WORD程序才能保存,我如何在不调用此程序而是利用系统的存储功能将上述语句所发现的文档保存并关闭,例如是用写字板打开的WORD文档或其它软件打开的EXCEL表格。
展开
 我来答
ljl88900
2010-05-01 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2635万
展开全部
一、上述代码都不要,只要复制代码即可:

Sub AutoSave()
Dim xlApp
Dim xlBook
Dim i As Integer
On Error Resume Next
Err.Clear
Set xlApp = GetObject(, "Excel.Application") '
If Err.Number = 0 Then
For i = 1 To xlApp.workbooks.Count
Set xlBook = xlApp.workbooks(i) '装入已经存在的EXCEL文件
If Not xlBook.saved Then xlBook.saved = True '自动保存
DoEvents
Next
End If
Err.Clear
Set xlApp = GetObject(, "Word.Application")
If Err.Number = 0 Then
For i = 1 To xlApp.documents.Count
Set xlBook = xlApp.documents(i) '装入已经存在的Word文件
If Not xlBook.saved Then xlBook.saved = True '自动保存
DoEvents
Next
End If
Set xlBook = Nothing '释放对象
Set xlApp = Nothing '释放对象
End Sub

二、调用很简单,只要在需要时写入
AutoSave 语句就行。
甲甲虫
2010-05-04 · TA获得超过976个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:387万
展开全部
找到窗口,激活窗口,然后sendkeys发送ctrl +S

无需这么复杂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式