发表回复 
屏幕键盘()
2018-07-30, 23 : 57 (这个帖子最后修改于: 2019-04-21 14 : 52 by feiyue.)
Rainbow 屏幕键盘()

这是一个类似 WinXP 屏幕键盘的小工具,随便玩玩。Shy


代码: (全选)
/*
--------------------------------
  屏幕键盘() v1.5  By FeiYue

  这是一个类似 WinXP 屏幕键盘的小工具,

  写成函数形式,便于在其他脚本中调用。
--------------------------------
*/

#NoEnv
#SingleInstance force
Menu, Tray, Add
Menu, Tray, Add, 屏幕键盘
Menu, Tray, Default, 屏幕键盘
Menu, Tray, Click, 1
屏幕键盘:
OSK()
return

*F1::OSK()

OSK() {

  static NewName:={ "":"Space", Caps:"CapsLock"
     , App:"AppsKey", Psc:"PrintScreen", Slk:"ScrollLock"
     , "↑":"Up", "↓":"Down", "←":"Left", "→":"Right" }
  w1:=45, h1:=30, w2:=60, w3:=w1*14+2*13

  ; Keyboard layout: [key name, width, spacing]

  s1:=[ ["Esc"],["F1",,w3-w1*13-15*2-2*9],["F2"],["F3"],["F4"],["F5",,15]
     ,["F6"],["F7"],["F8"],["F9",,15],["F10"],["F11"],["F12"]
     ,["Psc",w2,10],["Slk",w2],["Pause",w2] ]

  s2:=[ ["~ ``"],["! 1"],["@ 2"],["# 3"],["$ 4"],["% 5"],["^ 6"]
     ,["&& 7"],["* 8"],["( 9"],[") 0"],["_ -"],["+ ="],["BS"]
     ,["Ins",w2,10],["Home",w2],["PgUp",w2] ]

  s3:=[ ["Tab"],["q"],["w"],["e"],["r"],["t"],["y"]
     ,["u"],["i"],["o"],["p"],["{ ["],["} ]"],["| \"]
     ,["Del",w2,10],["End",w2],["PgDn",w2] ]

  s4:=[ ["Caps",w2],["a"],["s"],["d"],["f"],["g"],["h"]
     ,["j"],["k"],["l"],[": `;"],[""" '"],["Enter",w3-w1*11-w2-2*12] ]

  s5:=[ ["Shift",w1*2],["z"],["x"],["c"],["v"],["b"]
     ,["n"],["m"],["< ,"],["> ."],["? /"],["Shift",w3-w1*12-2*11]
     ,["↑",w2,10+w2+2] ]

  s6:=[ ["Ctrl",w2],["Win",w2],["Alt",w2],["",w3-w2*7-2*7]
     ,["Alt",w2],["Win",w2],["App",w2],["Ctrl",w2]
     ,["←",w2,10],["↓",w2],["→",w2] ]

  Gui, OSK: Destroy
  ; +E0x08000000  Click not to activate
  Gui, OSK: +AlwaysOnTop +Owner +E0x08000000
  Gui, OSK: Font, s12, Verdana
  Gui, OSK: Margin, 10, 10
  Gui, OSK: Color, DDEEFF
  Loop, 6 {
    if (A_Index<=2)
      j=
    For i,v in s%A_Index%
    {
      w:=v.2 ? v.2 : w1, d:=v.3 ? v.3 : 2
      j:=j="" ? "xm" : i=1 ? "xm y+2" : "x+" d
      Gui, OSK: Add, Button, %j% w%w% h%h1% -Wrap gRunOSK, % v.1
    }
  }
  Gui, OSK: Show, NA, 屏幕键盘
  return

  OSKGuiClose:
  Gui, OSK: Destroy
  return

  RunOSK:
  k:=A_GuiControl
  if k in Shift,Ctrl,Win,Alt
  {
    v:=k="Win" ? "LWin" : k
    GuiControlGet, isEnabled, OSK: Enabled, %k%
    GuiControl, OSK: Disable%isEnabled%, %k%
    if (!isEnabled)
      SendInput, {Blind}{%v%}
    return
  }
  s:=InStr(k," ") ? SubStr(k,0) : k
  s:=(v:=NewName[s]) ? v : s, s:="{" s "}"
  For i,k in StrSplit("Shift,Ctrl,Win,Alt", ",")
  {
    GuiControlGet, isEnabled, OSK: Enabled, %k%
    if (!isEnabled)
    {
      GuiControl, OSK: Enable, %k%
      v:=k="Win" ? "LWin" : k
      s={%v% Down}%s%{%v% Up}
    }
  }
  SendInput, {Blind}%s%
  return
}

;
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢feiyue
2018-11-13, 21 : 25
RE: 屏幕键盘()
打扰了 我是新新手 我其实只想 把键盘上的PrtSc键用 CTRL+B 代替 ,也就是说 当我按下 CTRL+B 的时候就相当于按了 PrtSc键 ,不知道 怎么编脚本,AUTOHOTKEY软件电脑环境 电脑已经装好了 ,谢谢了
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2019-05-06, 13 : 54 (这个帖子最后修改于: 2019-05-06 19 : 23 by abc001.)
RE: 屏幕键盘()
非常好用,收藏了。
https://www.autoahk.com/archives/12779
我之前在这看的版本是你之前的版本吧?
这个界面大了好多,要是小点就好了。
w1:=35, h1:=20, w2:=55, w3:=w1*14+2*13
改小了点,很不错。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2019-05-06, 19 : 11
RE: 屏幕键盘()
要小一点,可以把w1:=45改为w1:=35
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢feiyue
2019-05-07, 09 : 53 (这个帖子最后修改于: 2019-05-07 10 : 42 by abc001.)
RE: 屏幕键盘()
w1:=35, h1:=25, w2:=55, w3:=w1*14+2*13
又改了下,显示完整,很不错,感谢分享。
加了语句设置下显示位置,默认在正中间有些碍事,自己往下调了点。
代码: (全选)
Gui, OSK: Show, x170 y520 w715 h186
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合