Învățăm să creăm comenzi rapide programat, vr-online este un e-zine gratuit pentru toți

Unde se fac etichete în acest meniu

Înainte de a vă arunca în jungla codării, să examinăm o mică parte teoretică și să aflăm de unde provine lista de etichete afișată în elementul "trimite". Astfel, elementul de meniu "trimite" este un dosar obișnuit situat în profilul tău (adică \ document și settengs \\ sendto).







Și cum să o faceți frumos

Da, copierea aplicației în acest dosar este o chestiune simplă și nu necesită explicații. Dar, din păcate, această decizie nu poate fi numită frumoasă. De ce? Încă funcționează! Da, funcționează, dar aceleași cuie pot fi înfundate cu clești sau cu un ciocan. Sunt de acord, este ultimul instrument pentru ao face mai convenabil? Suntem în exact aceeași situație. Fie vom face tot gangsterul (ex. Copiați programul în acest dosar), fie urmați regulile.

Conform regulilor, în acest dosar trebuie să fie stocate numai comenzile rapide. Nu există nicio întrebare cu privire la fișierele executabile. Nu știu dacă știți cum să creați comenzi rapide programat sau nu, dar în doar 15 minute veți afla doar acest lucru!

Învățăm să creăm comenzi rapide programat, vr-online este un e-zine gratuit pentru toți

Listarea 1: Clasa pentru crearea rapidă a comenzilor rapide

Listing 2: Exemplu de utilizare

Listarea 3: Exemplu de procesare a parametrilor trecuți

Lista 4: Lista tuturor constantelor posibile care definesc dosare speciale

Codul sa dovedit a fi destul de mic și complex în el nu există nimic. Singurul lucru cu care ai putea avea probleme este funcțiile necunoscute. E vorba de ei, vorbim acum. Să începem cu CreateComObject.

Funcția CreateComObject este descrisă în modulul ComObj. Creează un obiect de clasă asociat ID-ului de clasă trecut ca parametru. În exemplu, trec CLSID_ShellLink. CLSID_ShellLink este identificatorul clasei, care este un GUID obișnuit. Dacă vorbim cu privire la Delphi, atunci identificatorul corespunde tipului TGUID. Puteți deschide modulul ShlObj și încercați să căutați textul folosind CLSID_ShellLink. Nu aveți timp să conduceți, valoarea modului în care vă puteți împiedica ceva de genul:







Dacă funcția CreateComObject reușește, se va întoarce o referință la identificatorul de interfață IUnknown. Sper că ai prins ideea generală. Treceți mai departe.

După ce am primit referința la interfață, tastați IUnknown, putem inițializa variabilele noastre de tipul ISheellLink și IPersistFile. Rețineți că numele tipului acestor variabile începe cu litera I, adică acest tip este interfața. Pentru a aduce IUnknown la IShellLink, folosesc constructul: IObject ca IShellLink. Ce face "ca" aici? Deschideți orice carte despre Delphi și acolo, în secțiunea care descrie fundamentele nuanțelor POR, acest operator este întotdeauna menționat. Te deranjează să sapi în ajutor? Apoi, doar privirea la cuvântul "ca" imaginați în cap "cum". Ie Construcția condiționată de mai sus poate fi citită astfel: citiți IObject ca IShellLink. Acum înțelegi? Ok!

Toate variabilele necesare sunt inițializate, acum vom continua să creăm comanda rapidă. Pentru aceasta, trebuie să lucrați cu interfața IShellLink executând mai multe funcții:

- SetPath - Calea către aplicația pentru care este creată scurtătura. Trecem aici calea către aplicația noastră, pe care o folosim folosind funcția (ParamStr (0)).

- SetWorkingDirectory (); - Dosarul de lucru. Atunci cred că totul ar trebui să fie clar. Dosarul de lucru este oferit tradițional ExtractFilePath ().

După finalizarea funcțiilor anterioare, vom crea scheletul etichetei. Rămâne doar să ajungeți la calea către dosarul special (în cazul nostru, "Trimiteți"). Pentru a rezolva această problemă vom fi ajutați de două funcții:

- SHGetSpecialFolderLocation - returnează un indicator la structura ITEMIDLIST care conține informații despre dosarele speciale. Această funcție are trei parametri:
1). hWndOwner - rezervat.
2). nFolder este identificatorul dosarului la care vrem să ajungem.
3). pidl - pointer la PItemIDList.

După executarea funcției, variabila InFolder (care trecem în al doilea parametru) va fi calea către dosarul special. Pentru comoditate, rupe această cale la variabila LinkName, preformată folosind funcția Format. Cunoscând calea către dosarul de sistem (amintesc, în cazul nostru este "Trimitere"), nimic nu ne împiedică să creăm în sfârșit o scurtătură. Acest lucru se face folosind funcția Salvare a interfeței IPersistFile. Totul, eticheta noastră e gata!

Încercați să executați proba și să executați testul. Dând clic pe un singur buton, creați o scurtătură în dosarul "Trimitere". Se răcește? Și lucrul principal este simplu! Din motive de interes, dați metoda din clasa noastră un alt identificator în dosarul de sistem (a se vedea lista treia), executați aplicația și faceți clic din nou pe buton. Rezultatul nu va dura prea mult - o comandă rapidă pentru aplicația dvs. apare în directorul indicat de dvs.







Trimiteți-le prietenilor: