Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Source] Coś dla tych co nie mają myszuni


Rekomendowane odpowiedzi

Opublikowano

Cześć,

program umożliwia sterowanie kursorem za pomocą klawiatury.

Domyślne sterowanie: Lewo - Num4, Góra - Num8, Prawo - Num6, Dół - Num5, LPM - Num7, PPM - Num8. Sterowanie można zmienić w pliku Evolution.ini.

Program pauzujemy Num Lock. Włączony - pauza.

Nie pisać, że kod mógł być 5 razy krótszy, bo ma być taki jaki jest.

 

Kod:

#NoTrayIcon
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <StructureConstants.au3>

If Not (FileExists("Evolution.ini")) Then
	IniWrite("Evolution.ini", "Sterowanie", "Left", 37)
	IniWrite("Evolution.ini", "Sterowanie", "Up", 38)
	IniWrite("Evolution.ini", "Sterowanie", "Right", 39)
	IniWrite("Evolution.ini", "Sterowanie", "Down", 12)
	IniWrite("Evolution.ini", "Sterowanie", "LPM", 36)
	IniWrite("Evolution.ini", "Sterowanie", "PPM", 33)
EndIf

Global $hHook, $hStub_KeyProc

#region ### START Koda9 GUI section ### Form=D:\Potrzebne\Evolution.kxf
$Form1 = GUICreate("Evolution", 210, 138, 192, 124)
$Button1 = GUICtrlCreateButton("Help", 24, 104, 163, 25)
$Slider1 = GUICtrlCreateSlider(24, 24, 163, 21)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 100)
$Label1 = GUICtrlCreateLabel("Speed:", 24, 8, 163, 17, $SS_CENTER)
$Label2 = GUICtrlCreateLabel("Quality:", 24, 56, 163, 17, $SS_CENTER)
$Slider2 = GUICtrlCreateSlider(24, 72, 163, 21)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 90)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

_Main()

Func _Main()
	OnAutoItExitRegister("Cleanup")

	Local $hmod

	$hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
	$hmod = _WinAPI_GetModuleHandle(0)
	$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)

	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				Exit
			Case $Button1
		EndSwitch

		If Not (GUICtrlRead($Slider1) == StringTrimRight(StringTrimLeft(GUICtrlRead($Label1), 8), 1)) Then
			GUICtrlSetData($Label1, "Speed: [" & GUICtrlRead($Slider1) & "]")
		EndIf
		If Not (GUICtrlRead($Slider2) == StringTrimRight(StringTrimLeft(GUICtrlRead($Label2), 10), 1)) Then
			GUICtrlSetData($Label2, "Quality: [" & GUICtrlRead($Slider2) & "]")
		EndIf
	WEnd
EndFunc   ;==>_Main

Func EvaluateKey($keycode)
	If _GetNumLock() == 0 Then
		If ($keycode == IniRead("Evolution.ini", "Sterowanie", "Left", 37)) Then
			MouseMove(MouseGetPos(0) - (101 - GUICtrlRead($Slider2)), MouseGetPos(1), (101 - GUICtrlRead($Slider1)))
		ElseIf ($keycode == IniRead("Evolution.ini", "Sterowanie", "Up", 38)) Then
			MouseMove(MouseGetPos(0), MouseGetPos(1) - (101 - GUICtrlRead($Slider2)), (101 - GUICtrlRead($Slider1)))
		ElseIf ($keycode == IniRead("Evolution.ini", "Sterowanie", "Right", 39)) Then
			MouseMove(MouseGetPos(0) + (101 - GUICtrlRead($Slider2)), MouseGetPos(1), (101 - GUICtrlRead($Slider1)))
		ElseIf ($keycode == IniRead("Evolution.ini", "Sterowanie", "Down", 12)) Then
			MouseMove(MouseGetPos(0), MouseGetPos(1) + (101 - GUICtrlRead($Slider2)), (101 - GUICtrlRead($Slider1)))
		ElseIf ($keycode == IniRead("Evolution.ini", "Sterowanie", "LPM", 36)) Then
			MouseClick("left")
		ElseIf ($keycode == IniRead("Evolution.ini", "Sterowanie", "PPM", 33)) Then
			MouseClick("right")
		ElseIf ($keycode > 159) And ($keycode < 164) Then
			Return
		EndIf
	EndIf
EndFunc   ;==>EvaluateKey

Func _KeyProc($nCode, $wParam, $lParam)
	Local $tKEYHOOKS
	$tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
	If $nCode < 0 Then
		Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
	EndIf
	If $wParam = $WM_KEYDOWN Then
		EvaluateKey(DllStructGetData($tKEYHOOKS, "vkCode"))
	EndIf
	Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFunc   ;==>_KeyProc

Func Cleanup()
	_WinAPI_UnhookWindowsHookEx($hHook)
	DllCallbackFree($hStub_KeyProc)
EndFunc   ;==>Cleanup

Func _GetNumLock()
	Local $ret
	$ret = DllCall("user32.dll", "long", "GetKeyState", "long", 0x90)
	Return $ret[0]
EndFunc   ;==>_GetNumLock

obraz24.png


Opublikowano

Jest to source, piszesz to żebym teraz dostał jakiejś załamki typu "o Boże, tyle się namęczyłem, a już ktoś wcześniej wpadł na taki pomysł - mój program jest niepotrzebny...". Mało się namęczyłem.

Nie tylko w Windowsie, na necie jest również pełno tego typu programów.

Szczerze to nie wiedziałem, ale co z tego. Przecież to dział "Gotowe skrypty i biblioteki" więc nie taki jego cel.

obraz24.png


Opublikowano

jesteś świadom że taka opcja jest w windowsie ?

 

Napisz teraz do wszystkich producentów antyvirusów, że już inny antyvirus istnieje, i nie są żadne inne tego typu programy potrzebne ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...