

Java Native Access - reduce speed mouse
Dobrý den,
Jak, prosím Vás, pomocí knihovny Java Native Access snížím rychlost myši.
Děkuji
Dobrý den,
Jak, prosím Vás, pomocí knihovny Java Native Access snížím rychlost myši.
Děkuji
Předmět | Autor | Datum |
---|---|---|
Predne JNA neni knihovna, je to obecne rozhrani z Javy do nativniho kodu. Takze muzes treba volat fu… MaSo 09.03.2018 09:01 |
MaSo | |
Ano, máš pravdu, ztratím univerzálnost, ale kvůli jedné věci ji nebudu psát v jiném jazyku.
Každopá… MichalDM 10.03.2018 14:05 |
MichalDM | |
Už to funguje.
interface User32 extends com.sun.jna.platform.win32.User32 { User32 INSTANCE = (Use… MichalDM 14.03.2018 19:20 |
MichalDM | |
WinAPI zrejme konzumuje jen hexa promenne, vsak koukni do dokumentace. Ty SPIF_ jsou flagy. Dalsi ne… MaSo 15.03.2018 12:30 |
MaSo | |
WinAPI konzumuje čísla. Či sú zapísané v desiatkovej alebo šestnástkovej sústave je jedno, pretože k… los 15.03.2018 14:26 |
los | |
JÁ JSEM VŮL. ŘEŠÍM TADY RYCHLOST MYŠI A ŘEŠENÍ JE ÚPLNĚ PRIMITIVNÍ.
Abych začal od začátku, mám "ta… nový MichalDM 15.03.2018 23:32 |
MichalDM | |
Je to pomale? Pada to na OutOfMemmory? Jestli ne, tak to neres prosimte... nový MaSo 16.03.2018 08:43 |
MaSo | |
OK. Díky. poslední MichalDM 16.03.2018 20:19 |
MichalDM |
Zpět do poradny Odpovědět na původní otázku Nahoru
Predne JNA neni knihovna, je to obecne rozhrani z Javy do nativniho kodu. Takze muzes treba volat funkce z WinAPI nebo z nejakych dll knihoven. Osobne jsem to pouzil jen jednou, ale ne na WinAPI - coz potrebujes ty. Zkus googlit.
PS: Nedelej to. Prijdes o multiplatformost aplikace. Pak se nabizi otazka proc to vubec psat v Jave, kdyz treba .NET bys tohle udelal daleko snaze.
Ano, máš pravdu, ztratím univerzálnost, ale kvůli jedné věci ji nebudu psát v jiném jazyku.
Každopádně, hledal jsem to a našel tyto dva odkazy.
jna-systemparametersinfo-to-set-mouse-speed-is-returning-false-not-changing
java-awt-robot-changes-windows-mouse-speed
Zkusil jsem to nějak sepsat, ale nefunguje to.
Prosím Vás o radu.
Děkuji
PS. Variable SPI_GETMOUSESPEED není vůbec použita a program chtěl po přidání rozhraní importovat miliardu abstractních method.
Už to funguje.
Je tam však jeden malý zádrhel. Jelikož to mění přímo ve WIN, tak to zůstane i po skončení aplikace. Samozřejmě to lze změnit zpět pomocí metody,
která se vždy zavolá po skončení aplikace. Ovšem netuším, co tam mám nastavit za hodnoty. A s tím taky souvisí to, jestli je nutné to uvádět v jiné, než desítkové soustavě?
Prosím Vás o radu.
Díky.
WinAPI zrejme konzumuje jen hexa promenne, vsak koukni do dokumentace. Ty SPIF_ jsou flagy. Dalsi nevyhodu vidim v tom, ze ta metoda stop() se ti zavola jen pri korektnim ukonceni. Pokud to nekdo killne nasilne, rychlost mysi se zpet nezmeni...
WinAPI konzumuje čísla. Či sú zapísané v desiatkovej alebo šestnástkovej sústave je jedno, pretože kompilátor z toho spraví rovnaké jednotky a nuly. Konvencia je používať šestnástkovú sústavu najmä kvôli čitateľnosti, keďže väčšinou sú tie čísla flagy.
Meniť rýchlosť myši z nejakej okienkovej aplikácie nie je ani zďaleka dobrý nápad. Dôvodov "prečo" je veľa, nekorektné ukončenie aplikácie je len jedným z mnohých. Odporúčam zamyslieť sa nad iným riešením, ale nesledoval som staršie príspevky, takže neviem, aký problém autor vlastne rieši.
JÁ JSEM VŮL. ŘEŠÍM TADY RYCHLOST MYŠI A ŘEŠENÍ JE ÚPLNĚ PRIMITIVNÍ.
Abych začal od začátku, mám "tabulku" polygonů, "na něm" je další "tabulka" polygonů. Nejsou to přímo jeho potomci, ale jsou o vrstvu výše.
Respektive, mám polygon A, polygon B (čistě příklad)
Najedu na A, zobrazí se polygony na něm.
Přejedu na vedlejší polygon B, zobrazí se polygony na něm a zároveň polygony na A zmizí.
Přejedu zpátky na polygon A, zobrazí se polygony na něm a zároveň polygony na B zmizí.
Když jsem to dělal pomocí visible, fungovalo to bez problém. Pak jsem to ale předělal na FadeTransition, které postupně naskládám do ParallelTransition a pustím je.
Avšak po rychlém přejetí přes několik prvků animace nefungovala správně, některé prvky se nezobrazily a některé naopak zase nezmizely. Ovšem, když jsem přejížděl pomalu, pouze na sousední a potom, co současná animace proběhla, fungovalo to bez problému.
Problém byl v tom, že objekt ParallelTransition byl statický field třídy, který se vždy po najetí na nový polygon vymazal, což pravděpodobně působilo tyto problémy, když ještě předešlá animace neskončila.
Řešení bylo prosté, stačilo objekt předělat na dočasnou lokální proměnnou. Nastává však fakt, že když budu neustále vytvářet a mazat proměnnou, tak vzniká režie. Právě proto jsem to měl jako statický field.
Lze to nějak, prosím Vás, obejít. Respektive, nějaké optimálnější řešení.
Díky
Je to pomale? Pada to na OutOfMemmory? Jestli ne, tak to neres prosimte...
OK. Díky.