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

Ram*_* B. 14 user-accounts dvorak keyboard-layout windows-xp

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

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

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

JWi*_*ill 20

似乎有人使用 Windows编译的 Autohotkey 脚本解决了同样的问题。这是一个便携式应用程序,您可以随身携带在拇指驱动器上,并且您应该能够在登录时插入并启动它,即使访问受限。

但是,程序员 dvorak 没有布局,因此您必须创建自己的布局。我认为这涉及编辑包含的 Colemac 布局的文本。我无法理解为什么它不使用标准布局格式。

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


更新

我已经解决了我们的问题!在为出色的便携式键盘布局的稀疏文档苦苦挣扎了几个小时之后,我设法拼凑了一个程序员 dvorak 配置文件。图像不正确,但最重要的是打字效果很好,一切都在您期望的位置。

安装说明

相当简单。

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

  2. 下载这个 layout.ini 文件——注意,我要把它粘贴在帖子的底部,因为我猜你不能在这个网站上上传文件?

  3. 替换“便携式键盘布局\layouts\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 ;  -> ?
Run Code Online (Sandbox Code Playgroud)