Joystick To H-shifter 2

摇杆变卅档2

 

About Language
The program interface, config file, and this help document, are written in both English and Chinese, in the OS that doesn't have Simplified Chinese Language installed or supported, unreadble characters may shown, that's all right and all functions will still work properly. So, don't be worry :-)

Quick Start
------------------
Instruction

Gear Effect Zone (GEZ)

About GEZ
CenterZone & NaturalGear (C/NZ)
R/7th Gear
Modify GEZs

Joystick

General
Device ID
Normal/FFB Joystick

Key Inputs

General
About Key Codes
Press and Hold/Release Mode

File

Profile Management
Key Inputs Management

Other

Pause

--------------------
What's new in version 2

Scan Code List
Virtual Code List


About

Copyright and Distribution
Special Thanks
Demo Videos
Contact Me

快速开始
------------------
简介

档位区(GEZ)

关于GEZ
中央/空档区 (C/NZ)
倒档和第7档
修改GEZ

摇杆

概述
设备ID
普通(自动回中)/力反馈摇杆

按键输入

概述
关于按键Code
按住不放/按后释放模式

文件

配置文件
按键输入

其他

暂停

--------------------
2代新特性

Scan Code 表
Virtual Code 表


关于

版权声名
特别感谢
演示视频
与我联系




 

 

 

 

Quick Start

1) Connect your joystick to you PC, ensure that Windows has recognize it
(If you're using a force feedback joystick, disconnect the power supply)

2) Run Joystick To H-shifter 2
(If it is already running before connecting the joystick, restart the program)

3) Change the "Device ID" (starts with zero) and check if the cursor reacts when your joystick moves

4) If you're going to play LFS, check the "LFS" option

5) Run the game and have fun!

 

Instruction

Real cars are using H-shifter to switch gears, but most of us do not have such advanced device like G25 or homemade hardware to realize this. But a joystick is very cheap and easy to get, and this program can turn your joystick to an H-shifter.
Nowadays most of the game supports H-shifter inputs, you can assign a certain key from keyboard or a button from your game device (driving wheel, flight joystick, game pad, etc.), And this program reads the X and Y axes of the joystick, while your stick is in certain position, the program sends a virtual keyboard key pressing to the system, so all you have to do to enjoy an H-shifter simulation is to: 1) prepare a joystick, 2) run my program, 3) a bit settings in my program and game.
No need to buy expensive devices, no need to do works to make a complex electrical & mechanical device.
Just plug your joystick and have fun :-)

 

Gear Effect Zones (GEZs)

About GEZ

In Joystick to H-shifter 2, keys are pressed while joystick cursor enters a GEZ.
And with the "Press and Hold" mode active, the pressing key will only be released if the cursor exits the current GEZ.
You can also change the position and the size of the GEZs.

Center Zone and Natural Gear (C/NZ)

The main feature of Joystick to H-shifter is that you must center the Y-axis before switching to the next gear. If you do not move the stick to center, you can not perform such switching like 1st to 3rd gear, or 6th to 4th gear. This is why I started to write Joystick to H-shifter instead of using Xpadder.
You needn't stay the joystick cursor in C/NZ and wait for a period and then go to next gear, normally, you can draw the C/NZ just like a line horizontally cross the entire joystick moveable zone, and while you're doing a correct two-gear-shifting, the stick cursor must've been crossed the C/NZ and the next gear will be effective. But if you've made an H-slot of your joystick, defining the C/NZ carefully is recommended.
If the option: "N Gear" is checked, a virtual pressing of a certain key will be sent to system while the stick is entering the C/NZ, the key maybe just hit once, or keep holding until the cursor moves out, that'll be related to if "Press then Release" or "Press and Hold" mode is active.
Like other GEZs, the C/NZ can also be moved and redraw, BUT IT IS HIGHLY RECOMMAND THAT DO NOT DRAW THIS ZONE TOO BIG, OTHERWISE YOU MAY MISS THE NEXT GEAR, for more details, please refer to KNOWN BUGS.

Reverse and 7th Gear

Check the R Gear option to active the reverse gear.
R gear is not recommended if you didn't make something like an H-slot to enhance your joystick, to limit the move path of the joystick.
You can also use the R gear function as the 7th gear, just position the GEZ and match the key setting for 7th gear in the game with the key code in "key.cfg".

Modify GEZs

Click the "Modify GEZs" to active the modify mode, and then:
-To move a GEZ, move your joystick and place the cursor within a GEZ, then press and hold joystick button 1 to drag it.
-To resize a GEZ, first select which gear you want to modify in "Resize GEZ" box, then click the "Redraw" button, the GEZ will reduce its size to 20x20/65536x65536, then you can press and hold joystick button 2 to redraw the GEZ.
Summary: 1) Drag to move it. 2) Click the button to reduce its size to a dot, then redraw it.
DO NOT FORGET TO DE-ACTIVE THE "Modify GEZs" AFTER YOU FINISHED MODIFYING. IN MODIFY MODE, KEY VIRTUAL PRESSINGS WILL NOT BE SENT TO THE SYSTEM.

 

Joystick

General

You can use any kind of joystick for Joystick To H-shifter 2, MIDI or USB port, force-feedback or non-force-feedback, as long as the Windows recognize your joystick, and the program will recognize it too.

Device ID

The device ID specifies the game devices that is connecting to your computer, whatever a Driving Wheel, or a Joystick, or a Game pad, etc. It is defined by system, and generally it is unknown to you.
Although you do not know the Device ID of the joystick which you're going to use as an H-shifter, you can try to find it, by changing the index number in the "Device ID" text box. The index number starts as ZERO, and once the select device matches your joystick, you can confirm that by moving the stick around and see if the cursor is moving correctly.

Normal(Auto Center) / Force Feedback Joystick

If you're using a normal joystick, which the stick will return to center position after your hand releases. Then check the "Normal Joystick? ( Auto Center )" option.
In fact it performs the same in "Press then Release" mode. But it's different in "Press and Hold" mode (which is the only mode for LFS, TDU etc.).
So if you do not have a force-feedback joystick or you didn't open your joystick and remove the center-spring, check this option.
But if you're using a FFB joystick, do not connect the power supply of the joystick and just leave this option unchecked and you've got nothing to worry about.

 

Key

General

The propose of Joystick To H-shifter 2 is to send a key pressing action to the Windows system, so when the game receives the key pressing from Windows, shifting is realized. So you should care what's the key you're going to "press" and some different ways of "pressings".

About Key Codes

Joystick to H-shifter 2 loads two type of key codes, Scan Code and Virtual Code.
Normal DirectX games respond Scan Code and LFS responds Virtual Code.
Each code specifies a key, and you can change the code in "key.cfg" to change the keys for virtual pressings.
For the list of the codes, check the Scan Code / Virtual Code list.
NOTE: Keys for normal DirectX games and LFS are different, pay attention to the section of key codes while editing.

Press and Hold/Release Mode

A key pressing consists two actions: press and release.
In some games like GTR2(with *** "holding key for gear" unchecked in the option), to hold in a certain gear, you should just hit the key and that's all, but in some games like LFS, TDU, you should keep the key pressing, if you release the key, the gear in game will switch to natural gear, in this case, "Press and Hold" mode is needed.

 

FILE

Profile

Profiles are saved in ".cfg" format file, you can open it by notepad and change the settings/GEZ values manually.
Joystick to H-shifter 2 will load "default.cfg" as the start up setting.
If "default.cfg" is missing, program default setting will be loaded and "default.cfg" will be created in the same folder of the program.

Key Inputs

You can open key.cfg with notepad and change the key code here.
Here're the lists of Scan Code and Virtual Code:
Scan Code List
Virtual Code List

 

Other

Pause

If you have to do something else with the program still running and the joystick is still connected, you may need to Pause the program in case of send a key by hit the stick into a GEZ by mistake.

 

New Features

--Custom Gear Effect Zones(GEZ)
You can define the gear effect zones by yourself.
The position of the GEZs, and even the size of the GEZ for each gear.
This feature also brings up the following feature.

--Self-made H-slot For Joystick Supported
If you've made an H-slot for your joystick to enhance the realistic of the H-shifter, it may be impossible for the previous version of Joystick to H-shifter v0.1&v0.2.
Due to the old version only actives when the stick is in the upper/lower most of the axes, so it'll be hard to work within an H-slot.
But now, as you can define the GEZs for each gear, so whatever the X/Y value of your stick is, sending virtual key pressings are always available.
And if you have made the H-slot for your joystick, the following feature will available to you.

--Reverse/7th Gear Supported
Joystick to H-shifter 2 now supports the Reverse Gear, you can active this function and send virtual key pressing while your shifter(joystick) cursor enters that zone.
You can also uses the R as the 7th gear.
And also, another new gear supported as follows.

--Natural Gear Supported
In some games, N gear is active if the current pressing of the key of a certain gear is released (e.g. LFS, TDU), while in other games, to active N gear you should press another key, so Joystick to H-shifter 2 is now able to send a pressing while in N gear.

--Custom Keys For Virtual Pressings
In Joystick to H-shifter v0.1&v0.2, key 9,8,7..is pressed for Gear 1,2,3... and those keys are not changeable, I'm sorry for the inconvenience for some users and now keys in Joystick to H-shifter 2 are all changeable, you can send any keys as you like, for each different gear.

--Profile
All the adjustable features described above can be saved as a profile file. You can save different settings for different needs, and you can set a default profile for the start up loading for Joystick to H-shifter 2

(old feathers)
--Realistic Shifting Action
You must move the Y-axis of your joystick to center before switching to the next gear. If you're trying to switch 3rd gear to 1st directly by moving the stick from top-center position to top-left corner, nothing will be happened, the following steps show the required and correct of such shifting: move the stick from top-center to center, move it from center to left-center, move it from left-center to top-left corner.


快速开始

1) 将摇杆连上电脑,确保Windows已识别
(如果是力反馈摇杆,别插上电源)

2) 运行摇杆变卅档2
(如果在插上摇杆前已经运行了,则退出重新运行一下)

3) 改变“设备ID”(从数字0开始),直道光标随着摇杆的移动而移动

4) 如果准备玩LFS,勾上“LFS”选项

5) 启动游戏,祝您愉快!

 

简介

真实车辆里通常都是H排档(卅档),普通方向盘一般都没有,而且相信大多数人都买不起G25这种高档货。不过一个普通的摇杆便宜多了,随便买个就行,这个程序的功能就是把你的普通摇杆变成卅档。
现在的游戏都支持卅档了,在设置里面可以给每个档赋上游戏设备(方向盘,摇杆,手柄等)的按键或者键盘按键。此程序读取摇杆的X轴和Y轴,当摇杆处于某个位置时,向系统发送一个虚拟键盘按键指令,非常简单,您只需做以下三步就可以享受卅档的感觉了:1)搞个摇杆,2)运行此程序,3)游戏里稍微设置一下
无需割肉购买昂贵的设备,也不用自己DIY复杂的东西,只需插上摇杆即可^_^

 

档位区(GEZ)

关于GEZ

在摇杆变卅档2中,当摇杆光标进入某个GEZ时,按下一个虚拟按键
当“按住不放”模式启用时,该按键一直被按下,直到光标移出GEZ
你也可以调整GEZ的位置和大小

中央/空档区 (C/NZ)

摇杆变卅档的主要特性就是在挂入下个档位之前,摇杆的Y轴必须回中一下。如果杆子不回中,诸如直接从1档挂3档,或者6档挂4档的切换是做不出的。这也是我不使用Xpadder而着手写了摇杆变卅档这个程序的原因
你不必在C/NZ区等待一段时间后再挂入新的档位,通常你只需把C/NZ画成穿越整个摇杆移动范围的水平线即可,当你换档动作正确的话,摇杆光标一般都会经过C/NZ,下一档位便会生效。但若你给摇杆增加了卅槽的话,建议根据实际情况定义一下C/NZ
若“空档”选项构上的话,摇杆光标进入C/NZ时程序会向系统发送一个虚拟按键。该键或许按住不放,或许按一下即释放,这个就由相应的选项来控制了
和别的GEZ一样,C/NZ也可移动或重绘,但是强烈建议别把CN/Z画的太大,否则的话可能会挂不上新的档位!详情请参见“已知漏洞”

倒档和第7档

构上“倒档”选项,激活倒档功能
如果你没有动手给摇杆加个诸如卅槽一样的装置,限制了杆子移动路径的话,并不建议启用倒档。
你也可以把倒档当作第7档来用,只要调整该GEZ并在“key.cfg”里把按键修改为和游戏里一致即可

修改GEZ

点击“修改GEZ”来启动修改模式,然后:
-要移动GEZ,把摇杆光标移到该GEZ内,然后按住摇杆上的1号键拖动
-要调整GEZ大小,首先在“重设GEZ”里选中要调整的档位,然后点击“重画”按钮,该GEZ会缩小至20x20/65536x65536的一个点,然后你可以按住摇杆2号键来重新绘制GEZ
总结:1)直接拖动;2)点击按钮使其缩至一小点,然后重绘
注:修改完后务必关闭“调整GEZ”。在修改模式中,程序不会向系统发送虚拟按键!

 

摇杆

概述

摇杆变卅档2可以用任何摇杆,MIDI或者USB接口的,力反馈或没有力反馈的,只要Windows能识别到,则程序也可识别

设备ID

设备ID是连接电脑的游戏设备(方向盘,摇杆,手柄等)的识别符。由系统定义,哪个设备其ID是多少通常你是不知道的
虽然你不知道你要用的摇杆的设备ID,不过你可以手动找一下,只要在“设备ID”文本框里试着输入不同的数字即可。从零开始试,如果输入的数字正好是你摇杆的设备ID,拨一下摇杆,旁边的光标应该会随着杆子的动作而移动

普通(自动回中)/力反馈摇杆

若你使用的是普通摇杆,当手松开后杆子会自动回中,则构上“普通摇杆?(自动回中)”选项
在“按后释放”模式中,其实没区别。但在“按住不放”模式(也是LFS、TDU等只能用的模式)中就不同了
若你用的不是力反馈摇杆,或者你没有把杆子拆开拿掉回中弹簧的话,勾上此选项吧
若你用的是力反馈摇杆,不要插上摇杆电源,并且让这个选项空着就行了

按键输入

概述

摇杆变卅档2的目的是向Windows发送一个按键动作,游戏从Windows收到按键后作出反应并实现换档。所以你要关心的就是发送的是哪个按键,和不同的发送方式

关于按键Code

摇杆变卅档2载入两种键盘码,Scan Code 和 Virtual Code
大多数的DirectX游戏对Scan Code有反应,而LFS对Virtual Code有反应
每一个code代表一个按键,你可以通过修改“key.cfg”来改变虚拟按键
有关code详情,请参阅Scan Code / Virtual Code
注:DirectX游戏用的键和LFS所用的不一样,修改时请注意对应的选段

按住不放/按后释放模式

按一个键包括两个动作:按下与释放
像GTR2这样的游戏(*** "holding key for gear"这个选项没点亮时),只需敲击一下某个键之后就可以一直保持在某个档位了,不过像LFS、TDU这样的游戏,你必须一直按着那个键才能保持该档位,如果松开了就跳到空档了,在这种情况下就需要“按住不放”模式

 

文件

配置文件

配置文件的后缀为“.cfg”,你可以用记事本打开它并修改
摇杆变卅档2会载入“default.cfg”作为启动时的默认配置
如果没有“default.cfg”这个文件,程序会载入内部的默认设定值,同时也会在程序目录下创建一个“default.cfg”文件

按键输入

你可以打开key.cfg并修改按键code
以下两表列出了Scan Code与Virtual Code的详细信息
Scan Code 表
Virtual Code 表

 

其他

暂停

如果你想暂时处理别的事情而不关程序也不拔摇杆,那么你可以按下“暂停”来防止不小心碰到摇杆而发送了虚拟按键

 

新特性

——自定义“档位区”(GEZ)
现在您可以任意定义输入某个档位的影响区域
GEZ的位置,甚至GEZ的大小
有了这项特性后,同时也实现了以下特性的支持

——支持自制“卅槽”
如果您动手做了个卅型槽来增加换档时的真实感,或许在以前的版本(摇杆变卅档v0.1&v0.2)中无法实现
因为以前版本中程序只检测摇杆轴在最顶端/底端的情况,所以如果用卅槽限制摇杆轨迹的话就不能用了
现在您可以自己来定义每个GEZ,所以不论摇杆在什么位置,都可以向系统输入虚拟按键了
如果您做了个卅槽,同时也实现了以下特性的支持

——支持倒档/第7档
摇杆变卅档2现在可支持倒档,这个选项开启后,当摇杆光标移入倒档区时程序会向系统发送一个虚拟按键
你也可以把倒档当作第7档来用
同时,还支持以下特性

——支持空档
有些游戏里,只要某个档位的按键被释放,就进入了空档(比如LFS、TDU);而有些游戏中要按下/住某个键才是空档。摇杆变卅档2现在可以在空档的时候发送虚拟按键

——自定义虚拟按键
在摇杆变卅档v0.1&v0.2里,1、2、3…档对应着键9、8、7…而且这些按键不能改变,在此造成的一些不便我表示抱歉,现在摇杆变卅档2中每个档位,所有的键都可以自定义

——配置文件
以上所有新特性的各个选项都可以保存为一个配置文件。你可以为不同的需要保存不同的配置文件,还可以设置摇杆变卅档2启动时的默认配置文件

——真实的换档动作
在挂入下一个档位之前,你必须把摇杆在Y轴方向往中间拨一下。如果你想直接把摇杆从顶部中间拨向左上角来完成3档到1档的换档动作,将不会有任何效果,只有以下正确的真实动作才会使程序有反映:从顶部拨到中间,从中间拨到左边,再从左边拨到左上角


Keyboard Scancodes

The folllowing texts are copied from http://www.win.tue.nl/. Thanks to Jonathan who helped me alot about the scan code knowledge and thus Joystick To H-shifter 2 will work on normal DirectX games.
以下内容摘自http://www.win.tue.nl/。在此要感谢Jonathan的帮助,告诉了有关scan code的知识,也因此摇杆变卅档2能在普通DirectX游戏中使用了

 

I'm here showing a few scan code, for more information, please visit the page here.
在此我仅列出一部分scan code,欲知更多详情,这边请

 

How to use for Joysitck To H-shifter 2

Please refer to the same topic of Virtual Code

 

如何使用

请参加Virtual Code中的方法

IMPORTANT NOTE: The code value is in hex here but it's not marked with "&H", to use it for Joystick To H-shifter 2, you should add "&H" before the number, otherwise the program will recognize the value in decimal!
注意:下表所列的值为十六进制,但是并没有“&H”的前缀,你必须在数字前面加上“&H”,否则摇杆变卅档2会把该数字当作十进制

1.4 Ordinary scancodes

The scancodes in translated scancode set 2 are given in hex. Between parentheses the keycap on a US keyboard. The scancodes are given in order, grouped according to groups of keys that are usually found next to each other.

00 is normally an error code

01 (Esc)

02 (1!), 03 (2@), 04 (3#), 05 (4$), 06 (5%E), 07 (6^), 08 (7&), 09 (8*), 0a (9(), 0b (0)), 0c (-_), 0d (=+), 0e (Backspace)

0f (Tab), 10 (Q), 11 (W), 12 (E), 13 (R), 14 (T), 15 (Y), 16 (U), 17 (I), 18 (O), 19 (P), 1a ([{), 1b (]})

1c (Enter)

1d (LCtrl)

1e (A), 1f (S), 20 (D), 21 (F), 22 (G), 23 (H), 24 (J), 25 (K), 26 (L), 27 (;:), 28 ('")

29 (`~)

2a (LShift)

2b (\|), on a 102-key keyboard

2c (Z), 2d (X), 2e (C), 2f (V), 30 (B), 31 (N), 32 (M), 33 (,<), 34 (.>), 35 (/?), 36 (RShift)

37 (Keypad-*) or (*/PrtScn) on a 83/84-key keyboard

38 (LAlt), 39 (Space bar),

3a (CapsLock)

3b (F1), 3c (F2), 3d (F3), 3e (F4), 3f (F5), 40 (F6), 41 (F7), 42 (F8), 43 (F9), 44 (F10)

45 (NumLock)

46 (ScrollLock)

47 (Keypad-7/Home), 48 (Keypad-8/Up), 49 (Keypad-9/PgUp)

4a (Keypad--)

4b (Keypad-4/Left), 4c (Keypad-5), 4d (Keypad-6/Right), 4e (Keypad-+)

4f (Keypad-1/End), 50 (Keypad-2/Down), 51 (Keypad-3/PgDn)

52 (Keypad-0/Ins), 53 (Keypad-./Del)

54 (Alt-SysRq) on a 84+ key keyboard

 
 

Virtual-Key Codes

The folllowing texts are copied from a handbook of VB programming, here's the copyright information of the handbook:
以下内容从一本VB编程手册中拷贝而来,下面是该手册的版权信息:

Last Modified: March 2, 2001
This page is copyright ? 2001 Paul Kuliniewicz. Copyright Information Revised October 29, 2000
E-mail: vbapi@vbapi.com Send Encrypted E-Mail
This page is at http://www.vbapi.com/index.html

However, it seems www.vbapi.com is nolonger available, so I'll show you the article of Virtual Codes here
但是,www.vbapi.com这个地址貌似已经不再了,所以我把Virtual Code相关的那部分直接拿来了

 

How to use for Joysitck To H-shifter 2

To use, first find the key want in Virtual Key Codes section, remember the code name and it's defined value in Constant Definitions section. You can then copy the value text into key.cfg for Joystick To H-shifter 2
For example, you want to assign key "A" for the 1st gear in Joystick To H-shifter 2, here's the step:
1) Find the code name of "A", you go here and know it's called "VK_A"
2) Find the value of "VK_A", you know it's "&H41" from here.
3) Open key.cfg by notebook and find the following section:

//Keys for LFS:
//(Using Virtual Code)
LFSG0=&H39 //key 0 (Natural Gear is not used in LFS)
LFSG1=&H39 //key 9
LFSG2=&H38 //key 8
LFSG3=&H37 //key 7
LFSG4=&H36 //key 6
LFSG5=&H35 //key 5
LFSG6=&H30 //key 0
LFSG7=&H37 //key 7

Change LFSG1=&H39 //key 9 to LFSG1=&H41 //key A and save, that's all.

 

如何使用

首先在Virtual Key Codes 一节中找到你想设定的按键的代码名,并在Constant Definitions 一节中找到该值。将其值复制到key.cfg即可
例如,你想在一档的时候让程序输入“A”键,步骤如下:
1,找到“A”的代码名,在这里你看到它是“VK_A”
2,找到“VK_A”的值,在这里你发现它是“&H41”
3,用记事本打开key.cfg,找到这么一段:

//Keys for LFS:
//(Using Virtual Code)
LFSG0=&H39 //key 0 (Natural Gear is not used in LFS)
LFSG1=&H39 //key 9
LFSG2=&H38 //key 8
LFSG3=&H37 //key 7
LFSG4=&H36 //key 6
LFSG5=&H35 //key 5
LFSG6=&H30 //key 0
LFSG7=&H37 //key 7

最后将 LFSG1=&H39 //key 9 这行改为 LFSG1=&H41 //key A 并保存即可


Virtual-Key Codes

Description & Usage

The virtual-key codes identify various virtual keys. Virtual keys mainly consist of actual keyboard keys, but also include "virtual" elements such as the three mouse buttons. The virtual keys also include many "keys" which usually do not exist at all! A key's virtual-key code does not change when modifier keys (Ctrl, Alt, Shift, etc.) are held -- e.g., the 1 key has the same virtual-key code whether 1 or ! is pressed. However, the numbers in the numeric keypad on the keyboard do have two different virtual-key codes: one for when Num Lock is on, and another for when Num Lock is off. Note that the virtual-key codes of 0-9 and A-Z equal their ASCII codes.

Note: The actual meanings of some of the key codes may vary on keyboards designed for different languages. Most notably, the VK_OEM_* that denote punctuation keys may vary between languages, relating to a different punctuation key. The meanings listed below are for a U.S. English-language keyboard.

Virtual Key Codes

VK_LBUTTON
The left mouse button
VK_RBUTTON
The right mouse button
VK_CANCEL
The Cancel virtual key, used for control-break processing
VK_MBUTTON
The middle mouse button
VK_BACK
Backspace
VK_TAB
Tab
VK_CLEAR
5 (keypad without Num Lock)
VK_RETURN
Enter
VK_SHIFT
Shift (either one)
VK_CONTROL
Ctrl (either one)
VK_MENU
Alt (either one)
VK_PAUSE
Pause
VK_CAPITAL
Caps Lock
VK_ESCAPE
Esc
VK_SPACE
Spacebar
VK_PRIOR
Page Up
VK_NEXT
Page Down
VK_END
End
VK_HOME
Home
VK_LEFT
Left Arrow
VK_UP
Up Arrow
VK_RIGHT
Right Arrow
VK_DOWN
Down Arrow
VK_SELECT
Select
VK_PRINT
Print (only used by Nokia keyboards)
VK_EXECUTE
Execute (not used)
VK_SNAPSHOT
Print Screen
VK_INSERT
Insert
VK_DELETE
Delete
VK_HELP
Help
VK_0
0
VK_1
1
VK_2
2
VK_3
3
VK_4
4
VK_5
5
VK_6
6
VK_7
7
VK_8
8
VK_9
9
VK_A
A
VK_B
B
VK_C
C
VK_D
D
VK_E
E
VK_F
F
VK_G
G
VK_H
H
VK_I
I
VK_J
J
VK_K
K
VK_L
L
VK_M
M
VK_N
N
VK_O
O
VK_P
P
VK_Q
Q
VK_R
R
VK_S
S
VK_T
T
VK_U
U
VK_V
V
VK_W
W
VK_X
X
VK_Y
Y
VK_Z
Z
VK_STARTKEY
Start Menu key
VK_CONTEXTKEY
Context Menu key
VK_NUMPAD0
0 (keypad with Num Lock)
VK_NUMPAD1
1 (keypad with Num Lock)
VK_NUMPAD2
2 (keypad with Num Lock)
VK_NUMPAD3
3 (keypad with Num Lock)
VK_NUMPAD4
4 (keypad with Num Lock)
VK_NUMPAD5
5 (keypad with Num Lock)
VK_NUMPAD6
6 (keypad with Num Lock)
VK_NUMPAD7
7 (keypad with Num Lock)
VK_NUMPAD8
8 (keypad with Num Lock)
VK_NUMPAD9
9 (keypad with Num Lock)
VK_MULTIPLY
* (keypad)
VK_ADD
+ (keypad)
VK_SEPARATER
Separator (never generated by the keyboard)
VK_DECIMAL
. (keypad with Num Lock)
VK_DIVIDE
/ (keypad)
VK_F1
F1
VK_F2
F2
VK_F3
F3
VK_F4
F4
VK_F5
F5
VK_F6
F6
VK_F7
F7
VK_F8
F8
VK_F9
F9
VK_F10
F10
VK_F11
F11
VK_F12
F12
VK_F13
F13
VK_F14
F14
VK_F15
F15
VK_F16
F16
VK_F17
F17
VK_F18
F18
VK_F19
F19
VK_F20
F20
VK_F21
F21
VK_F22
F22
VK_F23
F23
VK_F24
F24
VK_NUMLOCK
Num Lock
VK_OEM_SCROLL
Scroll Lock
VK_OEM_1
;
VK_OEM_PLUS
=
VK_OEM_COMMA
,
VK_OEM_MINUS
-
VK_OEM_PERIOD
.
VK_OEM_2
/
VK_OEM_3
`
VK_OEM_4
[
VK_OEM_5
\
VK_OEM_6
]
VK_OEM_7
'
VK_OEM_8
(unknown)
VK_ICO_F17
F17 on Olivetti extended keyboard (internal use only)
VK_ICO_F18
F18 on Olivetti extended keyboard (internal use only)
VK_OEM_102
< or | on IBM-compatible 102 enhanced non-U.S. keyboard
VK_ICO_HELP
Help on Olivetti extended keyboard (internal use only)
VK_ICO_00
00 on Olivetti extended keyboard (internal use only)
VK_ICO_CLEAR
Clear on Olivette extended keyboard (internal use only)
VK_OEM_RESET
Reset (Nokia keyboards only)
VK_OEM_JUMP
Jump (Nokia keyboards only)
VK_OEM_PA1
PA1 (Nokia keyboards only)
VK_OEM_PA2
PA2 (Nokia keyboards only)
VK_OEM_PA3
PA3 (Nokia keyboards only)
VK_OEM_WSCTRL
WSCTRL (Nokia keyboards only)
VK_OEM_CUSEL
CUSEL (Nokia keyboards only)
VK_OEM_ATTN
ATTN (Nokia keyboards only)
VK_OEM_FINNISH
FINNISH (Nokia keyboards only)
VK_OEM_COPY
COPY (Nokia keyboards only)
VK_OEM_AUTO
AUTO (Nokia keyboards only)
VK_OEM_ENLW
ENLW (Nokia keyboards only)
VK_OEM_BACKTAB
BACKTAB (Nokia keyboards only)
VK_ATTN
ATTN
VK_CRSEL
CRSEL
VK_EXSEL
EXSEL
VK_EREOF
EREOF
VK_PLAY
PLAY
VK_ZOOM
ZOOM
VK_NONAME
NONAME
VK_PA1
PA1
VK_OEM_CLEAR
CLEAR

Constant Definitions

Const VK_LBUTTON = &H1
Const VK_RBUTTON = &H2
Const VK_CANCEL = &H3
Const VK_MBUTTON = &H4
Const VK_BACK = &H8
Const VK_TAB = &H9
Const VK_CLEAR = &HC
Const VK_RETURN = &HD
Const VK_SHIFT = &H10
Const VK_CONTROL = &H11
Const VK_MENU = &H12
Const VK_PAUSE = &H13
Const VK_CAPITAL = &H14
Const VK_ESCAPE = &H1B
Const VK_SPACE = &H20
Const VK_PRIOR = &H21
Const VK_NEXT = &H22
Const VK_END = &H23
Const VK_HOME = &H24
Const VK_LEFT = &H25
Const VK_UP = &H26
Const VK_RIGHT = &H27
Const VK_DOWN = &H28
Const VK_SELECT = &H29
Const VK_PRINT = &H2A
Const VK_EXECUTE = &H2B
Const VK_SNAPSHOT = &H2C
Const VK_INSERT = &H2D
Const VK_DELETE = &H2E
Const VK_HELP = &H2F
Const VK_0 = &H30
Const VK_1 = &H31
Const VK_2 = &H32
Const VK_3 = &H33
Const VK_4 = &H34
Const VK_5 = &H35
Const VK_6 = &H36
Const VK_7 = &H37
Const VK_8 = &H38
Const VK_9 = &H39
Const VK_A = &H41
Const VK_B = &H42
Const VK_C = &H43
Const VK_D = &H44
Const VK_E = &H45
Const VK_F = &H46
Const VK_G = &H47
Const VK_H = &H48
Const VK_I = &H49
Const VK_J = &H4A
Const VK_K = &H4B
Const VK_L = &H4C
Const VK_M = &H4D
Const VK_N = &H4E
Const VK_O = &H4F
Const VK_P = &H50
Const VK_Q = &H51
Const VK_R = &H52
Const VK_S = &H53
Const VK_T = &H54
Const VK_U = &H55
Const VK_V = &H56
Const VK_W = &H57
Const VK_X = &H58
Const VK_Y = &H59
Const VK_Z = &H5A
Const VK_STARTKEY = &H5B
Const VK_CONTEXTKEY = &H5D
Const VK_NUMPAD0 = &H60
Const VK_NUMPAD1 = &H61
Const VK_NUMPAD2 = &H62
Const VK_NUMPAD3 = &H63
Const VK_NUMPAD4 = &H64
Const VK_NUMPAD5 = &H65
Const VK_NUMPAD6 = &H66
Const VK_NUMPAD7 = &H67
Const VK_NUMPAD8 = &H68
Const VK_NUMPAD9 = &H69
Const VK_MULTIPLY = &H6A
Const VK_ADD = &H6B
Const VK_SEPARATOR = &H6C
Const VK_SUBTRACT = &H6D
Const VK_DECIMAL = &H6E
Const VK_DIVIDE = &H6F
Const VK_F1 = &H70
Const VK_F2 = &H71
Const VK_F3 = &H72
Const VK_F4 = &H73
Const VK_F5 = &H74
Const VK_F6 = &H75
Const VK_F7 = &H76
Const VK_F8 = &H77
Const VK_F9 = &H78
Const VK_F10 = &H79
Const VK_F11 = &H7A
Const VK_F12 = &H7B
Const VK_F13 = &H7C
Const VK_F14 = &H7D
Const VK_F15 = &H7E
Const VK_F16 = &H7F
Const VK_F17 = &H80
Const VK_F18 = &H81
Const VK_F19 = &H82
Const VK_F20 = &H83
Const VK_F21 = &H84
Const VK_F22 = &H85
Const VK_F23 = &H86
Const VK_F24 = &H87
Const VK_NUMLOCK = &H90
Const VK_OEM_SCROLL = &H91
Const VK_OEM_1 = &HBA
Const VK_OEM_PLUS = &HBB
Const VK_OEM_COMMA = &HBC
Const VK_OEM_MINUS = &HBD
Const VK_OEM_PERIOD = &HBE
Const VK_OEM_2 = &HBF
Const VK_OEM_3 = &HC0
Const VK_OEM_4 = &HDB
Const VK_OEM_5 = &HDC
Const VK_OEM_6 = &HDD
Const VK_OEM_7 = &HDE
Const VK_OEM_8 = &HDF
Const VK_ICO_F17 = &HE0
Const VK_ICO_F18 = &HE1
Const VK_OEM102 = &HE2
Const VK_ICO_HELP = &HE3
Const VK_ICO_00 = &HE4
Const VK_ICO_CLEAR = &HE6
Const VK_OEM_RESET = &HE9
Const VK_OEM_JUMP = &HEA
Const VK_OEM_PA1 = &HEB
Const VK_OEM_PA2 = &HEC
Const VK_OEM_PA3 = &HED
Const VK_OEM_WSCTRL = &HEE
Const VK_OEM_CUSEL = &HEF
Const VK_OEM_ATTN = &HF0
Const VK_OEM_FINNISH = &HF1
Const VK_OEM_COPY = &HF2
Const VK_OEM_AUTO = &HF3
Const VK_OEM_ENLW = &HF4
Const VK_OEM_BACKTAB = &HF5
Const VK_ATTN = &HF6
Const VK_CRSEL = &HF7
Const VK_EXSEL = &HF8
Const VK_EREOF = &HF9
Const VK_PLAY = &HFA
Const VK_ZOOM = &HFB
Const VK_NONAME = &HFC
Const VK_PA1 = &HFD
Const VK_OEM_CLEAR = &HFEUsed By

GetAsyncKeyState, GetKeyboardState,GetKeyState, keybd_event, KEYBDINPUT, SetKeyboardState

Go back to the Other Information listing.
Go back to the Reference section index.


Last Modified: September 6, 1999
This page is copyright © 1999 Paul Kuliniewicz. Copyright Information Revised October 29, 2000
Go back to the Windows API Guide home page.
E-mail: vbapi@vbapi.comSend Encrypted E-Mail
This page is at http://www.vbapi.com/ref/other/virtualkeycodes.html

 
 

 

About

 

Copyright and Distribution

This program is released as Freeware. Copyright @ Kane Xu. As freeware you are permitted to distribute this archive subject to the following conditions,

- The archive must be distributed without modification to the contents of the archive. Redistributing this archive with any files added, removed or modified is prohibited.
- The inclusion of any individual file from this archive in another archive without the prior permission of the author is prohibited.
- This program may be used only for private use. Any commercial use is forbidden.
- Publication for commercial Freeware or Shareware collections is forbidden without the express permission of the author. The same applies for its distribution on the Internet for fees.
- The authors' rights and wishes concerning this archive must be respected.

Briefly: This program must not be used for commercial benefit.

PLEASE BE NOTED
Using this program at your own risk. I DO NOT take responsibility for any problems or damages to your system which may occur after the using of this program.

 

Special Thanks

Special thanks to Jonathan,the creator, designer and programmer of Xpadder, to help me with my program!
Also, thanks to Youtube.com and YOU Youtubers, the power of continue writing Joystick To H-shiter 2 all comes from your supports!!!

 

Demo Videos

Joystick To H-shifter
Joystick To H-shifter 2 DEMO version
Joystick To H-shifter 2

If any problem met, or nice ideas, or anything else, just feel free to mail me
shikai.xu@hotmail.com

Kane Xu
2008.12

 

 

关于

版权声名

本软件为免费软件,版权为徐时开所有,作为免费软件,在满足以下条件时您可以传播:

- 本软件包只能在不被任何修改的情况下传播。添加、修改压缩包的任何部分后的再传播行为将被禁止。
- 在未经版权人批准的情况下,将本软件包的如何部分与其他免费软件一同发布的行为将被禁止。
- 本软件包只用于个人娱乐,不等用于任何直接或间接的商业盈利用途。如:发行、收费下载、商业展示、会议、竞赛等。
- 在未经版权人批准的情况下,如果您在商业软件中完整或部分使用本软件包将严格禁止。
- 希望您尊重作者的版权和理想!

一句话:本软件包不用于商业盈利活动。

您自己承担使用本软件包所带来的风险。我们不对安装/使用本软件包所导致的您硬件/软件后可能产生的问题/损害承担如何责任!

 

特别感谢

在此,我要特别感谢Xpadderr的创始人兼设计者兼程序员的Jonathan,摇杆变卅档的问世,少不了他的热心帮助!
同样要感谢Youtube.com和广大网友(其实大多是老外)的支持,编写摇杆变卅档2 的巨大动力来自于你们的大力支持!!!

 

演示视频

摇杆变卅档
摇杆变卅档2演示版
摇杆变卅档2

若有任何问题或建议,欢迎来信
shikai.xu@hotmail.com

徐时开
2008.12

 


Hope you'll have fun with Joystick To H-shifter 2 and feel free to share it with your friends, publish it on your sites
祝您玩的愉快,欢迎将摇杆变卅档2和你的朋友一起分享,并上传至你的网站上