Windows SDK for X-keys
This Software Development Kit (SDK) supports all X-keys devices we are currently shipping and offers code examples for Visual Studio C# 2008 Express, Visual Studio C++ 2005 and Visual Studio VB 2010 for Windows; Eclipse for Android.
Note: The information on this page is for Windows-based developers writing applications for Windows or Android operating systems. Options for other developers can be found on the menu to the left.
Technical Note
Users of the .NET Express versions; C# Express and Visual Basic Express. These versions no longer have the Platform Target selection in the project properties. It is necessary to use a platform target of x86 when using PIEHidDotNet.dll or PIEHid32Net.dll. To do this, open the project's .csproj file (C#) or the .vbproj file (VB) in any text editor and add the line:
<PlatformTarget>x86</PlatformTarget>
.Net Component
The Windows SDK includes two different ways of communicating with the X-keys on Windows systems:
More Code Samples
Though the samples in our standard SDK above fit a wide variety of developers' needs, occasionally we've had cause to write special samples. These odd ducks do not fit in with the other samples in our SDK, but you can find them here. If you don't find what you're looking for, please contact us.
Large Key Samples
IDE: Microsoft Visual C# Express 2008, Microsoft Visual C# 2010
Product: XK-24
Description: Demonstrates how to read incoming data if using large key caps; tall, wide and quad.
Download: LargeKeyDemoCsharpExpress.zip (60Kb) or if using .NET component
Large Key Component Sample.zip (249Kb)
Device Notification C++ 2003
IDE: Microsoft Visual Studio 2003 C++ .NET
Product: XK-24
Description: Detects the removal and arrival of any usb hid device. Uses RegisterForDeviceNotification call.
Download: DeviceNotification CPlusPlus 2003.zip (897Kb)
Device Notification C# Express
IDE: Microsoft Visual C# Express 2008, Windows Form Application
Product: any P.I. Engineering device
Description: Detects the removal and arrival of any USB hid device with P.I. Engineering devices specifically noted. Uses RegisterForDeviceNotification call.
Download: Device Notification CSharp Express.zip (20Kb)
Multi-Unit C# Express
IDE: Microsoft Visual C# Express 2008, Windows Form Application
Product: any P.I. Engineering product
Description: Use of the PIEHidDotNet.dll .NET class library to communicate with X-keys devices. Demonstrates reading of two or more simultaneously connected P.I. Engineering products.
Download: Multi-Unit CSharpExpress.zip (62Kb)
WpfApplication
IDE: Microsoft Visual C# Express 2008, WPF Application
Product: X-keys Pro MWII
Description: Use of the PIEHidDotNet.dll .NET class library to communicate with X-keys devices.
Download: WpfApplication1.zip (132Kb)
Keyboard Reflector C# Express
IDE: Microsoft Visual C# Express 2008, WPF Application
Product: XK-24, applicable only to Pi3 devices
Description: Demonstrates more extensively the use of keyboard reflector commands.
Download: Keyboard Reflector CSharp Express.zip (169Kb)
Polling C# Express
IDE: Microsoft Visual C# Express 2008, Windows Form Application
Product: X-keys Stick MWII
Description: Use of the PIEHidDotNet.dll .NET class library to communicate with X-keys devices. Demonstrate 2 ways of reading data; with the callback and with a polling timer.
Download: Polling CSharp Express.zip (66Kb)
Legacy SDKs
In most cases, software developers should use our latest SDK since it supports all devices we are currently offering and works on the most current operating systems. These legacy SDKs offer support for older firmware versions of our X-keys.
Please note: MWII and SE SDKs support devices which have been replaced with newer firmware and have different Product IDs and different SPLAT messages. We encourage you to develop for the latest firmware with the SDK on the first tab.
P.I. Part # |
Description |
SDK Download |
Discontinued Products SDK |
PIEngineeringLegacySDK.exe (2.19 MB) Updated 10/05/2012 |
|
XKS-79-USB |
X-keys SE Stick (16 keys) |
XKStickDevKit.zip (2.3 MB) Updated 7/26/2004 |
XD-03-USB |
X-keys SE Desktop (20 keys) |
XKDesktopDevKit.zip (2.3 MB) Updated 7/26/2004 |
XP-05-USB |
X-keys SE Professional (20 keys) |
XKProfessionalDevKit.zip (2.3 MB) Updated 7/26/2004 |
XPS-08-US |
X-keys SE Jog & Shuttle (46 keys with Jog & Shuttle knob) |
XKEditorDevKit.zip (2.3 MB) Updated 7/26/2004 |
XK-184-BP |
X-keys SE Button Panel |
XK184BPDevKit.zip (2.1 MB) Updated 7/27/2004 |
XKI-38-US |
X-keys SE Switch Interface (12 switch ports) |
XKSwitchInterfaceDevKit.zip (2.3 MB) Updated 7/26/2004 |
PIEHID Dynamic Load Samples* |
PIEHIDDynamicLoad.zip (1.1 MB) Updated 7/27/2004 |
IMPORTANT NOTE: In order to communicate with our SDK applications, your X–keys USB device must be in Software mode. Our SPLAT Converter Utility (Windows only) will check an X–keys device and set the mode. SplatConverter.exe may also be found on your X–keys SE installation CD in the “\utilities\Memory Resident Mode” directory.
* PIHID Dynamic Load Samples are to be used in conjunction with the individual product SDKs above. They demonstrate how to dynamically load PIEHID.dll, which is necessary to communicate with P.I. Engineering X–keys, RailDriver, and ReDAC devices. Dynamically loading the dll offers an opportunity for the application to do checks for required software or operating systems needed for the application to function correctly. More information is found in the help file.
Notes from the ReadMe file for Legacy SDKs:
The Visual Basic samples were written using Microsoft Visual Basic v6.0 and Microsoft Visual Studio 7.0. Therefore, you must have one of these environments installed in order to open the project. The .exe will run regardless.
The C++ Builder samples were written using Borland C++ Builder 6.0. Therefore, you must have Borland C++ Builder v6 or higher installed in order to open the project. The .exe will run regardless
The Visual C++ sample was written using Microsoft Visual C++ v6.0 and Microsoft Visual Studio 7.0. Therefore, you must have one of these environments installed in order to open the project. The .exe will run regardless.