Open App Button

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
Spackle42
Posts: 8
Joined: Thu Jun 27, 2013 5:10 pm

Open App Button

Post by Spackle42 »

When I first got my SpacePilot Pro, I set my buttons to open various common applications from the desktop (Inventor, Excel etc). I've updated to 10.1.0 drivers and have lost this option. Can this still be readily set?
jwick
Moderator
Moderator
Posts: 3340
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Open App Button

Post by jwick »

Yes, but you get no help from the GUI. You need to edit the XML files manually to add a ButtonAction that will launch an executable.

This example shows a notepad Cfg that defines a ButtonAction that launches notepad.exe. The ButtonAction is assigned to the SpaceNavigator's right button.

You can make as many of these ButtonActions as you wish. If the app is not in your path, you probably need to specify the entire path.

Save this as notepad.xml in your ProgramFiles.....3DxWinCore/Cfg directory.

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
(c) Copyright 3Dconnexion. All rights reserved. 
$Revision: 10407 $
-->
<AppCfg Default="true" xmlns="" CfgFormatVersion="1.1" ThisFileVersion="1.0">
	<AppInfo>
		<Name>STR_NOTEPAD</Name>
		<VersionRange>
			<Min>1.0</Min>
			<Max>1.0</Max>
		</VersionRange>
		<ExecutableName>NOTEPAD.EXE</ExecutableName>
		<ApplicationIcon>3Dx.ico</ApplicationIcon>
		<Transport>KMJ</Transport>
	</AppInfo>
	<Settings>
		<ResponseCurve>1.00</ResponseCurve>
	</Settings>
	<AxisActions>
		<AxisAction Type="App">
			<ID>HIDMultiAxis_X</ID>
			<!-- positive left to right (Pan L/R) -->
			<Name>STR_PAN_LEFT_RIGHT</Name>
		</AxisAction>
		<AxisAction Type="App">
			<ID>HIDMultiAxis_Y</ID>
			<!-- positive far to near (Zoom In/Out) -->
			<Name>STR_ZOOM_IN_OUT</Name>
		</AxisAction>
		<AxisAction Type="App">
			<ID>HIDMultiAxis_Z</ID>
			<!-- positive high to low (Pan Up/Down) -->
			<Name>STR_PAN_UP_DOWN</Name>
		</AxisAction>
		<AxisAction Type="App">
			<ID>HIDMultiAxis_Rx</ID>
			<!-- positive RH rule around X Axis (Tilt) -->
			<Name>STR_TILT</Name>
		</AxisAction>
		<AxisAction Type="App">
			<ID>HIDMultiAxis_Ry</ID>
			<!-- positive RH rule around Y (zoom in/out) Axis (Roll) -->
			<Name>STR_ROLL</Name>
		</AxisAction>
		<AxisAction Type="App">
			<ID>HIDMultiAxis_Rz</ID>
			<!-- positive RH rule around Z (vertical) Axis (Spin) -->
			<Name>STR_SPIN</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_X</ID>
			<Name>STR_JOYSTICK_X</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Y</ID>
			<Name>STR_JOYSTICK_Y</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Z</ID>
			<Name>STR_JOYSTICK_Z</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Rx</ID>
			<Name>STR_JOYSTICK_RX</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Ry</ID>
			<Name>STR_JOYSTICK_RY</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Rz</ID>
			<Name>STR_JOYSTICK_RZ</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Throttle</ID>
			<Name>STR_JOYSTICK_THROTTLE</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Hat_NS</ID>
			<Name>STR_JOYSTICK_HAT_NS</Name>
		</AxisAction>
		<AxisAction Type="Joystick">
			<ID>HIDJoystick_Hat_EW</ID>
			<Name>STR_JOYSTICK_HAT_EW</Name>
		</AxisAction>
		<AxisAction Type="Mouse">
			<ID>HIDMouse_X</ID>
			<Name>STR_MOUSE_X</Name>
		</AxisAction>
		<AxisAction Type="Mouse">
			<ID>HIDMouse_Y</ID>
			<Name>STR_MOUSE_Y</Name>
		</AxisAction>
		<AxisAction Type="Mouse">
			<ID>HIDMouse_Wheel</ID>
			<Name>STR_MOUSE_WHEEL</Name>
		</AxisAction>
		<AxisAction Type="Keyboard">
			<ID>KB_Keystroke</ID>
			<Name>STR_KEYSTROKE</Name>
		</AxisAction>
		<AxisAction Type="DLL">
			<ID>Dll_Call_Sample_Axis</ID>
			<Name>STR_CALL_SAMPLE_DLL</Name>
			<Executable>3DxSample.DLL</Executable>
			<Function>ShowAxis</Function>
			<Arg>HIDID</Arg>
		</AxisAction>
	</AxisActions>
	<ButtonActions>
		<!-- App Handled Actions -->
		<ButtonAction Type="App">
			<ID>App_ResetYourView</ID>
			<Name>STR_APP_RESETYOURVIEW</Name>
		</ButtonAction>
		<!-- Internal Handled Actions -->
		<ButtonAction Type="Driver">
			<ID>Driver_ShowDriverGUI</ID>
			<Name>STR_DRIVER_SHOWDRIVERGUI</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_ShowDriverPopupMenu</ID>
			<Name>STR_DRIVER_SHOWDRIVERPOPUPMENU</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_ToggleTranslations</ID>
			<Name>STR_DRIVER_TOGGLETRANSLATIONS</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_ToggleRotations</ID>
			<Name>STR_DRIVER_TOGGLEROTATIONS</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_ToggleDominantFilter</ID>
			<Name>STR_DRIVER_TOGGLEDOMINANTFILTER</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_TogglePanOnly</ID>
			<Name>STR_DRIVER_TOGGLEPANONLY</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_ToggleZoomOnly</ID>
			<Name>STR_DRIVER_TOGGLEZOOMONLY</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_DecreaseAppScale</ID>
			<Name>STR_DRIVER_DECREASEAPPSCALE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_IncreaseAppScale</ID>
			<Name>STR_DRIVER_INCREASEAPPSCALE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_ResetAppScale</ID>
			<Name>STR_DRIVER_RESETAPPSCALE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_RezeroDevice</ID>
			<Name>STR_DRIVER_REZERODEVICE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver">
			<ID>Driver_Mouse_MiddleButton</ID>
			<Name>STR_DRIVER_MOUSE_MIDDLE_BUTTON</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_Start_Search</ID>
			<Name>STR_DRIVER_START_SEARCH</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_Start_Mail</ID>
			<Name>STR_DRIVER_START_MAIL</Name>
		</ButtonAction>
		<ButtonAction Type="DriDriver_Otherver">
			<ID>Driver_Start_Browser</ID>
			<Name>STR_DRIVER_START_BROWSER</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_Start_Skype</ID>
			<Name>STR_DRIVER_START_SKYPE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_Start_MediaPlayer</ID>
			<Name>STR_DRIVER_START_MEDIAPLAYER</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_MediaPlayer_Mute</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_MUTE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_MediaPlayer_DecreaseVolume</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_DECREASEVOLUME</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_MediaPlayer_IncreaseVolume</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_INCREASEVOLUME</Name>
		</ButtonAction>
		<ButtonAction Type="DrDriver_Otheriver">
			<ID>Driver_MediaPlayer_PreviousTrack</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_PREVIOUSTRACK</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_MediaPlayer_Play</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_PLAY</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_MediaPlayer_Pause</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_PAUSE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_MediaPlayer_NextTrack</ID>
			<Name>STR_DRIVER_MEDIAPLAYER_NEXTTRACK</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_Browser_PreviousPage</ID>
			<Name>STR_DRIVER_BROWSER_PREVIOUSPAGE</Name>
		</ButtonAction>
		<ButtonAction Type="Driver_Other">
			<ID>Driver_Browser_NextPage</ID>
			<Name>STR_DRIVER_BROWSER_NEXTPAGE</Name>
		</ButtonAction>
		<ButtonAction Type="Keyboard">
			<ID>KB_PageUp</ID>
			<Name>STR_KB_PAGEUP</Name>
		</ButtonAction>
		<ButtonAction Type="Keyboard">
			<ID>KB_PageDown</ID>
			<Name>STR_KB_PAGEDOWN</Name>
		</ButtonAction>
		<ButtonAction Type="DLL">
			<ID>Dll_Call_Sample_Button</ID>
			<Name>STR_CALL_SAMPLE_DLL</Name>
			<Executable>3DxSample.DLL</Executable>
			<Function>ShowButton</Function>
			<Arg>HIDID</Arg>
		</ButtonAction>
		<ButtonAction Type="Exe">
			<ID>EXE_Start_Notepad</ID>
			<Name>STR_START_NOTEPAD</Name>
			<Executable>NOTEPAD.EXE</Executable>
			<Arg>None</Arg>
		</ButtonAction>
	</ButtonActions>
	<Devices>
		<Device>
			<Name>SpaceNavigator</Name>
			<VendorID>46d</VendorID>
			<ProductID>c626</ProductID>
			<AxisFilter>None</AxisFilter>
			<CurrentButtonBank>Default</CurrentButtonBank>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Rz</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
				</Input>
				<Output>
					<ActionID>Dll_Call_Sample_Axis</ActionID>
				</Output>
			</Axis>
			<ButtonBank Default="true">
				<Name>STR_DEFAULT_BUTTONBANK</Name>
				<ID>Default</ID>
				<Button>
					<Input>
						<ActionID>HIDButton_1</ActionID>
					</Input>
					<Output>
						<ActionID>Dll_Call_Sample_Button</ActionID>
					</Output>
				</Button>
				<Button>
					<Input>
						<ActionID>HIDButton_2</ActionID>
					</Input>
					<Output>
						<ActionID>Exe_Start_Notepad</ActionID>
					</Output>
				</Button>
			</ButtonBank>
		</Device>
		<Device>
			<Name>SpaceMouse Wireless</Name>
			<VendorID>256f</VendorID>
			<ProductID>c62e</ProductID>
			<AxisFilter>None</AxisFilter>
			<CurrentButtonBank>Default</CurrentButtonBank>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Rz</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
				</Input>
				<Output>
					<ActionID>Dll_Call_Sample_Axis</ActionID>
				</Output>
			</Axis>
			<ButtonBank Default="true">
				<Name>STR_DEFAULT_BUTTONBANK</Name>
				<ID>Default</ID>
				<Button>
					<Input>
						<ActionID>HIDButton_1</ActionID>
					</Input>
					<Output>
						<ActionID>Dll_Call_Sample_Button</ActionID>
					</Output>
				</Button>
				<Button>
					<Input>
						<ActionID>HIDButton_2</ActionID>
					</Input>
					<Output>
						<ActionID>Exe_Start_Notepad</ActionID>
					</Output>
				</Button>
			</ButtonBank>
		</Device>
	</Devices>
</AppCfg>
Spackle42
Posts: 8
Joined: Thu Jun 27, 2013 5:10 pm

Re: Open App Button

Post by Spackle42 »

It might just be me, but this seems like a step backward. I'll be honest, I'm not sure that I'd purchase one of these units again, not because of the quality of the unit itself, but because of the included 'software' and overall lack of user consideration. There really is no excuse for this sort of thing anymore. There are numerous gaming peripherals are available, all with the ability to be completely configured to the user's liking straight out of the box without having to resort to online forums, just to set the unit up. (ESPECIALLY when they are trying to restore previous functionality that was gutted by the latest software update...) Just needed to vent about this.
jwick
Moderator
Moderator
Posts: 3340
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Open App Button

Post by jwick »

What driver were you using before? 3DxSoftware 3.x?
I thought I made it incredibly difficult to assign buttons to launch apps in that driver. You had to edit the registry.
Only early betas of the 3DxWare 10 made it extremely easy to add executables to buttons.
Hopefully someone will add these features back into the GUI someday.
Post Reply