剪贴板的每一行(如果可用)如何在同一个 window 中以 url 打开,但在使用 AutoHotkey (Chrome) 的单个选项卡中延迟?

How can every single line of clipboard, if available, be opened as url in the same window, but delayed, in individual tabs with AutoHotkey (Chrome)?

我想在 Google 个图像中进行多重搜索。我知道有这样的东西

clipboard := StrReplace(clipboard, "+", "%2B")

但这怎么可能呢?以下是与一次性搜索相关的代码。

url_encoding(str)
{
  f = %A_FormatInteger%
  SetFormat, Integer, Hex
  if RegExMatch(str, "^\w+:/{0,2}", pr)
    StringTrimLeft, str, str, StrLen(pr)
  StringReplace, str, str, `%, `%25, All
  Loop
    if RegExMatch(str, "i)[^\w\.~%/:]", char)
      StringReplace, str, str, %char%, % "%" . SubStr(Asc(char),3), All
    else break
  SetFormat, Integer, %f%
  return, pr . str
}


F3::
image_search:
a = `%
old_clipboard := ClipboardAll
clipboard := url_encoding(clipboard)
Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 2" --force-wave-audio --incognito --new-window https://www.google.com/search?tbm=isch&as_q=%clipboard%, , Max
clipboard := old_clipboard
return

从 %clipboard% 到 %A_LoopField% 的更改导致搜索 abc 时打开 https://www.google.com/imghp?tbm=isch&as_q=。所以我添加了解析循环:

F3::
image_search:
a = `%
old_clipboard := ClipboardAll
Loop, parse, clipboard, `n, `r
{
  clipboard := url_encoding(clipboard)
  Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 2" --force-wave-audio --incognito --new-window https://www.google.com/search?tbm=isch&as_q=%A_LoopField%, , Max
}
clipboard := old_clipboard
return

当我再打开

abc
123

每个搜索查询都在新 window 中打开。但是这些应该只能在一个新的 window 中打开。目标是排除空行(也包含空格)以及搜索查询前后的空格。完成后,url_encoding 可用于执行正确的搜索。在所有这些情况下,刚才提到的代码都不起作用。例如,如果

 abc & def       


123 % 456   

在剪贴板中,一个新的隐身window应该显示

abc & def

在选项卡 1 和

123 % 456

在选项卡 2 中。

url_encoding() 添加换行符

%D%A

因为他们没有被排除在外。

解决方案

url_encoding(str)
{
  f = %A_FormatInteger%
  SetFormat, Integer, Hex
  if RegExMatch(str, "^\w+:/{0,2}", pr)
    StringTrimLeft, str, str, StrLen(pr)
    StringReplace, str, str, `%, `%25, All
  Loop
    if RegExMatch(str, "i)[^\w\.~%/:\r\n]", char)
      StringReplace, str, str, %char%, % "%" . SubStr(Asc(char),3), All
    else break
  SetFormat, Integer, %f%
  return, pr . str
}


F3::
image_search:
old_clipboard := ClipboardAll
clipboard := RegExReplace(clipboard, "`am)^\s+")
clipboard := RegExReplace(clipboard, "`am)\s+$")
clipboard := url_encoding(clipboard)
Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 2" --force-wave-audio --incognito --new-window, , Max
Sleep, 1000
Loop, parse, clipboard, `n, `r
{
  Run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 2" --force-wave-audio --incognito https://www.google.com/search?tbm=isch&as_q=%A_LoopField%, , Max
  Sleep, 500
}
clipboard := old_clipboard
return