Powerpoint无法关闭-Tcl-TWAPI

时间:2019-06-14 05:10:32

标签: tcl powerpoint

我创建了一个tcl脚本,该脚本应该执行以下活动:

  1. 打开ppt对象
  2. 添加新幻灯片
  3. 粘贴动画(.avi)文件。
  4. 保存文件
  5. 关闭ppt

一切正常,但最后ppt无法关闭。这是我编写的代码。有什么我想念的吗?

[[[1.0] [1.0] [0.0] [0.0]]
 [[1.0] [1.0] [0.0] [0.0]]
 [[0.0] [1.0] [0.0] [0.0]]]

更新-添加了$ presents -destroy

set job_folder "C:\\Users\\xcxc\\Desktop\\test_ui\\test" 

set num_of_modes 15

#get the directory#
set dirname [file dirname [info script]]
set template_dirname "$dirname/Report_Template.pptx"


#handle the files#

file copy -force "$dirname/Report_Template.pptx" "$job_folder/Report/Report.pptx"

#modify the PPts#
package require twapi
set ppt [::twapi::comobj PowerPoint.Application]
$ppt DisplayAlerts [expr 0]
set presents [$ppt Presentations]
$presents Open "$job_folder/Report/Report.pptx"; #Open the Presnetation
set active_presentation [$ppt ActivePresentation]; #get the cureently active presentaatin
set slides [$active_presentation Slides]; #gte the slide list
set slide_1 [$slides Item 1]; #get control on slide index 1


set object_list {}
set mode_counter 1
while {$mode_counter <= $num_of_modes} {
    set slide_num [expr {$mode_counter + 1}]
    set slide_$slide_num [$slides Add $slide_num 12]; #add one more slide into the presentation

    set slide_$slide_num\_shapes [[set slide_$slide_num] Shapes]

    set slide_$slide_num\_video_1 [[set slide_$slide_num\_shapes] AddMediaObject2 [file nativename "$job_folder/Report/Mode_$mode_counter\_Iso_Front.avi"] -1 -1 20 100 650 300]

    set slide_$slide_num\_video_2 [[set slide_$slide_num\_shapes] AddMediaObject2 [file nativename "$job_folder/Modal_Analysis/Report/Mode_$mode_counter\_Iso_Back.avi"] -1 -1 500 100 650 300]


    lappend object_list "slide_$slide_num"
    lappend object_list "slide_$slide_num\_shapes"
    lappend object_list "slide_$slide_num\_video_1"
    lappend object_list "slide_$slide_num\_video_2"

    incr mode_counter 1
}


$active_presentation Save 

foreach object $object_list {
    puts $object
    [set $object] -destroy
}

$slides -destroy
$active_presentation -destroy 


$ppt Quit
$ppt -destroy

0 个答案:

没有答案