Thanks for your replies!
Well I tried using the WinActive command, this does make the macro only work in the Snes window, but it doesn't make the macro to continue running in the snes window when I change windows. (but it is good that it will not mess anything else up, kind of pauses the macro untill i go back to the snes)
I then tried to add the ControlSend instead of the Send command... for some reason when I did this nothing happend what so ever. The macro no longer runs (although the start and stop functions still work, the ControlSend appears to just not work). Perhaps I am confused on how I should be entering the code? Here is the edited code. And yes the WinActive code is still in there, although it should probally be removed in order for the ControlSend to possibly work when the Snes is not the main window, but it wasn't working even when it is the main window.
HotkeySet ("{END}", "Stop")
HotkeySet ("{HOME}", "Start")
Func Start ()
While True
IF WinActive ("ZSNESWIN") Then
ControlSend("ZSNESWIN", "", "", "{LEFT}");Presses the Left key 1 time
ControlSend("ZSNESWIN", "", "", "{RIGHT}");Presses the Right key 1 time
ControlSend("ZSNESWIN", "", "", "{LEFT}");Presses the Left key 1 time
ControlSend("ZSNESWIN", "", "", "{RIGHT}");Presses the Right key 1 time
ControlSend("ZSNESWIN", "", "", "{UP down}");Holds the Up key down
ControlSend("ZSNESWIN", "", "", "{x}");Presses the x key 1 time
ControlSend("ZSNESWIN", "", "", "{UP up}");Releases the Up key
EndIf
WEnd
EndFunc
While (1)
Sleep (1)
WEnd
Func Stop ()
Exit 0
EndFunc