在Windows中无需管理员即可使用自定义键盘布局


12

我习惯于输入“ Programmer Dvorak”键盘布局。为了能够安装它,您需要管理权限,这使我无法在学校使用它。我的学校运行一个XP企业网络,因此我认为应该有一种方法可以将布局安装到我的漫游配置文件中,该方法不需要管理权限,并且可以使用此布局,但是事实并非如此。

我试图要求IT为我安装它,但是他们拒绝了,因为他们认为这是不必要的软件。

我可以将源代码编译到dll中,但是我不知道是否可以告诉Windows将其用作布局,以及如何这样做。有人知道吗?


要求管理员为您安装它?
Sathyajith Bhat

@Sathya对,忘了添加那部分,谢谢。
Ramon Zarazua B.

Answers:


20

似乎有人使用Windows 编译的Autohotkey脚本解决了相同的问题。它是随身携带的便携式应用程序,您可以随身携带,即使登录受到限制,您也应该能够将其插入并启动。

但是,没有用于dvorak的布局,因此您必须创建自己的布局。我认为这涉及到文本编辑所包含的Colemac布局。为什么不使用标准布局格式,这超出了我的范围。

但是,如果您为该程序制作了自己的Programmer Dvorak布局,请在此处上传。跟随的人们将很高兴避免这种烦人的旅程。


更新资料

我已经解决了我们的问题!在为稀疏的文档准备出色的便携式键盘布局几小时后,我设法将一个程序员dvorak配置文件拼凑在一起。图像不正确,但最重要的是键入效果完美,并且一切都在您期望的位置。

安装说明

很简单。

  1. 下载PKL并将其放在闪存驱动器上。

  2. 下载此layout.ini文件-注意,由于您无法在该站点上载文件,我将其粘贴在帖子的底部。

  3. 替换为“便携式键盘布局\布局\ colemak \ layout.ini”

  4. 每当您要使用Programmer Dvorak时,请启动“便携式键盘布局\ pkl.exe”。

对于感兴趣的人,我使用了Microsoft Keyboard Layout Creator 1.4klc2ini perl脚本(将MSKLC的输出转换为PKL可以使用的格式)。


layout.ini 文件 - 只需将其粘贴到colemak layout.ini文件中,替换其中的所有内容即可。

注意:我不确定死区部分是什么;该脚本产生了很多错误。但这有效,所以我没有在戳它。

编辑:我已经将文件托管在这里,因为我在复制以下文本时遇到了麻烦。可能是某些StackOverflow格式化的东西。

;
; Keyboard Layout definition for
; Portable Keyboard Layout
; http://pkl.sourceforge.net
;

[informations]
layoutname           = United States-Dvorak-Programmer
layoutcode           = DvrkProg
localeid             = 00000409

copyright            = Public Domain
company              = Free
homepage             = http://pkl.sourceforge.net/
version              = 1.0

generated_from       = DvrkProg.klc
modified_after_generate = no


[global]
; extend_key = CapsLock
shiftstates = 0:1:2
img_width = 296
img_height = 102


[fingers]
row1 = 1123445567888
row2 = 1123445567888
row3 = 1123445567888
row4 = 11234455678

[layout]
;scan = VK  CapStat 0Norm   1Sh 2Ctrl   Caps    CapsSh
SC002 = 1   0   &   %   --  ; QWERTY 1!
SC003 = 2   0   [   7   --  ; QWERTY 2@
SC004 = 3   0   {   5   --  ; QWERTY 3#
SC005 = 4   0   }   3   --  ; QWERTY 4$
SC006 = 5   0   (   1   --  ; QWERTY 5%
SC007 = 6   0   =   9   --  ; QWERTY 6^
SC008 = 7   0   *   0   --  ; QWERTY 7&
SC009 = 8   0   )   2   --  ; QWERTY 8*
SC00a = 9   0   +   4   --  ; QWERTY 9(
SC00b = 0   0   ]   6   --  ; QWERTY 0)
SC00c = OEM_4   0   !   8   --  ; QWERTY -_
SC00d = OEM_6   0   #   `   --  ; QWERTY =+
SC010 = OEM_7   0   ;   :   --  ; QWERTY qQ
SC011 = OEM_COMMA   0   ,   <   --  ; QWERTY wW
SC012 = OEM_PERIOD  0   .   >   --  ; QWERTY eE
SC013 = P   1   p   P   --  ; QWERTY rR
SC014 = Y   1   y   Y   --  ; QWERTY tT
SC015 = F   1   f   F   --  ; QWERTY yY
SC016 = G   1   g   G   --  ; QWERTY uU
SC017 = C   1   c   C   --  ; QWERTY iI
SC018 = R   1   r   R   --  ; QWERTY oO
SC019 = L   1   l   L   --  ; QWERTY pP
SC01a = OEM_2   0   /   ?   --  ; QWERTY [{
SC01b = OEM_PLUS    0   @   ^   --  ; QWERTY ]}
SC01e = A   1   a   A   --  ; QWERTY aA
SC01f = O   1   o   O   --  ; QWERTY sS
SC020 = E   1   e   E   --  ; QWERTY dD
SC021 = U   1   u   U   --  ; QWERTY fF
SC022 = I   1   i   I   --  ; QWERTY gG
SC023 = D   1   d   D   --  ; QWERTY hH
SC024 = H   1   h   H   --  ; QWERTY jJ
SC025 = T   1   t   T   --  ; QWERTY kK
SC026 = N   1   n   N   --  ; QWERTY lL
SC027 = S   1   s   S   --  ; QWERTY ;:
SC028 = OEM_MINUS   0   -   _   --  ; QWERTY '"
SC029 = OEM_3   0   $   ~   --  ; QWERTY `~
SC02b = OEM_5   0   \   |   --  ; QWERTY \|
SC02c = OEM_1   0   '   "   --  ; QWERTY zZ
SC02d = Q   1   q   Q   --  ; QWERTY xX
SC02e = J   1   j   J   --  ; QWERTY cC
SC02f = K   1   k   K   --  ; QWERTY vV
SC030 = X   1   x   X   --  ; QWERTY bB
SC031 = B   1   b   B   --  ; QWERTY nN
SC032 = M   1   m   M   --  ; QWERTY mM
SC033 = W   1   w   W   --  ; QWERTY ,<
SC034 = V   1   v   V   --  ; QWERTY .>
SC035 = Z   1   z   Z   --  ; QWERTY /?
SC039 = SPACE   0   ={Space}    ={Space}    ={Space}    ; QWERTY Space
SC056 = OEM_102 0   \   |       ; QWERTY OEM_102
SC053 = DECIMAL 0   .   .   --  ; QWERTY Decimal in Numpad







[deadkey1]
0    =    0 ;  
1    =   14 ;  -> 
14   = 2988 ;  -> ஬
15   =    0 ;  ->  
28   =   14 ;  -> 
29   =   12 ;  -> 
42   =    0 ; * ->  
54   =    0 ; 6 ->  
55   =    0 ; 7 ->  
56   =   10 ; 8 -> 

57   =    0 ; 9 ->  
58   =    0 ; : ->  
59   =  241 ; ; -> ñ
60   =  242 ; < -> ò
61   =  243 ; = -> ó
62   =  244 ; > -> ô
63   =  245 ; ? -> õ
64   =  246 ; @ -> ö
65   =  247 ; A -> ÷
66   =  248 ; B -> ø
67   =  249 ; C -> ù
68   = 3856 ; D -> ༐
69   =    0 ; E ->  
70   =    0 ; F ->  
71   =    0 ; G ->  
72   =    0 ; H ->  
73   =    0 ; I ->  
74   =    0 ; J ->  
75   =    0 ; K ->  
76   =    0 ; L ->  
77   =    0 ; M ->  
78   =    0 ; N ->  
79   =    0 ; O ->  
80   =    0 ; P ->  
81   =    0 ; Q ->  
82   =    0 ; R ->  
83   =    0 ; S ->  
84   =    0 ; T ->  
87   = 3857 ; W -> ༑
88   = 3858 ; X -> ༒
124  = 3859 ; | -> ༓
125  = 3860 ; } -> ༔
126  = 3861 ; ~ -> ༕
127  = 3862 ;  -> ༖
128  = 3863 ;  -> ༗
129  = 3864 ;  -> ༘
130  = 3865 ;  -> ༙
131  = 3872 ;  -> ༠
132  = 3873 ;  -> ༡
133  = 3874 ;  -> ༢
134  = 3875 ;  -> ༣
135  = 3876 ;  -> ༤

惊人!由于不是每个人的系统上都装有Perl编译器,您是否也愿意发布.exe文件?
Stefnotch '16

@Stefnotch不需要编译器吗?但这绝对需要在更多地方共享!!太棒了。
JasoonS

@JasoonS我指的是“ klc2ini perl脚本”。而且,我完全同意这太棒了!(我结束了使用strawberryperl.com把我的键盘布局到的东西,这真棒程序可以使用)
Stefnotch

可以将它作为开源项目托管在github.com上吗?
费利佩·阿尔瓦雷斯

有谁知道您将如何更改这些文件以切换Caps Lock和Ctrl?(我尝试过但没走很远...)
JasoonS

1

如果您的帐户数量有限,并且安装程序需要访问系统文件夹和/或注册表的LOCAL_MACHINE部分,则无法安装。具有管理员帐户和受限帐户的全部目的是防止用户修改系统配置。

我同意,安装其他键盘布局似乎不是什么大问题,但是如果他们接受您的请求,则必须接受其余用户的请求,而且很有可能其中的一部分是白痴(“嘿,他有键盘,为什么我不能安装Bittorrent?“),

另外,其中一个额外的程序可能会破坏系统,特别是如果您安装了驱动程序(几年前我首次安装Windows 2000时,鼠标驱动程序就变成了蓝屏,而我必须从安全模式下卸载它)。


好吧,那似乎就到此为止了,哦,我只需要忍受它即可。谢谢。
Ramon Zarazua B.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.