找回密码
 加入
搜索
查看: 1851|回复: 9

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

[复制链接]
发表于 2009-7-20 14:19:07 | 显示全部楼层 |阅读模式
我想实现自动将单独文件夹内的所有图片,导入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("另存为","文件名","[CLASS:RichEdit20W; INSTANCE:2]","aaa")
;ControlSend("另存为","文件名","[CLASS:RichEdit20W; INSTANCE:2]","aaa")
Send("{TAB}")        ; Tab
Send("{DOWN 3}{Enter}")
发表于 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("[CLASS:bosa_sdm_Mso96]","","RRichEdit20W2","aaa")

请帮忙,谢谢!
发表于 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)
都试过了
发表于 2009-7-20 17:31:36 | 显示全部楼层
;========保存============
WinActivate('另存为','另存为');楼主激活窗口不对
ControlSetText('另存为','另存为','RichEdit20W2','发送中文')

测试过了,是可以的
 楼主| 发表于 2009-7-20 21:56:05 | 显示全部楼层
谢谢lynfr8再次回复
经过再次提醒,现在终于成功了,多谢!

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

最后,还要对lynfr8说声谢谢
发表于 2009-7-20 23:28:44 | 显示全部楼层
1.差别帮助文件有详细的说明,这里就累赘多说了
2.第二个是可见文本,帮助文件WinActivate有详细说明
 楼主| 发表于 2009-7-21 12:16:55 | 显示全部楼层
多谢lynfr8
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-3 00:45 , Processed in 0.083756 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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