微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 AHK 从 COM 设备复制文件

如何解决使用 AHK 从 COM 设备复制文件

我有一个功能可以有效地从我的 android 设备复制文件

GetDeviceFolder(deviceName) {
    shell := ComObjCreate("Shell.Application")
    computer := shell.Namespace("::{20d04fe0-3aea-1069-a2d8-08002b30309d}")
    for item in computer.Items
        if item.Name = deviceName
            return item.GetFolder()
}

save_data_file()
{
    GuiControlGet,phonename
    GuiControlGet,datapath
    GuiControlGet,savepath
    phone := GetDeviceFolder(phonename)
    phone.ParseName(datapath).InvokeVerb("copy")
}

但是,我不知道如何将它“粘贴”到本地驱动器。我知道它在剪贴板中,因为我可以在运行此功能后手动粘贴它。

解决方法

本地磁盘也需要COM处理。

示例:

//h6/ui/li/span
,

我喜欢使用这个辅助函数

InvokeVerb(path,menu,validate=True) {
    ;by A_Samurai
    ;v 1.0.1 http://sites.google.com/site/ahkref/custom-functions/invokeverb
    objShell := ComObjCreate("Shell.Application")
    if InStr(FileExist(path),"D") || InStr(path,"::{") {
        ;~ MsgBox % path
        objFolder := objShell.NameSpace(path)   
        ;~ MsgBox % namespace(path) . "k"
        objFolderItem := objFolder.Self
    }
    else {
        SplitPath,path,name,dir
        ;~ MsgBox % path . "`n" name . "`n" . dir
    ;~ loop,% path0
        ;~ MsgBox % path%A_index%
    objFolder := objShell.NameSpace(dir)
    objFolderItem := objFolder.ParseName(name)


    }
    if validate {
    colVerbs := objFolderItem.Verbs   
    colVerbs.Count
        loop % colVerbs.Count {
            verb := colVerbs.Item(A_Index - 1) 
            retMenu := verb.name
            StringReplace,retMenu,&       
            if (retMenu = menu) {
            verb.DoIt
                Return True
            }
        }


        Return False
    } else
        objFolderItem.InvokeVerbEx(Menu)
}   

然后我就这样做了: InvokeVerb(savepath,"Paste","false")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。