Ja, man kan godt bruge mus i C/C++, men lige helt præcist hvordan man gør ved jeg desværre ikke. Men jeg ved det kan la' sig gøre fordi en af dem jeg arbejder sammen med har lavet et program hvor han benyttede musen (han er desværre på skole i nu, men hvis du er heldig så ser han det her på Eksperten)
software interrupt 33h er musen. Med dette interrupt kan du lave en styring af din mus. Husk lige at loade en driver til din mus inden du kører dit prg.
I C bruger du software interrupts (bla)via REGS unionen - feks:
union REGS regs;
regs.x.ah = 0x00; int86(0x33,®s,®s);
hermed kalder du interrupt 33h med funktion 0 (initialize - tror jeg nok)
jeg sender lige et eksemple prg når jeg kommer hjem idag - hvor finder jeg din mail adr ?
mouse driveren er 'bare' en-eller-anden standard dos driver som passer til din mus (de fleste drivere er kompatible med de fleste mus). Denne driver loades fra dos promten.
Det lyder godt. Men lige en ting - jeg aner intet om drivere. Loader man en driver ligesom man starter et program i DOS og hvordan finder jeg ud af hvad den hedder?
i dos (også i win 9x dos prompt) findes der en række device drivere. Nogle bliver loaded idet du indlæser systemet (feks NUL,CON,COM1,COM2,LPT1... osv.). Prøv feks at skrive: copy c:\autoexec.bat lpt1 i en dos prompt. Dette medfører at du kopierer autoexec.bat ud på device'et lpt1 - printeren(er det ikke fantastisk). Grunden til at dette sker skal findes i software interrupt verdenen. LPT1 device'et optager en specielt interrupt i din pc'er - software interrupt 0Fh. LPT1 device driveren bruger altså int 0Fh til at overføre data fra - feks - dos prompten til printeren på lpt1. Man kunne så forstille sig at man i et c prg lavede et-eller-andet som kommunikerede med int 15 (dette prg skal overholde visse regler). Dette program kunne så feks bruges istedet for copy.
På samme måde kan du lave et prg som benytter en mouse device driver. Denne driver bruger software interrupt 33h. Så istedet for int 0Fh skal du bruge int 33h.
Jeg ved ikke om du har noget dokumentation på div. software interrupts, me jeg håber at int 33h fremgår rimelig tydelig i det eksempel jeg sender til dig senere.
device drivere kan loades på forskellige måder. Under config.sys, autoexec.bat og ved en dos prompt - feks:
config.sys (sjældent set) device=c:\mouse.sys autoexec.bat mouse.com dos prompt: c:>mouse.com
Mmtjo.... - delvist! Måske kunne en kort lille populær-beskrivelse af interrupt-kommunikationen (det med device-driveren der bruger 0Fh til at overføre data) hjælpe:-)
for at lave et prg hvori du kan bruge mus er det ikke relevant hvorvidt du kender til device driver termonologien. Du skal bare sørge for at loade en mouse drive inden du kører dit eget program. Det ensete der er vigtigt er kommunikationen med den loadede driver (og det dertilhørende sotfware interrupt). De forskellige drivere kan modtage forskellige 'parametre' - ligesom en funktion i c. Desværre kan jeg ikke lige finde noget dokumentation på 'nettet' som beskriver disse funktioner, men som sagt tror jeg du vil kunne få mening ud af prg'et jeg sender dig - vær hilset snowball :)
snowball: jeg har ingen anelse om hvad det hedder, men det er lavet som project - dvs. der er mere end een fil - så det er ikke tilrådeligt at sende mouse1.cpp !
iøvrigt sladrer jeg til peter om at du roder i minie 'ting' :) Hvad ville du sige hvis jeg 'fandt' dine "fantastiske ferieminder" på lan'en ? (hehehe)
det drejer sig 'bare' om snowball's ferie billeder som han har scannet ind på firmaets scanner - han glemte bare at slette dem inden de blev vold kopieret ud på resten af lan'et :) Nice legs by the way §;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.