找回密码
 加入
搜索
查看: 4625|回复: 11

[系统综合] 根据窗口信息判断其对应的进程并将其结束[已解决]

  [复制链接]
发表于 2011-5-6 13:46:00 | 显示全部楼层 |阅读模式
本帖最后由 leon460 于 2011-5-31 20:41 编辑

举个例子:我有三个excel文件1.xls、2.xls、3.xls并用excel软件打开,这样就会产生三个excel.exe进程。请问我怎样根据窗口信息(打开2.xls文件时能读到)判定其对应的进程?

如二楼和三楼所说,我使用excel2003,只有一个进程,当我结束我用winclose结束 窗口时,会影响到 整个excel打开的文档。比如,我只想关闭2.xls,,但是它却连我1.xls、3.xls窗口也关闭掉!!!
Opt("WinTitleMatchMode", 2)
$i=1
$j=0

Do
        If WinExists("生产排程") Then
                $j=$j+1
                If $j=5 Then
                        WinClose("生产排程")
                        $j=0                        
                EndIf
        EndIf        
        Sleep(1000)
Until $i=0        
非常感谢。
发表于 2011-5-6 13:58:39 | 显示全部楼层
根据窗口标题
Microsoft Excel - 1.xls
Microsoft Excel - 2.xls
使用内置函数WinGetProcess获取进程PID

不过,我在Excel2003中同时打开n个xls文件,都只是同一excel.exe进程.
发表于 2011-5-7 11:16:52 | 显示全部楼层
回复 2# easefull


    多个进程还好办,单个的话反而难搞
我这里也是单个进程 的
发表于 2011-5-7 11:35:00 | 显示全部楼层
好像要使用对象,之类的东西,不太懂
 楼主| 发表于 2011-5-9 12:45:32 | 显示全部楼层
自己再顶下,有知道 的人,希望帮忙出出主意,,谢啦
发表于 2011-5-9 13:33:21 | 显示全部楼层
微软的办公软件确实有对象接口的,用那个方便点,不过我也不太懂
 楼主| 发表于 2011-5-9 15:12:44 | 显示全部楼层
回复 6# 飘云

继续顶,呵呵,
发表于 2011-5-10 18:12:02 | 显示全部楼层
_ExcelBookClose($oExcel [, $fSave = 1 [, $fAlerts = 0]])
 楼主| 发表于 2011-5-11 08:46:18 | 显示全部楼层
本帖最后由 leon460 于 2011-5-11 09:26 编辑

回复 8# dyd

这个函数只能 利用_ExcelBookOpen  或者 _ExcelBooknew 返回的 $oExcel   

我怎样读取已经打开的excel文件 $oExcel   信息 ?从而利用  _ExcelBookclose函数???
发表于 2011-5-11 09:23:00 | 显示全部楼层
回复 9# leon460


    _ExcelBookClose
--------------------------------------------------------------------------------

关闭活动工作簿并删除指定的 Excel 对象.


#Include <Excel.au3>
_ExcelBookClose($oExcel [, $fSave = 1 [, $fAlerts = 0]])




参数

$oExcel 由前面调用 _ExcelBookOpen() 或者 _ExcelBookNew() 函数返回的 Excel 对象
$fSave [可选参数] 关闭前是否保存 (0 = 不保存, 1 = 保存;默认 = 1)
$fAlerts [可选参数] 禁用/启用 Excel 消息警告(弹出警告窗口,0 = 禁用, 1 = 启用; 默认 = 0)



返回值

成功: 返回 1
失败: 返回 0, 并设置 @error:
@error: 1 - 指定的对象不存在
2 - 文件已存在, 但未设置覆盖标志



备注

None




相关函数



函数示例


; ***************************************************************
; 实例 1 - 使用默认参数打开一个新的 Excel 窗口并关闭它
; *****************************************************************
#include <Excel.au3>
$oExcel = _ExcelBookNew() ; 实例 1 - 创建一个 Microsoft Excel 窗口
_ExcelBookClose($oExcel) ;默认情况下,将自动保存在"我的文档"文件夹中

; ***************************************************************
; 实例 2 - 使用默认参数打开一个新的 Excel 窗口并关闭它
; *****************************************************************
#include <Excel.au3>
$oExcel = _ExcelBookNew() ; 实例 1 - 创建一个 Microsoft Excel 窗口
_ExcelBookClose($oExcel, 0) ;将有两种可能: 1) 关闭文件, 或 2) 如果 Excel 窗口已改变, 则提示用户

; ***************************************************************
; 实例 3 - 使用默认参数打开一个新的 Excel 窗口并关闭它
; *****************************************************************
#include <Excel.au3>
$oExcel = _ExcelBookNew() ; 实例 1 - 创建一个 Microsoft Excel 窗口
_ExcelBookClose($oExcel, 1, 0) ;此方法将保存,然后关闭该文件,并且不出现任何正常的提示
 楼主| 发表于 2011-5-11 09:27:24 | 显示全部楼层
回复 10# annybaby


    谢谢了,又有新的问题了,,



这个函数只能 利用_ExcelBookOpen  或者 _ExcelBooknew 返回的 $oExcel   

我怎样读取已经打开的excel文件 $oExcel   信息 ?从而利用  _ExcelBookclose函数???
发表于 2011-5-11 09:28:13 | 显示全部楼层
回复 9# leon460


    在UDF里有帮忙信息
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-13 06:50 , Processed in 0.082806 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表