HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Automatikusan induló program CD-ről


Példaprogram letöltése

4980 bájt

A Win95 óta lehetőségünk van arra, hogy egy-egy CD lemez behelyezésekor automatikusan elinduljon egy általunk meghatározott alkalmazás. Hogy ez miként érhető el, ennek járunk utána ebben a cikkben, ahol az alapokon túl bemutatjuk, hogy milyen trükkök és további nem szokványos lehetőségek rejlenek ebben a funkcióban.

AutoRun01 példa
Az alapok igen egyszerűek, hozzunk létre egy Autorun.inf nevű állományt, amit majd a CD gyökér könyvtárában helyezzünk el. Ez az állomány egy sima szöveges TXT állomány, így akár a NOTEPAD, vagy bármely más szövegszerkesztő alkalmazással létrehozhatjuk.
Tartalmának formátuma kötött, ha például az alábbi a tartalom, akkor azzal azt érjük el, hogy behelyezéskor a Project1.exe program fog automatikusan elindulni.
[autorun] 
open=Project1.exe 
Ebben az esetben a Project1.exe-nek is a gyökér könyvtárban kell lennie. Ha ettől eltérő helyen van a futtatandó program, akkor az alkönyvtárt is meg kell adnunk:
[autorun] 
open=Program/Exe/Project1.exe 
Alapesetben az így megadott EXE-hez tartozó ikon fog látszani a Windows intézőben a CD meghajtó helyén. Ha ettől eltérő ikont szeretnénk megadni, akkor erre az alábbi módon nyílik lehetőségünk:
[autorun] 
open=Program/Exe/Project1.exe 
icon= Program/Exe/Project1.exe,2
Ez persze csak akkor működik, ha az adott EXE-ben legalább két ikon kapott helyett.
Megadhatunk persze egy ICO állományt is az ICON kulcsszó után:
[autorun] 
open=Program/Exe/Project1.exe 
icon= Icon/prg.ico
AutoRun02 példa
Ebben a példában azt vizsgáljuk, hogy miként hozhatunk létre új menüpontokat ahhoz a menühöz, mely akkor jelenik meg, mikor a Windows Intézőjével jobb gombbal kattintunk a CD meghajtón.
Ezekkel a menüpontokkal lehetőségünk nyílik arra, hogy a CD-ről (vagy akár máshonnan is) tetszőleges alkalmazásokat indítsunk el.
Ekkor teendőnk a következő: az AutoRun.inf állományba helyezzünk egy shell nevű kulcsszót, majd tegyünk hozzá egy tetszőleges általunk kitalált sztringet. Ezt kövesse egy egyenlőség jel majd egy olyan sztring, mely nem más lesz, mint a menüpont megnevezése.
Azt, hogy ez a menüpont milyen programot indítson el, azt úgy mondhatjuk meg, hogy egy új sorba ismét megadjuk a shell kulcsszót, majd ugyanazt a sztringet, melyet az előbb adtunk. Ezt követi szintén egy kötött sztring command néven, majd egyenlőség jel után jöhet az indítandó alkalmazás az esetleges paramétereivel együtt.
Ha több menüpontot is szeretnénk létrehozni, akkor a fentieket ismételjük. Egy fontos tudnivalónk van csupán, hogy a shell után következő szó menüpontonként más és más legyen.
Egy apró trükk: ha az AutoRun.inf állományt egy merevlemez gyökérkönyvtárában helyezzük el, akkor a számítógép újraindítása után az adott merevlemeznél is megjelennek a menüpontok, de akár még a hozzátartozó ikont is lecserélhetjük ezzel a módszerrel.
AutoRun03 példa
Egy kis trükk segítségével megkérhetjük a Windows-t, hogy szóljon a programunknak, mikor a felhasználó egy olyan CD lemezt helyez a gépbe, melyen automatikusan induló program van.
Azon kívül, hogy keletkezik egy esemény, melyben értesítést kap a programunk fenti eseményről, még arra is lehetőségünk van, hogy engedélyezzük, vagy letiltsuk ennek a programnak az indulását.
A cél érdekében az elvégzendő trükk a következő: mivel a Windows nem küld minden programnak ilyen üzenetet, ezért a RegisterWindowMessage függvénnyel regisztráltatnunk kell a programunk részére a QueryCancelAutoPlay üzenetet.
A RegisterWindowMessage visszatérési értékként adja meg azt a számot, mellyel a későbbiek folyamán azonosíthatjuk a QueryCancelAutoPlay üzenetet.
Ezek után már csak figyelnünk kell, hogy programunkhoz mikor érkezik ilyen üzenet. Ehhez felülírjuk a WndProc ablakkezelő eljárást. Ezen belül pedig minden hívásnál ellenőrizzük, hogy nem a várt üzenetet kaptuk-e, ha igen, akkor a kapott Message változó Result mezőjének a megfelelő értéket adva szabályozhatjuk, hogy a Windows elindíthatja-e a CD-n lévő automatikusan induló programot vagy sem.
Ha nem a várt üzenet jön, akkor ne feledkezzünk meg róla, hogy az inherited hívásával meghívjuk az eredeti WndProc eljárást az üzenetek feldolgozása érdekében.

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 509. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |