连接USB时,基于Bat文件的弹出窗口自动播放

时间:2014-09-30 10:00:56

标签: batch-file ftp usb google-glass autoplay

执行以下操作的最佳方法是: 当我将我的设备(让它是特定设备 - 比如谷歌眼镜)连接到USB端口时,我希望某个代理会立即弹出(如windows自动播放),显示我目前拥有的文件列表在设备中,让我选择哪一个上传到ftp服务器,最后一些"上传"按钮,以便将所选文件上传到ftp我会预先定义它。 我还希望在用户选择文件后,它会根据预定义的规则重命名文件名,然后才会将其上传到服务器。

有办法做到这一点吗?有没有一种工具可以做到这一点或类似的东西?

我写了一个.bat文件,其中包含一个可以进行重命名和上传的脚本,所以当我按下"上传"有一些方法可以运行脚本。按钮会很棒。

1 个答案:

答案 0 :(得分:2)

如果使用cscript启动脚本,它将写入控制台而不是消息框。

cscript <path to script>

E.G。

cscript "c:\somefolder\DeviceArrival.vbs"

可移动驱动器是drivetype = 2。首先创建C:\ Test。注意我已将所有设备的事件类型更改为添加/删除驱动器。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set evtDevice = objWMIService.ExecNotificationQuery ("SELECT * FROM Win32_VolumeChangeEvent")

Wscript.Echo "Waiting for events ..."
Do
    Set objReceivedEvent = evtDevice.NextEvent
    'report an event
    Wscript.Echo " Win32_Device Changed event occurred" & VBNewLine
    If objReceivedEvent.EventType = 1 Then 
         Wscript.Echo "Type = Config Changed" 
    ElseIf objReceivedEvent.EventType = 2 Then 
         Wscript.Echo "Type = Device Arrived" 

         Set colItems = objWMIService.ExecQuery("Select * From Win32_Volume")
         For Each objItem in colItems
               If objitem.DriveType = 2 then
                        Wscript.Echo objItem.DriveType & " " & objItem.Name & " " & objItem.driveletter

                        Set objShell = CreateObject("Shell.Application")
                        Set Ag=Wscript.Arguments
                        set WshShell = WScript.CreateObject("WScript.Shell")

                        Set SrcFldr=objShell.NameSpace(objitem.driveletter)
                        Set DestFldr=objShell.NameSpace("c:\test\")
                        Set FldrItems=SrcFldr.Items
                        DestFldr.CopyHere FldrItems, &H214
                        Wscript.Echo "Finished Copying"


               End If
        Next


    ElseIf objReceivedEvent.EventType = 3 Then 
         Wscript.Echo "Type = Device Left" 
    ElseIf objReceivedEvent.EventType = 4 Then 
         Wscript.Echo "Type = Computer Docked" 
    End If
Loop

这是等待设备到达/离开的示例脚本。

请注意它会运行两次,因此您可能需要对其进行改进,因为每次到达都会有两个通知。还需要进行检查,例如,如果您插入一个USB记忆棒,而另一个USB记忆棒插入则将被复制。