老榆头 发表于 2009-7-20 14:19:07

powerpoint的保存对话框,中文不能发送

我想实现自动将单独文件夹内的所有图片,导入powerpoint相册这样一个功能
现在的问题是保存时,我想用文件夹的名字做为ppt相册的保存的名字
当是中文的时候,就出错了。

看了thesnow的一个回复:
-------------------------------------------
Send不支持中文,如果官方将特性请求做完,那么下一个版本可以发生UNICODE字符。
目前的方法:
1,SENDX
2,设置控件文本
3,利用剪切板复制粘贴
-----------------------------------------
1,用了sendx,不行是乱码。另外也用了sendc,也不行
2,用controlsettext,可能是不会用,根本就没有内容传过去
3,不会用

源码在第二楼,请大家帮忙,多谢!

老榆头 发表于 2009-7-20 14:19:43

本帖最后由 老榆头 于 2009-7-20 14:38 编辑

我的powerpoint 版本为2007#include <ACN_String.au3>

;========run powerpoint & open photo album============

Send("#r")
WinWaitActive("运行")
Send("powerpnt{Enter}")
WinWaitActive("Microsoft PowerPoint - [演示文稿1]")
Send("!n")        ; 激活菜单栏插入选项卡
Send("a")        ;        相册
WinWaitActive("Microsoft PowerPoint - [演示文稿1]")
Send("a")        ;        新建相册
WinWaitActive("相册")
Send("!f")        ;        文件/磁盘

;========插入图片============

WinWaitActive("插入新图片")
Send("F:\school\1{Enter}")        ;        输入文件夹路径,回车,定位到图片文件夹
WinWaitActive("插入新图片")
Send("+{TAB}")        ; Shift+Tab
WinWaitActive("插入新图片")
Send("^a")                ; 全选图片
WinWaitActive("插入新图片")
Send("{Enter}")        ; 将图片插入到相册中
WinWaitActive("相册")       
Send("!c")                ; 创建相册

;========保存============
WinWaitActive("Microsoft PowerPoint - [演示文稿2]")       

Send("^s")
;Send("abc")
Sendx("小熊维尼",1)
;ControlSetText("另存为","文件名","","aaa")
;ControlSend("另存为","文件名","","aaa")
Send("{TAB}")        ; Tab
Send("{DOWN 3}{Enter}")

lynfr8 发表于 2009-7-20 15:20:43

ControlSetText("", "", "Edit", "中文");可输出中文
ControlSend("", "", "Edit", "D:\0")    ;不输出中文
一个很古老的问题了

老榆头 发表于 2009-7-20 16:12:10

谢谢lynfr8回复
我试着用ControlSetText,但没有内容送过去
我不论是用title或者class,都没有作用,当然,我首先测试的是传英文的
ControlSetText("另存为","","RichEdit20W2","aaa")
ControlSetText("","","RRichEdit20W2","aaa")

请帮忙,谢谢!

kn007 发表于 2009-7-20 16:21:26

Sendx("小熊维尼",0)可以不?

老榆头 发表于 2009-7-20 16:43:35

本帖最后由 老榆头 于 2009-7-20 17:07 编辑

谢谢kn007,不可以,1楼的那个图
就是sendx的结果

Sendx("小熊维尼",0)

Sendx("小熊维尼",1)
都试过了

lynfr8 发表于 2009-7-20 17:31:36

;========保存============
WinActivate('另存为','另存为');楼主激活窗口不对
ControlSetText('另存为','另存为','RichEdit20W2','发送中文')

测试过了,是可以的

老榆头 发表于 2009-7-20 21:56:05

谢谢lynfr8再次回复
经过再次提醒,现在终于成功了,多谢!

不过,还是有两点不明白:
1、我用WinActivate("另存为","")不行,后又查看帮助,改用WinWait("另存为",""),通过,差别不大吧,不明白?
2、为什么lynfr8要用
WinActivate('另存为','另存为')
第一个另存为是标题,第二个是什么窗口包含的文字?
我后来,第二个就空在那里。

最后,还要对lynfr8说声谢谢

lynfr8 发表于 2009-7-20 23:28:44

1.差别帮助文件有详细的说明,这里就累赘多说了
2.第二个是可见文本,帮助文件WinActivate有详细说明

老榆头 发表于 2009-7-21 12:16:55

多谢lynfr8
:face (36):
页: [1]
查看完整版本: powerpoint的保存对话框,中文不能发送