因为搜狗浏览器莫名其妙的不能使用右击菜单问题,一直反馈给运营团队,也一直没有消息,索性直接卸载了。
换了腾讯浏览器试试,UI看上去好low,于是弃用。
最后换成了微软的Edge,不得不说,可以安装任意Chrome插件不用翻墙,数据随时同步方便,保存的密码需要开机密码才可见,极大提升了工作的便利性。
然而,万事无完美。
最近碰上了Edge浏览器(版本 99.0.1150.52 (正式版本) (64 位))窗口自动置顶的问题,我用的Windows 11系统(Windows 11 专业工作站版 21H2)。虽然关掉重启可以解决问题,但是我每次工作都开十几个窗口,关掉重新来比较麻烦。当然可以用OneTab插件临时保存打开的窗口,重启浏览器之后恢复,不过有些窗口需要登陆密码才能进去,还是略显麻烦。
今天又碰到了Edge浏览器窗口自动置顶了,于是搜索了下,发现这个方法可以完美解决取消置顶的问题。
新建记事本,将如下代码粘贴到记事本里保存。
'Make edge calcel always on top. AlwaysOnTop "msedge", ".", False Sub AlwaysOnTop(appName, regExpTitle, setOnTop) ' @author: Jeremy England (SimplyCoded) ' @user: Spencer Lyo If (setOnTop) Then setOnTop = "-1" Else setOnTop = "-2" CreateObject("wscript.shell").Run "powershell -Command """ & _ "$Code = Add-Type -MemberDefinition '" & vbcrlf & _ " [DllImport(\""user32.dll\"")] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,int Y, int cx, int cy, uint uFlags);" & vbcrlf & _ " [DllImport(\""user32.dll\"")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);" & vbcrlf & _ " public static void AlwaysOnTop (IntPtr fHandle, int insertAfter) {" & vbcrlf & _ " if (insertAfter == -1) { ShowWindow(fHandle, 7); ShowWindow(fHandle, 9); }" & vbcrlf & _ " SetWindowPos(fHandle, new IntPtr(insertAfter), 0, 0, 0, 0, 3);" & vbcrlf & _ " }' -Name PS -PassThru" & vbcrlf & _ "for ($s=0;$s -le 9; $s++){$hWnd = (GPS " & appName & " -EA 0 | ? {$_.MainWindowTitle -Match '" & regExpTitle & "'}).MainWindowHandle;Start-Sleep 1;if ($hWnd){break}}" & vbcrlf & _ "$Code::AlwaysOnTop($hWnd, " & setOnTop & ")""", 0, True End Sub
将记事本名称重命名为“ xxx.vbs ”。
原文说是每次打开浏览器运行一下即可,我是今天出现问题了才运行,等后面发现问题再看看。
还有个自动运行脚本:
start msedge.exe && cscript xxx.vbs
去年在用Windows 10的时候,有一个ERP软件窗口也会莫名的自动置顶,那个时候都说是微软输入法的锅,最后也没有找到解决方法。换成Windows 11后,那个ERP软件倒是没有置顶过,反而是这个微软Edge浏览器置顶了。
非常感谢原文:解决Chromium总是置顶的BUG
2024.3.9 win11 完美解决