博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
热键循环切换当前窗口为1/4、1/3、2/3屏幕大小
阅读量:4839 次
发布时间:2019-06-11

本文共 2780 字,大约阅读时间需要 9 分钟。

;脚本功能是调整当前窗口的大小;sunwind ;2013年8月25日;需求是多爱英提出,我用了面向对象的ahk来实现的。;~ 按一下热键(win+z);~ 切换到  右下角1/4;~ 再按一下;~ 切换到  右下角 1/3;~ 再按一下 ;~ 切换到 右下角 2/3;~ 再按一下;~ 切换到  右下角 1/4SetTitleMatchMode, 3event_index:=-1#z::WinGetTitle, current_win, Aif (current_win!=old_win)	event_index=-1if(event_index=-1){	old_win:=current_win	WinGetPos, X, Y, current_Width, current_Height, %current_win%  ;这里A应该改成目标窗口,只获取一次某窗口的大小  	;quarter := new quarter(current_Width,current_Height)  	;one_third:= new one_third(current_Width,current_Height)  	;two_third:= new two_third(current_Width,current_Height)  	;若针对窗体而不是屏幕则解除上面注释 并给窗体值  	;用SysGet, MonitorWorkArea,而未用A_ScreenWidth A_ScreenHeight 避免任务条的影响  	SysGet, MonitorWorkArea, MonitorWorkArea,1  	;MsgBox, Monitor:`t`nLeft:`t%MonitorLeft% (%MonitorWorkAreaLeft% work)`nTop:`t%MonitorTop% (%MonitorWorkAreaTop% work)`nRight:`t%MonitorRight% (%MonitorWorkAreaRight% work)`nBottom:`t%MonitorBottom% (%MonitorWorkAreaBottom% work)  	quarter := new quarter(MonitorWorkAreaRight ,MonitorWorkAreaBottom)  	one_third:= new one_third(MonitorWorkAreaRight ,MonitorWorkAreaBottom)  	two_third:= new two_third(MonitorWorkAreaRight ,MonitorWorkAreaBottom)}	event_index+=1	event_index:=Mod(event_index, 3)  ;3个状态循环,模3,模运算得出 0,1,2	commandArray := ["quarter", "one_third", "two_third"]    runner:=commandArray[event_index+1] ;因为ahk的数组是从1开始的,对于索引为0时是空值,加一避免此问题  	%runner%.zoom()  	;TrayTip, %current_win%缩放%runner%,% "w=" %runner%.getNewWidth()  ",h="  %runner%.getNewHeight() , 10,  	NewWidth:=%runner%.getNewWidth()   	NewHeight:=%runner%.getNewHeight()  	WinMove, %current_win%,,MonitorWorkAreaRight-NewWidth,MonitorWorkAreaBottom-NewHeight,NewWidth,NewHeightReturnclass WinSize{   Width :=0   Height := 0   NewWidth:=0   NewHeight:=0   ;SetWidth(val){   ;   Width := val ; Can set the color using a function of the class   ;}   ;SetHeight(val){   ;   Height := val ; Can set the color using a function of the class   ;}   GetWidth(){      Return this.Width ;需要增加this   }   GetHeight(){      Return this.Height  ;需要增加this   }   GetNewWidth(){      Return this.NewWidth ;需要增加this   }   GetNewHeight(){      Return this.NewHeight  ;需要增加this   }	__New(w="",h=""){		if (w="")			this.Width :=A_ScreenWidth		Else			this.Width :=w				if (h="")				this.Height:=A_ScreenHeight		Else			this.Height := h	}}Class half extends WinSize{	zoom()	{		this.NewWidth:=  this.Width//2  ;向下舍除 (//)		this.NewHeight:=  this.Height	}}Class quarter extends WinSize{	zoom()	{		this.NewWidth:=  this.Width//2		this.NewHeight:=  this.Height//2	}}Class one_third extends WinSize{	zoom()	{		this.NewWidth:= this.Width//3		this.NewHeight:= this.Height	}}Class two_third extends WinSize{	zoom()	{		this.NewWidth:= this.Width*2//3		this.NewHeight:= this.Height	}	}

转载于:https://www.cnblogs.com/james1207/p/3281422.html

你可能感兴趣的文章
导航条选项卡
查看>>
bootstrap table 复选框使用
查看>>
ng -v 不是内部或外部命令
查看>>
图片模糊化处理
查看>>
iOS10 App适配权限 Push Notifications 字体Frame 遇到的坑!!!!
查看>>
一语道破项目管理知识体系五大过程组
查看>>
Mac连接远程Linux管理文件(samba)
查看>>
WPF变换详解
查看>>
flash player 请求本地存储为无限制
查看>>
程序逻辑的组织方式
查看>>
今天正式开通博客
查看>>
javascript逗号添加函数
查看>>
Codeforces Round #307 (Div. 2) E. GukiZ and GukiZiana 分块
查看>>
hdu 5452 Minimum Cut 树形dp
查看>>
perf4j @Profiled常用写法
查看>>
配置的热更新
查看>>
ios view的frame和bounds之区别(位置和大小)
查看>>
USB小白学习之路(11) Cy7c68013A驱动电路设计注意事项(转)
查看>>
Luogu 2530 化工厂装箱员
查看>>
自定义webUI实例
查看>>