Need help writing an XML file for an unsupported app - just need to send up/down/left/right arrow keys

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
velo
Posts: 2
Joined: Thu Dec 06, 2018 4:47 pm

Need help writing an XML file for an unsupported app - just need to send up/down/left/right arrow keys

Post by velo »

I am a huge SpaceMouse fan and for the longest time I have been wanting to write an XML file so that I can use my beloved mouse to pan my drawings in my markup application Brava Desktop. I tried to clone existing XML files, change the executable to read BravaDesktop.exe, stop and start the driver, but I can never get the mouse to work in the application. I have even tried the keyboard template XML, but it doesn't work. I only want to send the up/down/left/right arrow buttons by using the tilt functions. Can someone give me a hand? I'll be so thankful :oops:
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Need help writing an XML file for an unsupported app - just need to send up/down/left/right arrow keys

Post by jwick »

Try this file.
Try it with notepad.exe first, then change the <ExecutableName> to BravoDesktop.exe if that is the name of the app.
Save this into <3DxWinCore>/cfg/BravoDesktop.xml.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!--
(c) Copyright 3Dconnexion. All rights reserved. 
$Revision: 14618 $
-->
<AppCfg Default="true" xmlns="" CfgFormatVersion="1.2" ThisFileVersion="1.5">
  <AppInfo>
    <Signature>
      <Name>Bravo Desktop</Name>
      <ExecutableName>notepad.exe</ExecutableName>
      <Transport>KMJ</Transport>
    </Signature>
  </AppInfo>
  <AuthorInfo>
    <DriverVersion>17.5.5</DriverVersion>
    <Created>
      <Tool>3DxService.exe</Tool>
      <Version>17.5.5</Version>
      <Date>2017:11:2:28:10:58:11:745</Date>
      <User>3DxCfgAdmin</User>
    </Created>
  </AuthorInfo>
  <Devices>
    <Device>
      <Name>Standard 3D Mouse</Name>
      <VendorID>0</VendorID>
      <ProductID>0</ProductID>
      <AxisFilter>None</AxisFilter>
      <CurrentButtonBank>Default</CurrentButtonBank>
      <CurrentAxisBank>Default</CurrentAxisBank>
      <AxisBank Default="true">
        <Name>STR_DEFAULT_BANK</Name>
        <ID>Default</ID>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Ry</ActionID>
            <Min>0</Min>
            <Max>511</Max>
            <Deadband>100</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>50</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Ry</ActionID>
            <Min>-512</Min>
            <Max>0</Max>
            <Deadband>100</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>4F</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rx</ActionID>
            <Min>0</Min>
            <Max>511</Max>
            <Deadband>100</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>51</Key>
            </KeyStroke>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rx</ActionID>
            <Min>-512</Min>
            <Max>0</Max>
            <Deadband>100</Deadband>
          </Input>
          <Output>
            <ActionID>KB_Keystroke</ActionID>
            <RepeatStyle>PressAndHold</RepeatStyle>
            <KeyStroke>
              <Key>52</Key>
            </KeyStroke>
          </Output>
        </Axis>
      </AxisBank>
      <ButtonBank Default="true">
        <Name>STR_DEFAULT_BUTTONBANK</Name>
        <ID>Default</ID>
        <Button>
          <Input>
            <ActionID>V3DK_MENU</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverGUI</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_FIT</ActionID>
          </Input>
          <Output>
            <ActionID>KB_Home</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_TOP</ActionID>
          </Input>
          <Output>
            <ActionID>KB_UpArrow</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_LEFT</ActionID>
          </Input>
          <Output>
            <ActionID>KB_LeftArrow</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_RIGHT</ActionID>
          </Input>
          <Output>
            <ActionID>KB_RightArrow</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_FRONT</ActionID>
          </Input>
          <Output>
            <ActionID>KB_DownArrow</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_BOTTOM</ActionID>
          </Input>
          <Output>
            <ActionID>KB_PageUp</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_BACK</ActionID>
          </Input>
          <Output>
            <ActionID>KB_PageDown</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_ROLL_CW</ActionID>
          </Input>
          <Output>
            <ActionID>KB_LeftArrow</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_ROLL_CCW</ActionID>
          </Input>
          <Output>
            <ActionID>HIDMouse_Left</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_ISO1</ActionID>
          </Input>
          <Output>
            <ActionID>HIDMouse_Middle</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_ISO2</ActionID>
          </Input>
          <Output>
            <ActionID>HIDMouse_Middle</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_2</ActionID>
          </Input>
          <Output>
            <ActionID>Macro_Paste</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_3</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F3</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_4</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F4</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_5</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F5</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_6</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F6</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_7</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F7</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_8</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F8</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_9</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F9</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_10</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F10</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_ROTATE</ActionID>
          </Input>
          <Output>
            <ActionID>HIDMouse_Middle</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>V3DK_USER</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverGUI</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
  </Devices>
</AppCfg>
velo
Posts: 2
Joined: Thu Dec 06, 2018 4:47 pm

Re: Need help writing an XML file for an unsupported app - just need to send up/down/left/right arrow keys

Post by velo »

Thanks a lot for your help. I put it in an XML file, changed the executable file to read notepad.exe, but it wouldn't work in Notepad. Am I doing something wrong?

I did stop and start the driver; restarted Notepad just to be sure; the SpaceMouse icon in the taskbar displays the correct XML file.
Post Reply