如何监控文件外观并将其移动到当前工作目录?

时间:2014-05-20 10:16:26

标签: autohotkey

我正在努力:

  1. 捕获屏幕截图(使用FastStone Screen Capture);结果是图像保存到C:\Capture\screenshot.jpg

  2. 监控C:\Capture,如果找到screenshot.jpg,请将其移至当前工作目录(活动资源管理器窗口)。

  3. 因此,如果我在screenshot.jpg内抓取C:\Pictures,则该文件应自动从C:\Capture移至C:\Pictures。换句话说,捕获的图像应该移动到它的屏幕截图(活动的资源管理器窗口)。

    FastStone Screen Capture可以将图像保存到可变路径。但是我没有为当前打开的目录找到这样的变量。

    https://lh3.googleusercontent.com/Q1rtTdMOKYq6SXXyElpy0QIbAg5hDqT8BIPW7Rc2tA=w427-h207-p-no

3 个答案:

答案 0 :(得分:3)

关于如何实现目标的一些提示:

  1. 您可以使用AHK库截取屏幕截图(例如Gdip.ahk)。您可以完全控制它们(图像格式,裁剪/剪切屏幕区域),最重要的是,您可以选择输出路径。
  2. 在Windows 7上,我通常使用此代码段来获取活动资源管理器路径:
  3. if( WinActive("ahk_class CabinetWClass") ) { ControlGetText, wDir, ToolbarWindow322 RegExMatch(wDir, ":\s*(.*)", wDir) wDir := wDir1 ; Current path will be stored in wDir }

    该过程很简单:定义一个启动过程的热键。检索当前的资源管理器路径。拍摄(部分)屏幕截图并将其保存在您刚检索的路径中。

答案 1 :(得分:0)

关于如何实现这一目标的另一个提示:

使用自动库

#include <ScreenCapture.au3>

; Capture full screen
_ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Image1.jpg")

; Capture region
_ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Image2.jpg", 0, 0, 796, 596)

答案 2 :(得分:0)

我使用了一个非常有用的库here,可以让您轻松获取当前资源管理器窗口的路径。你可以像这样使用它。

#Include Explorer.ahk
; Can change this to the hotkey for your screenshot app 
; or have the script send the key on first line
+PrintScreen:: 
    SSFile := "C:\Capture\screenshot.jpg"
    CurrentDir := Explorer_GetPath()

    While ! FileExist(SSFile)
        Sleep, 500

    FileCopy, %SSFile%, %CurrentDir%
    FileDelete, %SSFile%
Return

此时我没有内置查找文件的超时,但这可能是您最终需要的。