If WinActive ahk_exe msedge.exe
Send, ^+i
#if 只对快捷键有效果
If WinActive ahk_exe msedge.exe
Send, ^+i
#if 只对快捷键有效果
感谢 dog 兄解答。
不显示悬浮窗标题栏。
1、移动
窗口移动大家应该都有。
2、关闭
#!RButton:: ;WIN + Alt + 右键 关闭鼠标下的窗口 (方便关闭没有窗口标题栏的悬浮窗口)
MouseGetPos, MouseX, MouseY, MouseWin
WinClose, ahk_id %MouseWin%
return
我还是对在指定的软件窗口中运行代码不了解,不然可以定义 左键拖动,右键关闭
,这样才完美。
WPS自带数字转大写金额
SendInput,{Alt}
sendinput,n
SendInput,sn
sendinput,{Tab}
SendInput,{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{Down}{enter}
return
其实想想,通用面板还是很有作用的,我有个设想。
同时启动两个 CLaunch,使用两套配置,一个用于通用,一个用于活动窗口的显示。
有个难题,这两个面板显示的位置不好设置。
这个我一开始就想过,不太现实。
所以设计了双击到达通用面板的快捷键。
思维一下没有反应过来,还在 Quicker 上,双击挺好的。
因为小工具多,Quicker 反而不太适用。
其实说实话,quicker好就好在有一个生态,不用麻烦去再造轮子,捯饬捯饬还能用用,用ahk的话,缺乏一个市场,quicker的功能其实也没有太大创新,就是应用市场非常好用,我觉得ahk也需要有一个这样的东西
一个 ahk 只会改改快捷键用户的发言。
quicker:开发者专职,有问必答,用户比较集中。我出钱了,我是爷。
ahk:自己去翻文档,自己去改,我没时间。基本上自己写的自己用,哪天不爽了就提桶跑路。后期维护基本不可能的。
quicker:海量分类好的脚本,能放弃这个,但不能放弃那个。最后只能:让我想想这个功能在 quicker 上面能不能实现?
ahk:单个的脚本分散,很多不能合并的脚本(普通用户根本没这个能力),就会在托盘栏出现无数个小图标。一旦出现更好的软件能取代这个脚本,马上就会放弃。再就是 v1 v2的问题,这又分成了两个用户群体。
喜欢折腾的人总是能找到适合自己的方法
【C#脚本】删除换行
using System;
using System.Windows.Forms;
public class Script
{
static public void Main()
{
string t=Clipboard.GetText();
t=t.Replace("\n", "").Replace(" ","").Replace("\t","").Replace("\r","");
Clipboard.SetText(t);
}
}
【C#脚本】生成/识别二维码
生成
//css_args /c:0, /inmem
using System;
using System.Windows.Forms;
using System.Drawing;
using ZXing;
public class Script
{
static public void Main()
{
using (Form form = new Form()) {
Image img = GetQRCodeByZXingNet(Clipboard.GetText(), 400, 400);
Clipboard.SetImage(img);
form.StartPosition = FormStartPosition.CenterScreen;
form.Size = img.Size;
PictureBox pb = new PictureBox();
pb.Dock = DockStyle.Fill;
pb.SizeMode =PictureBoxSizeMode.Zoom;
pb.Image = img;
form.Controls.Add(pb);
form.ShowDialog();
}
}
/// <summary>
/// 生成二维码图片
/// </summary>
/// <param name="strMessage">要生成二维码的字符串</param>
/// <param name="width">二维码图片宽度</param>
/// <param name="height">二维码图片高度</param>
/// <returns></returns>
static public Bitmap GetQRCodeByZXingNet(String strMessage,Int32 width,Int32 height)
{
Bitmap result = null;
try
{
BarcodeWriter barCodeWriter = new BarcodeWriter();
barCodeWriter.Format = BarcodeFormat.QR_CODE;
barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
barCodeWriter.Options.Height = height;
barCodeWriter.Options.Width = width;
barCodeWriter.Options.Margin = 0;
ZXing.Common.BitMatrix bm = barCodeWriter.Encode(strMessage);
result = barCodeWriter.Write(bm);
}
catch (Exception ex)
{
//异常输出
}
return result;
}
}
识别
//css_args /c:0, /inmem
using System;
using System.Windows.Forms;
using System.Drawing;
using ZXing;
public class Script
{
static public void Main()
{
BarcodeReader reader = new BarcodeReader();
reader.CharacterSet = "UTF-8";
Bitmap map = new Bitmap(Clipboard.GetImage());
Result result = reader.Decode(map);
MessageBox.Show(result.Text);
Clipboard.SetText(result.Text);
}
}
视频演示
感谢无私分享,谢谢!
展开一下,可以 以标点符号来换行
,方便制作歌词、字幕……
; F2:: ;<-- F2 替换所有标点符号,并在标点符号处换行。(若单独使用则打开)
; send,^c ;直接替换选中文字。(若仅粘贴时使用,注释这两行)
; sleep,200
{
Loop
{
StringReplace, clipboard, clipboard, `, , `r`n, UseErrorLevel ;替换英文逗号
StringReplace, clipboard, clipboard, , , `r`n, UseErrorLevel ;替换中文逗号
StringReplace, clipboard, clipboard, `; , `r`n, UseErrorLevel ;替换英文分号
StringReplace, clipboard, clipboard, ; , `r`n, UseErrorLevel ;替换英文分号
StringReplace, clipboard, clipboard, . , `r`n, UseErrorLevel ;替换英文句号
StringReplace, clipboard, clipboard, 。 , `r`n, UseErrorLevel ;替换中文句号
StringReplace, clipboard, clipboard, : , `r`n, UseErrorLevel ;替换英文冒号
StringReplace, clipboard, clipboard, : , `r`n, UseErrorLevel ;替换中文冒号
StringReplace, clipboard, clipboard, ‘’ , `r`n, UseErrorLevel ;替换中文双引号1
StringReplace, clipboard, clipboard, “ , `r`n, UseErrorLevel ;替换中文双引号2
StringReplace, clipboard, clipboard, ” , `r`n, UseErrorLevel ;替换中文双引号3
StringReplace, clipboard, clipboard, ' , `r`n, UseErrorLevel ;替换英文双引号
StringReplace, clipboard, clipboard, 、 , `r`n, UseErrorLevel ;替换中文顿号
StringReplace, clipboard, clipboard, / , `r`n, UseErrorLevel ;替换右斜杠
StringReplace, clipboard, clipboard, \ , `r`n, UseErrorLevel ;替换左斜杠
StringReplace, clipboard, clipboard, - , `r`n, UseErrorLevel ;替换短横线
StringReplace, clipboard, clipboard, —— , `r`n, UseErrorLevel ;替换长横线
StringReplace, clipboard, clipboard, = , `r`n, UseErrorLevel ;替换等号
StringReplace, clipboard, clipboard, + , `r`n, UseErrorLevel ;替换加号
StringReplace, clipboard, clipboard, ( , `r`n, UseErrorLevel ;替换中文左括号
StringReplace, clipboard, clipboard, ) , `r`n, UseErrorLevel ;替换中文右括号
StringReplace, clipboard, clipboard, ( , `r`n, UseErrorLevel ;替换英文左括号
StringReplace, clipboard, clipboard, ) , `r`n, UseErrorLevel ;替换英文右括号
StringReplace, clipboard, clipboard, 【 , `r`n, UseErrorLevel ;替换中文【
StringReplace, clipboard, clipboard, 】 , `r`n, UseErrorLevel ;替换中文】
StringReplace, clipboard, clipboard, [ , `r`n, UseErrorLevel ;替换[
StringReplace, clipboard, clipboard, ] , `r`n, UseErrorLevel ;替换]
StringReplace, clipboard, clipboard, ! , `r`n, UseErrorLevel ;替换英文感叹号
StringReplace, clipboard, clipboard, ! , `r`n, UseErrorLevel ;替换中文感叹号
StringReplace, clipboard, clipboard, ? , `r`n, UseErrorLevel ;替换中文问号
StringReplace, clipboard, clipboard, ? , `r`n, UseErrorLevel ;替换英文问号
StringReplace, clipboard, clipboard, < , `r`n, UseErrorLevel ;替换英文<
StringReplace, clipboard, clipboard, > , `r`n, UseErrorLevel ;替换英文>
StringReplace, clipboard, clipboard, 《 , `r`n, UseErrorLevel ;替换中文《
StringReplace, clipboard, clipboard, 》 , `r`n, UseErrorLevel ;替换英文》
StringReplace, clipboard, clipboard, @ , `r`n, UseErrorLevel ;替换@
StringReplace, clipboard, clipboard, # , `r`n, UseErrorLevel ;替换#
StringReplace, clipboard, clipboard, $ , `r`n, UseErrorLevel ;替换$
StringReplace, clipboard, clipboard, `% , `r`n, UseErrorLevel ;替换%
StringReplace, clipboard, clipboard, ^ , `r`n, UseErrorLevel ;替换^
StringReplace, clipboard, clipboard, & , `r`n, UseErrorLevel ;替换&
StringReplace, clipboard, clipboard, * , `r`n, UseErrorLevel ;替换*
StringReplace, clipboard, clipboard, `` , `r`n, UseErrorLevel ;替换`
StringReplace, clipboard, clipboard, `:: , `r`n, UseErrorLevel ;替换::
StringReplace, clipboard, clipboard, " , `r`n, UseErrorLevel ;替换"
StringReplace, clipboard, clipboard, { , `r`n, UseErrorLevel ;替换{
StringReplace, clipboard, clipboard, } , `r`n, UseErrorLevel ;替换}
StringReplace, clipboard, clipboard, | , `r`n, UseErrorLevel ;替换|
StringReplace, clipboard, clipboard, · , `r`n, UseErrorLevel ;替换中文···
StringReplace, clipboard, clipboard, ~ , `r`n, UseErrorLevel ;替换~
StringReplace, clipboard, clipboard, _ , `r`n, UseErrorLevel ;替换_
StringReplace, clipboard, clipboard, `t , `r`n, UseErrorLevel ;替换制表符
if ErrorLevel = 0 ; 不需要再进行替换.
break
}
Loop
{
StringReplace, clipboard, clipboard, `r`n`r`n, `r`n, UseErrorLevel ;替换两个换行为一个换行
StringReplace, clipboard, clipboard, `r`n%A_SPACE%, `r`n, UseErrorLevel ;替换行首空格为无
StringReplace, clipboard, clipboard, %A_SPACE%`r`n, `r`n, UseErrorLevel ;替换行尾空格为无
if ErrorLevel = 0 ; 不需要再进行替换.
break
}
}
sleep,200
send,^v
return
【C#脚本分享】翻译成汉语
using System;
using System.IO;
using System.Windows.Forms;
using LitJson;
using System.Net;
using System.Web;
public class Script
{
static public void Main()
{
string t=HttpUtility.UrlEncode(Clipboard.GetText(),System.Text.Encoding.UTF8);
string json3=GetWebClient("https://translate.plausibility.cloud/api/v1/auto/zh/"+t);
JsonData txt2=JsonMapper.ToObject(json3); //https://blog.csdn.net/DoyoFish/article/details/81976181
// MessageBox.Show(txt2["translation"].ToString());
Clipboard.SetText(txt2["translation"].ToString());
}
static public string GetWebClient(string url)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
string strHTML = "";
WebClient myWebClient = new WebClient();
Stream myStream = myWebClient.OpenRead(url);
StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding("utf-8"));
strHTML = sr.ReadToEnd();
myStream.Close();
return strHTML;
}
}
不懂C#,既然是脚本,能说说怎么调用吗
一直没搞懂,到底怎么将光标下的文件名或者文件夹传给claunch?
edit:12.10
更新了一个新版本的悬浮按钮,支持右键单击后锁定/解锁 对当前激活窗口的吸附。
吸附后,主窗口和按钮同步移动、同步最小化。
关闭主窗口,按钮自动关闭。
关闭按钮,不影响主窗口。
下载悬浮按钮.exe,替换claunahk文件夹下原本的悬浮按钮.exe即可。
一个看起来很有用,其实没什么用的搜索或翻译选中文本菜单。(浏览器中打开)
#SingleInstance Force
#NoTrayIcon
#NoEnv
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
; !W:: ;<-- Alt + W 搜索或翻译选中文本。(若单独使用则打开)
Send, ^c
Sleep, 200
Menu, ContextMenu, Add, 文本 -----> 搜索, Google
Menu, ContextMenu, Disable, 文本 -----> 搜索
Menu, ContextMenu, Add, Google
Menu, ContextMenu, Icon, Google, ../ICO/搜索/google.ico
Menu, ContextMenu, Add, DuckDuckGo
Menu, ContextMenu, Icon, DuckDuckGo, ../ICO/搜索/DuckDuckGo.ico
Menu, ContextMenu, Add, Yandex
Menu, ContextMenu, Icon, Yandex, ../ICO/搜索/Yandex.ico
Menu, ContextMenu, Add, Bing
Menu, ContextMenu, Icon, Bing, ../ICO/搜索/Bing.ico
Menu, ContextMenu, Add, 百度
Menu, ContextMenu, Icon, 百度, ../ICO/搜索/百度.ico
Menu, ContextMenu, Add, 知乎
Menu, ContextMenu, Icon, 知乎, ../ICO/搜索/知乎.ico
; Menu, ContextMenu, Add, 打开所有搜索页面
; Menu, ContextMenu, Icon, 打开所有搜索页面, ../ICO/搜索/搜索.ico
Menu, ContextMenu, Add
;--------------------------------
Menu, ContextMenu, Add, 文本 -----> 翻译, Google
Menu, ContextMenu, Disable, 文本 -----> 翻译
Menu, ContextMenu, Add, 谷歌翻译
Menu, ContextMenu, Icon, 谷歌翻译, ../ICO/搜索/google.ico
Menu, ContextMenu, Add, 百度翻译
Menu, ContextMenu, Icon, 百度翻译, ../ICO/搜索/百度.ico
Menu, ContextMenu, Add, 搜狗翻译
Menu, ContextMenu, Icon, 搜狗翻译, ../ICO/搜索/搜狗.ico
; Menu, ContextMenu, Add, 必应翻译
; Menu, ContextMenu, Icon, 必应翻译, ../ICO/搜索/Bing.ico
; Menu, ContextMenu, Add, 有道翻译
; Menu, ContextMenu, Icon, 有道翻译, ../ICO/搜索/有道.ico
Menu, ContextMenu, Add, 打开所有翻译页面
Menu, ContextMenu, Icon, 打开所有翻译页面, ../ICO/搜索/翻译.ico
;--------------------------------
Menu, ContextMenu, Show
Menu, ContextMenu, Delete
Return
;--------------------------------
Google:
searchOrVisitFromClip("https://www.google.com/search?q=")
return
DuckDuckGo:
searchOrVisitFromClip("https://duckduckgo.com/?q=")
return
Yandex:
searchOrVisitFromClip("https://www.yandex.com/search/?text=")
return
Bing:
searchOrVisitFromClip("https://www.bing.com/search?q=")
return
百度:
searchOrVisitFromClip("https://www.baidu.com/s?wd=")
return
知乎:
searchOrVisitFromClip("http://www.zhihu.com/search?q=")
return
; 打开所有搜索页面:
; searchOrVisitFromClip("https://www.google.com/search?q=")
; searchOrVisitFromClip("https://duckduckgo.com/?q=")
; searchOrVisitFromClip("https://www.yandex.com/search/?text=")
; searchOrVisitFromClip("https://www.bing.com/search?q=")
; searchOrVisitFromClip("https://www.baidu.com/s?wd=")
; searchOrVisitFromClip("http://www.zhihu.com/search?q=")
; return
;--------------------------------
谷歌翻译:
searchOrVisitFromClip("https://translate.google.com/?q=")
return
搜狗翻译:
searchOrVisitFromClip("https://fanyi.sogou.com/text?keyword=")
return
百度翻译:
searchOrVisitFromClip("https://fanyi.baidu.com/#en/zh/")
return
; 有道翻译:
; searchOrVisitFromClip("https://dict.youdao.com/result?word=")
; ;searchOrVisitFromClip("https://fanyi.youdao.com/search?q=")
; return
;
; 必应翻译:
; searchOrVisitFromClip("https://cn.bing.com/dict/search?q=")
; return
打开所有翻译页面:
searchOrVisitFromClip("https://translate.google.com/?q=")
searchOrVisitFromClip("https://fanyi.sogou.com/text?keyword=")
searchOrVisitFromClip("https://fanyi.baidu.com/#en/zh/")
; searchOrVisitFromClip("https://dict.youdao.com/result?word=")
; searchOrVisitFromClip("https://cn.bing.com/dict/search?q=")
return
;--------------------------------
searchOrVisitFromClip(searchUrl){
clip := clipboardAll
clip := ""
ClipWait, 0.9
if(ErrorLevel){
} else if (clipboard ~= "^https?:\/\/") {
run, % clipboard
} else {
run, % searchUrl clipboard
}
}
感谢提供的代码,另外没有标题栏之后,窗口移动要怎么操作呢,还真的不会
搜索 “ahk窗口移动”,太多了。
太强了!真的很棒!