设为首页 |收藏本站 |切换到宽版
 找回密码

NSIS中文论坛

查看: 1107|回复: 0
收起左侧

[求助] 求助一个脚本问题

[复制链接]

该用户从未签到

3

主题

7

帖子

102

积分

积分
102
发表于 2019-8-8 11:48:57 | 显示全部楼层 |阅读模式
本帖最后由 xuexijiaoliu 于 2019-8-10 21:18 编辑

起因是因为新版迅雷要绑定安装迅雷影音,不安装它也会每次启动都下载安装包,很烦

换了个超级精简的迅雷后,对于浏览器的ed2k链接的点击识别失效了,只有复制后 剪贴板识别

所以我写了个bat,在注册表里把ed2k的打开连接从(xxx\thundernewtask.exe)指向这个bat
  1. :Start1
  2. tasklist | findstr /i "Thunder.exe" || call :Start2
  3. goto Start3

  4. :Start2
  5. start /d "D:\Program Files\Net Software\Thunder\Thunder 9\Program" Thunder.exe
  6. ping 127.0.0.1 -n 1 >nul
  7. goto Start3

  8. :Start3
  9. for /f tokens^=1^ delims^=^" %%i in (%1) do (set/p="%%i"<nul | clip)
复制代码
运行情况还不错,但是迅雷启动后会自动把ed2k改为默认程序路径(xxx\thundernewtask.exe),并且bat有黑窗
虽然可以修改注册表权限,只让它读取
但是心理上总是不舒服

然后我就想改为nsis
  1. SetCompressor /SOLID lzma
  2. SetCompressorDictSize 32

  3. !include WordReplace.nsh
  4. !include TextFunc.nsh
  5. !insertmacro GetParameters

  6. WindowIcon Off
  7. SilentInstall Silent
  8. AutoCloseWindow True
  9. RequestExecutionLevel user

  10. Name "Thunder"
  11. OutFile "Thunder 9\Program\ThunderNewTask.exe"

  12. Section "main"
  13.     FindProcDLL::FindProc "Thunder.exe"
  14.         Pop $R0
  15.         StrCmp $R0 1 +4
  16. SetOutPath "$EXEDIR"
  17. Exec `"$EXEDIR\Thunder.exe"`
  18. sleep 100
  19. ${GetParameters} $0
  20. ${WordReplace} "$0" "$"" "" "+" $1
  21. Exec '"cmd.exe" /c set/p="$1"<nul | clip'
  22. SectionEnd
复制代码
现在问题来了,nsis编译的程序,只有在迅雷程序没有启动时,第一次点击ed2k链接,自动启动迅雷后能剪贴板识别

在迅雷程序启动后,点击的ed2k链接,虽然都复制到了剪贴板(ctrl+c检验过),但是迅雷的剪贴板识别没效果

水平有限,能写这些脚本都是搜索的,就是那种知其然而不知其所以然

想问是什么原因不起效,和有解决方法吗

-----------------
190810更新,现在可以使用了但是exec 有窗口闪过
用;ExecDos::exec、nsExec::ExecToStack、ExecCmd::exec这些命令,虽然没了窗口闪过,但是迅雷不识别剪贴板




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|联系我们|鲁ICP备12005273号 |  

© 2015-2020 nsisfans.com.   All Rights Reserved.

快速回复 返回顶部 返回列表