V2设置快捷键怎样才能不作用于桌面和任务栏

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: V2设置快捷键怎样才能不作用于桌面和任务栏

Re: V2设置快捷键怎样才能不作用于桌面和任务栏

by Machine » 08 Jan 2024, 21:28

@andymbody
您的回复和帮助特别管用,非常感谢

Re: V2设置快捷键怎样才能不作用于桌面和任务栏

by andymbody » 04 Jan 2024, 23:04

尝试这个。

我不知道您是否想在将鼠标悬停在桌面/任务栏上时避免使用热键,或者是否想在窗口处于活动状态时避免使用热键。所以我把这两个都列出来供大家选择。

您可能还需要将类名称更改为您的语言。

Code: Select all

#Requires autohotkey v2.0
#SingleInstance force
SetTitleMatchMode 2
CoordMode("Mouse", "screen")

!Escape::
{
	MouseGetPos(,, &window)
	cls := WinGetClass("ahk_id" window)
	if (cls="WorkerW" || cls="Shell_TrayWnd" || cls="Progman")
		return
	
	if (WinActive("ahk_class WorkerW") || WinActive("ahk_class Shell_TrayWnd") || WinActive("ahk_class Progman"))
		return

	WinMinimize("A")
}

!`::
{
	MouseGetPos(,, &window)
	cls := WinGetClass("ahk_id" window)
	if (cls="WorkerW" || cls="Shell_TrayWnd" || cls="Progman")
		return
	
	if (WinActive("ahk_class WorkerW") || WinActive("ahk_class Shell_TrayWnd") || WinActive("ahk_class Progman"))
		return

	WinActivate(window)
	if WinGetMinMax(window)
		WinRestore(window)
	else
		WinMaximize(window)
}

V2设置快捷键怎样才能不作用于桌面和任务栏

by Machine » 04 Jan 2024, 20:44

照着网上参考写了个窗口最大化和最小化的快捷键,代码如下

Code: Select all

;alt+Esc键最小化当前窗口
!Escape:: WinMinimize("A")
!`:: ;alt+`键最大化或还原当前窗口
{
    CoordMode("Mouse")			;获取鼠标所在位置	
	MouseGetPos(, , &window)	;将鼠标当前所在窗口的类型赋给 "window" 参数
	WinActivate(window)			;激活该窗口类型
	if WinGetMinMax(window) 	;如果当前活动窗口为最大化状态
		WinRestore(window) 		;则恢复当前窗口
	else
		WinMaximize(window) 	;否则最大化当前窗口
}
对窗口运行起来到是一点问题没有,就是使用时发现当鼠标指针位于任务栏时,会将任务栏也缩小,因为有使用桌面软件,鼠标指针在桌面时实际是指向这个软件的进程,所以桌面也受影响,像图示这样
Image
也做过尝试来屏蔽掉桌面和任务栏,用WinHotIfNotActive不起作用,甚至这个桌面软件的进程用WInExist来检测都检测不到,返回值为0,明明用Windows spy能检测到的,因为是初学者,瞎折腾了一圈也没解决,请教下大手子要如何才能使这个快捷键屏蔽掉桌面和任务栏

Top