bluetooth applescript自动文件传输

时间:2016-05-13 12:32:27

标签: macos bluetooth applescript

我在尝试运行这个AppleScript时遇到了问题。 这个AppleScript的目的是当您单击任何文件并运行此脚本时,它会自动将此文件传输到名为" david"的蓝牙设备上。但我在底线中遇到了一个问题。结果显示:

"错误"系统事件出错:无法获得滚动区域"蓝牙设备\"进程的窗口1"蓝牙文件交换\#34;。"编号-1728来自滚动区"蓝牙设备"进程的窗口1"蓝牙文件交换""

我不知道为什么。我完全是一个菜鸟的菜鸟,这是其他人写的一些脚本,我只是改变并添加了一点。 有人可以帮忙吗?

property device : "david"
tell application "Finder" to set fileAlias to selection as alias
set fileToSend to fileAlias
tell application "Finder" to open fileToSend using application file id "com.apple.BluetoothFileExchange"
activate application "Bluetooth File Exchange"
tell application "System Events"
  tell process "Bluetooth File Exchange"
  repeat until exists window 1
  end repeat
  select (1st row of table of scroll area "Bluetooth Devices" of window 1 whose value of text field 1 is device)
  click button "Send" of window 1
  end tell
end tell

问题现在已经解决了,谢谢" pbell"指出代码中的拼写错误。

以下代码是适用于蓝牙4.4.4的修改版本

property device : "vivo X5Pro D"
tell application "Finder" to set fileAlias to selection as alias
set fileToSend to fileAlias
tell application "Finder" to open fileToSend using application file id "com.apple.BluetoothFileExchange"
activate application "Bluetooth File Exchange"
tell application "System Events"
    tell process "Bluetooth File Exchange"
        repeat until exists window 1
        end repeat
        select ((row 1 of table 1 of scroll area 1 of window 1) whose value of UI element 2 of UI element 1 is device)
        click button "Send" of window 1
    end tell
end tell

此代码的问题是
1)它的运行速度太慢 2)代码涉及GUI,因此具有多个区域的修改位置的系统更新将使该代码变为废话。 (感谢pbell)

那么有没有其他方法可以直接绕过GUI和命令?我想这会减少运行时间。 :)

1 个答案:

答案 0 :(得分:0)

您当前的脚本中可能有2个问题:

1)一个值" 1"您的行中缺少....滚动区域的表格"蓝牙设备" ...

您可能错误地删除了它。它应该是 : ....滚动区域的表1的行"蓝牙设备" ....

2)此脚本使用GUI脚本。这意味着它使用鼠标模拟用户操作。这些动作确实严格依赖于应用程序界面(窗口的设计,按钮......)。所有这些项都称为UI元素(UI =用户界面)。因此,当您更新应用程序时,如果新版本显示不同,则它不再起作用。

使用操作系统更新更新蓝牙应用程序。我不知道您拥有哪个系统版本,但在El Capitain上,蓝牙交换中使用的UI元素不是您脚本中使用的UI元素。

例如,要知道列表中的设备名称,它是该行的UI元素1的静态文本1。在当前脚本中,您正在查找该行的文本字段1。 因为设备名称不再是行的属性(它不是行的UI元素1的属性),所以您的语法不再起作用。

您使用的是哪种蓝牙交换版本?(我的是4.4.4)