我为同事写了一个应用程序,以便他们可以轻松设置Outlook签名。这是代码:
property includeInRandom : false
property sigName : "${signature.name}"
property sigContent : "${signature.content}"
try
tell application "Microsoft Outlook"
activate
set newOutlookSignature to make new signature with properties ¬
{name:sigName, content:sigContent, include in random:includeInRandom}
end tell
end try
问题在于,如果同事在应用程序中更改其签名并再次在Outlook中设置,则会有两个具有相同名称的签名。是否可以检查当前签名是否已存在以及是否存在,是否应编辑/更新?
答案 0 :(得分:1)
我没有 Microsoft Outlook ,所以我无法测试我的建议,但我想你可以get every signature whose name is sigName
,然后决定是否要删除它们全部和制作一个新的,或保留一个,编辑它,并删除其余的。我显然在假设可能存在0和 N 签名之间的任何地方共享一个随时间累积的名称。从这个角度来看,我会说删除所有内容并创建新内容将是最简单的编码方式,前提是 Outlook 允许您删除签名列表,例如 Finder 允许您在一个命令中删除文件列表:
tell application "Microsoft Outlook" to delete every signature whose name is sigName
如果没有,则必须构建一个repeat
循环并逐个删除它们:
tell application "Microsoft Outlook" to repeat with S in ¬
(every signature whose name is sigName)
set S to the contents of S # (dereferencing)
delete S
end repeat
如果您决定保留并编辑它,那么:
tell application "Microsoft Outlook"
set S to every signature whose name is sigName
if (count S) is 0 then
# make new signature
else
set [R] to S
delete the rest of S
set the content of R to the sigContent
end if
end tell
如果delete the rest of S
不起作用,则再次使用repeat
循环可以逐个删除项目2,并保留第一个要编辑的项目。
对不起,我不能为你测试这个,但它至少表明了如何尝试这样做。