标题: [注册表类] [初步解决]win7系统,如何实现在任务栏右键菜单工具栏中全自动化新建Quick Launch项? [打印本页]
作者: ygqiang 时间: 2016-7-30 08:26 标题: [初步解决]win7系统,如何实现在任务栏右键菜单工具栏中全自动化新建Quick Launch项?
[初步解决]win7系统,如何实现在任务栏右键菜单工具栏中全自动化新建Quick Launch项?
请直接看13楼的ahk代码。初步搞定。
求帮忙测试下。谢谢。。。
添加Win7快速启动栏
http://blog.sina.com.cn/s/blog_5d2ced280100j99o.html
上面一系列的鼠标点击操作过程,有没有全自动化/傻瓜化/1次性的实现方法?
具体操作过程:
1、鼠标右键单击任务栏空白处-工具栏-新建工具栏,
注意:在任务栏下方的中间空白处模拟鼠标单击右键就行。
(别在任务栏右下角托盘的时间/年代日期上单击右键)
2、在弹出的窗口中输入:
%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
然后单击:选择文件夹。
3、右键单击任务栏空白处-解锁任务栏。
4、
4.1、在显示Quick Launch 的位置单击右键,选择查看—大图标。
4.2、在显示Quick Launch 的位置单击右键,把显示文本的勾去掉。
4.3、在显示Quick Launch 的位置单击右键,把显示标题的勾去掉。
4.1 4.2 4.3最好按照顺序依次执行。谢谢
遇到的问题主要是:
win7系统下正常使用,手动设置1次,以后使用,
遇到过几次都会莫名其妙消失,然后又要重新手动点击多次/才能设置完毕。
别人的win7系统也遇到过几次这问题。
不知道啥原因引起的。
作者: ygqiang 时间: 2016-7-30 09:10
本帖最后由 ygqiang 于 2016-7-30 13:46 编辑
添加Win7快速启动栏
http://blog.sina.com.cn/s/blog_5d2ced280100j99o.html
上面的操作过程,有没有傻瓜化的方法?
bat或者vbs或者注册表等等,鼠标双击运行1次,就全程设置完毕。
别用鼠标一直点击好多次才能设置好。
作者: ygqiang 时间: 2016-7-30 11:03
本帖最后由 ygqiang 于 2016-8-8 02:42 编辑
1楼的问题。
百度搜索。找到很多方法。不知道是否好用。。。。没有头绪。
作者: pcl_test 时间: 2016-7-30 18:14
这种要求来来去去就那么几种方法
1、注册表法
2、模拟操作法
3、系统接口、API法
作者: pcl_test 时间: 2016-8-2 17:25
本帖最后由 pcl_test 于 2016-8-11 15:47 编辑
ahk- HKL:=DllCall("LoadKeyboardLayout", Str, 0x08040804, UInt, 1)
- ControlGetFocus, ctl, A
- SendMessage, 0x50, 0, HKL, %ctl%, A
- ;假设任务栏在屏幕底部
- SysGet, VWidth, 78
- SysGet, VHeight, 79
- VWidth := Round(VWidth/2)
- VHeight := VHeight-10
- BlockInput on
- ControlClick,X%VWidth% Y%VHeight%, ahk_class Shell_TrayWnd,, R
- Sleep, 300
- Send, {t}
- Sleep, 300
- Send, {n}
- Sleep, 500
- ControlClick, Edit1, 新工具栏 - 选择文件夹,, L
- Sleep, 300
- Send, %APPDATA%\Microsoft\Internet Explorer\Quick Launch
- Sleep, 500
- ControlClick, Button1, 新工具栏 - 选择文件夹,, L
- Sleep, 500
- IfWinExist, 新工具栏 - 选择文件夹
- {
- WinActivate
- ControlClick, Button1, 新工具栏 - 选择文件夹,, L
- return
- }
复制代码
作者: ygqiang 时间: 2016-8-8 01:44
本帖最后由 ygqiang 于 2016-8-15 08:36 编辑
回复 5# pcl_test
多谢。。
你的ahk代码,第一次的版本,基本好用。
第一次的版本,发现有2个问题:
1、很多时候在输入地址完了以后,会停留不动了,并不会点击“选择文件夹”
2、模拟鼠标点击右键的时候,能否别在任务栏右下角托盘的时间/年代日期上点击?
在任务栏下方的中间空白处模拟鼠标点击右键就行。
建立完快捷启动项以后,最好还可以加上下面的功能:
1、在显示Quick Launch 的位置右键,选择查看—大图标。
2、在显示Quick Launch 的位置右键,把显示文本的勾去掉。
3、在显示Quick Launch 的位置右键,把显示标题的勾去掉。
1 2 3最好按照顺序依次执行。谢谢
5楼,这个最新的修改版本,运行没效果。并不能建立快捷启动项。
作者: ygqiang 时间: 2016-8-11 11:47
回复 5# pcl_test
帮忙解决下吧, 多谢了。
作者: ygqiang 时间: 2016-8-12 13:38
顶下。。。
作者: ygqiang 时间: 2016-8-14 17:34
回复 5# pcl_test
1楼的具体操作过程。能否实现全自动化/傻瓜化/一次性实现?谢谢
作者: ygqiang 时间: 2016-8-15 08:17
本帖最后由 ygqiang 于 2016-8-15 08:28 编辑
回复 5# pcl_test
最新的ahk代码测试了。
右键点击任务栏,就一直停在工具栏那里。
并不能弹出工具栏里面的选项。进行下一步操作。
Send, {t}
这里应该send发送一个“右箭头”命令。
Send ^#{right}
Send, {n}
ok这个问题解决了。
作者: ygqiang 时间: 2016-8-15 08:34
本帖最后由 ygqiang 于 2016-8-15 08:37 编辑
3、右键单击任务栏空白处-解锁任务栏。
4、
4.1、在显示Quick Launch 的位置单击右键,选择查看—大图标。
4.2、在显示Quick Launch 的位置单击右键,把显示文本的勾去掉。
4.3、在显示Quick Launch 的位置单击右键,把显示标题的勾去掉。
4.1 4.2 4.3最好按照顺序依次执行。谢谢- BlockInput on
- ControlClick,X%VWidth% Y%VHeight%, ahk_class Shell_TrayWnd,, R
- Sleep, 300
- Send, {L}
复制代码
上面是3的代码
下面4的代码,如何进行?谢谢
作者: ygqiang 时间: 2016-8-19 12:52
楼上更新了。。。
作者: ygqiang 时间: 2016-8-20 19:13
本帖最后由 ygqiang 于 2016-8-20 21:39 编辑
代码重新更新了下。- if had_added()
- ExitApp
-
- ql_add()
- Sleep,200
- if (is_locked())
- {
- lock_unlock()
- }
- Sleep,200
- clear()
- Sleep,200
- control_move()
- control_set()
- Sleep,200
- lock_unlock()
- blockinput,off
-
-
- ;=====================================================
-
- ql_add()
- {
-
- winactivate,ahk_class Shell_TrayWnd
- WinGetPos, x, y, w, h, ahk_class Shell_TrayWnd
- ControlClick, % "x" 0 " y" h, ahk_class Shell_TrayWnd,, R
- blockinput,on
- while(!menu1_hwnd := waitmenu(click_x, click_y))
- Sleep, 200
- ControlSend, ahk_parent, t, ahk_id %menu1_hwnd%
- ControlSend, ahk_parent, {Right}, ahk_id %menu1_hwnd%
- WinGetPos, m1x, m1y, m1w, m1h, ahk_id %menu1_hwnd%
- while(!menu2_hwnd := waitmenu(m1x+m1w, m1y, menu1_hwnd))
- Sleep, 200
- ControlSend, ahk_parent,n, ahk_id %menu2_hwnd%
- WinWait, 新工具栏 - 选择文件夹
- ControlClick, Edit1, 新工具栏 - 选择文件夹,, L
- ControlSetText, Edit1, %APPDATA%\Microsoft\Internet Explorer\Quick Launch, 新工具栏 - 选择文件夹
- ControlSend, Edit1, {Enter}, 新工具栏 - 选择文件夹
- ControlClick, Button1, 新工具栏 - 选择文件夹
- ControlGetPos,xs,ys,,,Button1,新工具栏 - 选择文件夹
-
- Loop
- {
-
- IfWinExist, 新工具栏 - 选择文件夹
- {
- WinActivate,新工具栏 - 选择文件夹
- MouseMove,xs+5,ys+5,0
- Send {LButton}
- }
- else
- {
- break
- }
- Sleep, 200
- }
- }
-
-
-
- is_locked()
- {
- RegRead, Status, HKCU, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, TaskbarSizeMove
- return !Status
- }
-
- lock_unlock()
- {
- WinGetPos, x, y, w, h, ahk_class Shell_TrayWnd
- ControlClick,% "x" x " y" y+h, ahk_class Shell_TrayWnd,, R
- while(!Menu_hwnd := waitmenu(Click_x, Click_y))
- Sleep, 200
- ControlSend, ahk_parent, l, ahk_id %Menu_hwnd%
- }
- clear()
- {
- WinGet, ctr_list, ControlList, ahk_class Shell_TrayWnd
- Loop, Parse, ctr_list, `n, `r
- {
- if InStr(A_LoopField,"ToolbarWindow32")
- {
- ControlGetText, txt, % A_LoopField, ahk_class Shell_TrayWnd
- if (txt="Quick Launch")
- {
- ql_ctr := A_LoopField
- break
- }
- }
- }
- if ql_ctr
- {
- ControlGet, ql_ctr_hwnd, Hwnd, , % ql_ctr, ahk_class Shell_TrayWnd
- WinGetPos, x, y, w, h, ahk_id %ql_ctr_hwnd%
- ControlClick, % "x" 0 " y" h, ahk_id %ql_ctr_hwnd%,, R
- while(!Menu1_hwnd := waitmenu(x, y+h))
- Sleep, 200
- ControlSend, ahk_parent, v, ahk_id %Menu1_hwnd%
- ControlSend, ahk_parent, {Right}, ahk_id %Menu1_hwnd%
- WinGetPos, m1x, m1y, m1w, m1h, ahk_id %Menu1_hwnd%
- while(!Menu2_hwnd := waitmenu(m1x+m1w, m1y, Menu1_hwnd))
- Sleep, 200
- ControlSend, ahk_parent, g, ahk_id %Menu2_hwnd%
- WinWaitClose, ahk_id %Menu2_hwnd%
-
- WinGetPos, x, y, w, h, ahk_id %ql_ctr_hwnd%
- ControlClick, % "x" 0 " y" h, ahk_id %ql_ctr_hwnd%,, R
- while(!Menu3_hwnd := waitmenu(x, y+h))
- Sleep, 200
- ControlSend, ahk_parent, x, ahk_id %Menu3_hwnd%
- WinWaitClose, ahk_id %Menu3_hwnd%
-
- WinGetPos, x, y, w, h, ahk_id %ql_ctr_hwnd%
- ControlClick, % "x" 0 " y" h, ahk_id %ql_ctr_hwnd%,, R
- while(!Menu4_hwnd := waitmenu(x, y+h))
- Sleep, 200
- ControlSend, ahk_parent, w, ahk_id %Menu4_hwnd%
- WinWaitClose, ahk_id %Menu4_hwnd%
- }
- }
-
- control_move()
- {
- Loop,5
- {
- ControlGetPos,x2,y2,,,MSTaskListWClass1,ahk_class Shell_TrayWnd
- ControlGetPos,x,y,,,ToolbarWindow323,ahk_class Shell_TrayWnd
- if (x>x2)
- {
- WinActivate,ahk_class Shell_TrayWnd
- MouseMove,x-5,y+5,0
- Send {LButton down}
- Sleep,350
- MouseMove,0,y+5,8
- Send {LButton up}
- }
- else
- {
- break
- }
- }
- }
-
- control_set()
- {
- blockinput,on
- WinActivate,ahk_class Shell_TrayWnd
- ControlGetPos,x,y,w,h,ToolbarWindow323,ahk_class Shell_TrayWnd
- ControlGetPos,x2,y2,,,MSTaskListWClass1,ahk_class Shell_TrayWnd
- MouseMove,x+w+(x2-x-w)*2/3,h/2,0
- Send {LButton down}
- Sleep,200
- ControlGetPos,,,w0,h,ToolbarWindow323,ahk_class Shell_TrayWnd
- wc:=w0/2
- mousemove,-wc,0,5,r
- con:=0
- loop
- {
- if (wc<1)
- {
- break
- }
- wc:=wc/2
- ControlGetPos,,,w,h,ToolbarWindow323,ahk_class Shell_TrayWnd
- if ((w0-wc*2>w)and(con=0))
- {
- con:=1
-
- }
- else if ((w0-wc*2=w)and(con=0))
- {
- con:=0
- }
- else if ((w0+wc*2<w)and(con=1))
- {
- con:=0
-
- }
- else if ((w0-wc*2=w)and(con=1))
- {
- con:=1
- }
-
- if (con=0)
- {
- w0:=w
- mousemove,-wc,0,5,r
- }
- else
- {
- w0:=w
- mousemove,wc,0,5,r
- }
-
-
- }
- Send {LButton up}
- blockinput,off
- }
-
- had_added(){
- WinGet, ctr_list, ControlList, ahk_class Shell_TrayWnd
- Loop, Parse, ctr_list, `n, `r
- {
- if InStr(A_LoopField,"ToolbarWindow32")
- {
- ControlGetText, txt, % A_LoopField, ahk_class Shell_TrayWnd
- if (txt="Quick Launch")
- {
- ql_ctr := A_LoopField
- break
- }
- }
- }
- if ql_ctr
- return 1
- }
-
-
- waitmenu(click_x, click_y, ex_hwnd:="")
- {
- WinGet, wins, List
- a := ""
- Loop % wins
- {
- win := wins%A_index%
- WinGetPos, x, y, w, h, ahk_id %win%
- WinGetTitle, title, ahk_id %win%
- if (!title && (Abs(Click_y-y)<8 || Abs(Click_y-(y+h))<8) && w<300 && w>80 && h>20 && (ex_hwnd ? win<>ex_hwnd : 1))
- {
- return win
- }
- }
- }
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |