Notepad++中的键盘快捷键,用于使用nppFTP上载文件

Notepad++中的键盘快捷键,用于使用nppFTP上载文件,notepad++,autohotkey,shortcut,Notepad++,Autohotkey,Shortcut,我喜欢使用Notepad++,但有一件事一直困扰着我,那就是nppFTP的同步文件夹功能有点过火,但似乎没有办法简单地按需使用快捷键将当前文件上传到当前远程目录 有为focus nppFTP窗口甚至关于nppFTP定义的快捷方式选项,但我找不到简单单击“上载文件”按钮的选项 很久以前,我就为这个小改动打开了一个功能请求,但似乎没有人注意到 那么,我自己如何添加快捷方式呢?也许是自动热键?通过模拟按钮坐标上的点击,这似乎很容易打破 也许有一种简单的方法可以修改NppFTP的源代码或某个XML文件,

我喜欢使用Notepad++,但有一件事一直困扰着我,那就是nppFTP的同步文件夹功能有点过火,但似乎没有办法简单地按需使用快捷键将当前文件上传到当前远程目录

有为focus nppFTP窗口甚至关于nppFTP定义的快捷方式选项,但我找不到简单单击“上载文件”按钮的选项

很久以前,我就为这个小改动打开了一个功能请求,但似乎没有人注意到

那么,我自己如何添加快捷方式呢?也许是自动热键?通过模拟按钮坐标上的点击,这似乎很容易打破

也许有一种简单的方法可以修改NppFTP的源代码或某个XML文件,这样我就可以为该按钮指定快捷方式了


谢谢

不使用记事本++而使用AHK上传脚本如何? 我编写了一个ftp函数来完成这项工作:

FtpUploadFile(host,user,pass,sourceFile,destPath:="/",mode:="ascii") {
    Static cmdFile := A_ScriptDir "\FTPCommands.txt"
    Static logFile := A_ScriptDir "\FTPLog.txt"    
    sourceFileFullPath := (InStr(sourceFile,"\") ? sourceFile : A_ScriptDir "\" sourceFile)
    FileDelete %cmdFile%
    FileAppend,  ; The comma is required in this case.
    ( LTrim
        open %host%
        %user%
        %pass%
        %mode%
        cd %destPath%
        put %sourceFileFullPath%
        ls -l
        quit
    ), %cmdFile%
    RunWait %comspec% /c ftp.exe -s:"%cmdFile%" >"%logFile%"
    FileDelete %cmdFile%  ; Delete for security reasons.
    FileRead, logTxt, %logFile%
    FileDelete %logFile%
    Return logTxt
}

F1:: ;press F1 to upload myFile.ahk and myFile.exe
    MsgBox % FtpUploadFile("my.host.com","username","password","myFile.ahk") ;uplaod a text baed file
    MsgBox % FtpUploadFile("my.host.com","username","password","myFile.exe","/","binary") ;upload a binary based file
Return

如果您不想要上传日志,请删除MsgBox%。

如果您展示了手动完成的方式,屏幕截图总是很好的,这将非常有用。无论如何,如果在NP++的主窗口中有一个按钮,它可能会作为一个具有自己的ClassNN的控件公开。如果是,它可能是可寻址的,例如使用。谢谢您的回复,@MCL。我在这里上传了一个截图:。如您所见,上载按钮的类名似乎为“ToolbarWindow321”,但该特定工具栏上的所有其他按钮也是如此。作为一种解决方法,我试图模拟在N++全屏时单击按钮的对应项,但它会奇怪地打开“打开文件”对话框。按钮到底在哪里?请在截图中标记,并通过编辑将其包含在您的问题中。访问该函数还有哪些其他方法?尝试头脑风暴,并思考其他方法:是否有菜单项?你能集中工具栏,然后{Tab}到按钮上吗?可以通过命令行触发该功能吗?然后,尝试实现最适合的方法。作为最后一种手段,您可以尝试单击已经尝试过的固定坐标,但请注意,默认情况下,它们是相对于活动窗口的,这通常是可取的,请参见CoordMode。