tedych
15.07.07 г., 12:51
Въпросът ми е такъв.
Не съм вещ в системното програмиране, освен преди години под DOS си пишех разни драйверчета за k/b/mouse na assembler+паскал където не беше трудно, но под Windows не съм задълбавал така.
Наскоро се сдобих с нова Logitech мишка (първата ми Logitech), и се сблъсках за първи път с SetPoint. Ясно е каква боза е тоя драйвер, и въпреки че засега освен една мизерия, проблеми особени не съм имал, освен бъговете в контролния панел.
Та хрумна ми дали когато една мишка работи само с generic драйвера на Windows (XP/2003) и има 7/9 бутона, може да се направи някакъв low level mouse hook, който да прехване направо сканиращите кодове, идващи от мишката, или ако самия Windows прехваща дори непознатите бутони (той вижда доколкото знам до 5 бутона след това не ги разпознава) и ги закарва в оибкновен trap неправещ нищо, да се преханат тия събития за непознатите бутони, и цялата работа е да им се даде функция да правят нещо, от програмката, която евентуално бих написал.
За сведение, преди имах една клавиатура Compaq с допълнителни десетина бутона горе, които в Windows не правеха абс. нищо, та взех че с написах програма, която се закача за клавиатурата с обикновен keyboard hook, там поне Windows пращаше някакви сканиращи кодове, които с обикновен learning (натискам бутон, програмата вижда и запомня кода, и на бутона можех да задавам разни действия като симулиране на hotkey и т.н.) им давах да правят нещо полезно. В случая драйвера пращаше тия кодове и моята програма можеше да ги разграничава. Не съм сигурен дали по принцип клав. драйвер ги е захващал по-ниско и да ги е подавал просто на програмите да правят с тях квото искат (а просто да съм нямал програма, която да ги познава, макар че те бяха някакви www, mail и т.н.), или просто съм хващал аз raw кодовете, за щастие.
За мишката дали това е възможно без инсталиране на драйвер, да хващам кодовете пращани от мишката (или от generic драйвера на Win) дори за непознатите нему бутони?
Цялата идея е да си направя 'самообучаваща' се програмка, на която като натисна бутона, тя да го запомни и да й дам нещо да прави с него, както стана с клавиатурата. Да разкарам тъпия и bloat-нат SetPoint, това е :)
Мерси предварително на знаещите.
P.S. Дори да ме упътите към някаква съществуваща програмка, която да го може това, ще е супер, защото аз не намерих. Или компонент за Delphi, който да се закачи към мишката и да хваща всеки бутон, независимо дали Виндовс го рапзознава или не.
Не съм вещ в системното програмиране, освен преди години под DOS си пишех разни драйверчета за k/b/mouse na assembler+паскал където не беше трудно, но под Windows не съм задълбавал така.
Наскоро се сдобих с нова Logitech мишка (първата ми Logitech), и се сблъсках за първи път с SetPoint. Ясно е каква боза е тоя драйвер, и въпреки че засега освен една мизерия, проблеми особени не съм имал, освен бъговете в контролния панел.
Та хрумна ми дали когато една мишка работи само с generic драйвера на Windows (XP/2003) и има 7/9 бутона, може да се направи някакъв low level mouse hook, който да прехване направо сканиращите кодове, идващи от мишката, или ако самия Windows прехваща дори непознатите бутони (той вижда доколкото знам до 5 бутона след това не ги разпознава) и ги закарва в оибкновен trap неправещ нищо, да се преханат тия събития за непознатите бутони, и цялата работа е да им се даде функция да правят нещо, от програмката, която евентуално бих написал.
За сведение, преди имах една клавиатура Compaq с допълнителни десетина бутона горе, които в Windows не правеха абс. нищо, та взех че с написах програма, която се закача за клавиатурата с обикновен keyboard hook, там поне Windows пращаше някакви сканиращи кодове, които с обикновен learning (натискам бутон, програмата вижда и запомня кода, и на бутона можех да задавам разни действия като симулиране на hotkey и т.н.) им давах да правят нещо полезно. В случая драйвера пращаше тия кодове и моята програма можеше да ги разграничава. Не съм сигурен дали по принцип клав. драйвер ги е захващал по-ниско и да ги е подавал просто на програмите да правят с тях квото искат (а просто да съм нямал програма, която да ги познава, макар че те бяха някакви www, mail и т.н.), или просто съм хващал аз raw кодовете, за щастие.
За мишката дали това е възможно без инсталиране на драйвер, да хващам кодовете пращани от мишката (или от generic драйвера на Win) дори за непознатите нему бутони?
Цялата идея е да си направя 'самообучаваща' се програмка, на която като натисна бутона, тя да го запомни и да й дам нещо да прави с него, както стана с клавиатурата. Да разкарам тъпия и bloat-нат SetPoint, това е :)
Мерси предварително на знаещите.
P.S. Дори да ме упътите към някаква съществуваща програмка, която да го може това, ще е супер, защото аз не намерих. Или компонент за Delphi, който да се закачи към мишката и да хваща всеки бутон, независимо дали Виндовс го рапзознава или не.