Right, so I wanted to play this game so much that I kept searching and searching. Finally found a solution. If it were still possible to register on the saitek forums I would be posting this there, for all the other people I found with the same issue with the saitek software. (can I change the thread title to reflect that I have a solution for saitek profile crashing?)
I downloaded some software called autohotkey, it runs off scripts created in notepad. I then created a script to output joystick keys as the same as my keyboard bindings in DCS. Essentially what the saitek profiler does, if it worked. Below is my script for anyone else that wishes to use it. To use it you will need to download autohotkey, then paste the script into notepad and save it as .ahk and then double click to run. you may need to change the number before the word 'joy' and you may need to change the keyboard bindings within DCS. It was easier for me to change some bindings around then to learn how to script Lalt+; or whatever. It's not entirely complete, but its got enough basic functionality that you can take off/land and fly without the keyboard.
#Persistent ; Keep this script running until the user explicitly exits it.
SetTimer, WatchAxis, 5
return
WatchAxis:
GetKeyState, 3JoyU, 3JoyU ; Get position of U axis.
KeyToHoldDownPrev = %KeyToHoldDown% ; Prev now holds the key that was down before (if any).
if 3JoyU > 70
KeyToHoldDown = NumpadMult
else if 3JoyU < 30
KeyToHoldDown = NumpadDiv
else
KeyToHoldDown =
if KeyToHoldDown = %KeyToHoldDownPrev% ; The correct key is already down (or no key is needed).
return ; Do nothing.
; Otherwise, release the previous key and press down the new key:
SetKeyDelay -1 ; Avoid delays between keystrokes.
if KeyToHoldDownPrev ; There is a previous key to release.
Send, {%KeyToHoldDownPrev% up} ; Release it.
if KeyToHoldDown ; There is a key to press down.
Send, {%KeyToHoldDown% down} ; Press it down.
return
3Joy4::Send m
3Joy3::Send Insert
3Joy5::Send -
3Joy2::Send Numpad5
3joy7::Send g
3Joy8::Send f
3Joy27::
Send {, down}
KeyWait 3Joy27
Send {, up}
return
3Joy25::
Send {/ down}
KeyWait 3Joy25
Send {/ up}
return
3Joy26::
Send {; down}
KeyWait 3Joy26
Send {/ up}
return
3Joy24::
Send {. down}
KeyWait 3Joy24
Send {. up}
return
3Joy23::
Send {Numpad1 down}
KeyWait 3Joy23
Send {Numpad1 up}
return
3Joy21::
Send {Numpad2 down}
KeyWait 3Joy21
Send {Numpad2 up}
return
3Joy20::
Send {Numpad3 down}
KeyWait 3Joy20
Send {Numpad3 up}
return
3Joy22::
Send {Numpad4 down}
KeyWait 3Joy22
Send {Numpad4 up}
return
3Joy6::
Send {LControl down}
KeyWait 3Joy6
Send {LControl up}
return