WPF, tip de fișier de înregistrare

Să presupunem că trebuie să fie înregistrat în extensia de fișier pentru Windows (de exemplu, .testDoc) și asociați cu aplicația. După aceea, faceți clic pe fișierul * .testDoc ar trebui să conducă la cererile de lansare imediate.

O modalitate de a înregistra fișierul manual de tip implică utilizarea de Windows Explorer:

Faceți clic dreapta pe fișier și selectați .testDoc din meniul contextual selectați Deschidere cu. -> Selectați programul.

În selectarea caseta de dialog a programului, faceți clic pe Răsfoire, localizați fișierul .exe al aplicației și dublu-clic pe ea.

Dacă nu doriți să faceți handler aplicație implicită pentru acel tip de fișier, asigurați-vă că caseta de dialog caseta de selectare „Selectare program“, utilizați întotdeauna programul selectat pentru a deschide aceste fișiere nu este verificată. În acest caz, executați aplicația prin dublu-clic pe fișierul nu va funcționa, dar puteți deschide fișierul, faceți clic pe butonul din dreapta al mouse-ului, opțiune în elementul de meniu contextual deschis cu. și apoi aplicația din lista dorită.

Faceți clic pe butonul OK.

O altă modalitate de a verifica tipul de fișier este de a executa cod care editează registry:

Clasa FileRegistrationHelper înregistrează fișierul .testDoc de expansiune folosind clase de nume de spațiu Microsoft.Win32.

Procesul de înregistrare trebuie efectuată o singură dată. După finalizarea înregistrării, dublu-clic pe orice fișier cu extensia duce la .testDoc SingleInstanceApplication începe, iar fișierul este trimis ca un argument în linia de comandă. Dacă SingleInstanceApplication rulează deja, se numește metoda SingleInstanceApplicationWrapper.OnStartupNextInstance () și cererea existentă încarcă un document nou.

Control cont utilizator

Înregistrează-fișier - o sarcină care este de obicei efectuată de către programul de instalare. Problema cu includerea sa în codul aplicației este că necesită privilegii ridicate, care nu pot avea un utilizator care rulează aplicația. În special, este mijloace eficiente de UAC (Control cont utilizator - UAC) în Windows Vista și Windows 7. De fapt, în mod implicit, codul va eșua cu generarea unei excepții legate de securitate.

Din punct de vedere al UAC toate cererile au una dintre cele trei niveluri de performanță:

Procesul de aplicare moștenește marker de la procesul părinte (proces care a declanșat-). Cererea nu primește privilegii administrative, cu excepția cazului în utilizatorul solicită în mod explicit pentru ei - chiar dacă utilizatorul este conectat ca administrator. Acest nivel este implicit.

În cazul în care utilizatorul curent este un membru al administratori (administratori), un dialog de confirmare UAC. Odată ce Confirma de utilizator, aplicația va primi privilegii administrative. În cazul în care utilizatorul nu este un membru al grupului de administratori, o casetă de dialog apare în cazul în care utilizatorul poate introduce numele și parola unui cont care are privilegii administrative.

Aplicația primește beneficii maxime în funcție de membru al grupului. De exemplu, în cazul în care utilizatorul curent - un membru al grupului de administratori, aplicația se acordă privilegii de administrator (așa cum va confirma UAC). Avantajul acestui nivel de performanță este că aplicația va continua să pună în aplicare, în cazul în care privilegii de administrator nu sunt disponibile, spre deosebire de requireAdministrator.

De obicei, o aplicație rulează cu nivelul aslnvoker. Pentru a solicita privilegii administrative la pornire prin clic dreapta pe fișierul .exe și selectați Executare ca administrator din meniul contextual (Executare ca administrator). Pentru a obține privilegii administrative atunci când se testează o aplicație în Visual Studio, trebuie să faceți clic pe butonul din dreapta al mouse-ului pe comanda rapidă Visual Studio și selectați Executare ca administrator din meniul contextual.

Dacă o aplicație necesită privilegii administrative, acestea pot fi recuperate folosind nivelul de performanță sau requireAdministrator highestAvailable. În orice caz, va trebui să creați un manifest - un fișier cu unitate de marcare XML, care va fi încorporat în ansamblul compilate. Pentru a adăuga un manifest, faceți clic dreapta pe proiectul din Solution.Explorer și selectați Adăugare din meniul contextual -> Articol nou (Add) -> Articol nou). Specificarea unui șablon de aplicare fișier manifest (cerere de fișier manifest), apoi faceți clic pe Add (Adăugare).

Pentru a schimba nivelul de performanță pur și simplu modificați atributul la nivel de element . Valorile valide sunt aslnvoker, requireAdministrator și highestAvailable:

În unele cazuri, privilegii administrative trebuie să fie solicitate numai în anumite situații. În exemplul fișierelor jurnal aveți nevoie de ea, atunci când lansați mai întâi aplicația, atunci când trebuie să fie înregistrat. Acest lucru va evita avertismente inutile CCU. Cel mai simplu mod de a pune în aplicare acest model este de a plasa un cod care necesită privilegii crescute într-un modul executabil separat, care poate fi numit, dacă este necesar.

articole similare