aplicatii native

rula aplicații native de pe ecran care apare înainte de fereastra de conectare. Un exemplu de aplicație este o aplicație nativă chkdsk, care rulează în fața ferestrelor, în cazul în care verificarea prealabilă a fost pornită pe erorile de partiție de sistem și amânat până la repornire. Aplicația funcționează prin afișarea unui ecran de dialog, și apoi există un început normală pentru Windows.

Avantajele utilizării acestui mod: majoritatea componentelor de Windows încă nu rulează, nu există multe limitări. Acest mod, de exemplu, este utilizat în aplicații care doresc ceva de-a face cu partiția de sistem Windows, dar nu poate rula până când sistemul de operare: sistemul defragmentator convertoare de fișiere, precum și utilitatea ca.

Programul meu nativ shell pornește ecranul de conectare și oferă o interfață linie de comandă cu abilitatea de a naviga prin sistemul de fișiere Windows, copiați și șterge fișiere, a vizualiza unele informații despre sistemul de operare și executați alte procese care pot rula în nativ-mode, cum ar fi Autochk. exe și autoconv.exe. programe disponibile de cod sursă în limbajul C.

aplicatii native
- Windows XP ecran albastru.

aplicatii native
Windows Vista ecran negru

aplicatii native
Ecran negru de Windows 7

aplicații native sunt compilate folosind WDK - Windows Driver Kit (de asemenea, cunoscut sub numele de DDK). Este posibil să le facă în orice alt mediu de dezvoltare, dar în WDK mai ușor.

Funcții în Ntdll.dll au prefixe Zw și Nt. precum și unii pe alții. Se poate observa că funcțiile ZW și Nt sunt nume duplicate. De fapt, este aceeași funcție. Dacă ne uităm, de exemplu, într-o rețea folosind orice funcție, este necesar să se uite mai întâi cu un prefix, apoi celălalt, în caz contrar s-ar putea dor de ceva. De ce ei au diferite prefixe - o altă poveste, pentru programarea aplicație nativă nu joacă un rol esențial.

Programarea nevoie de prototipuri API funcții native, dar în fișierele header WDK prezente nu toate definițiile. Este necesar să se utilizeze fișiere alternative antet care conține inclusiv definirea funcțiilor fără documente și tipuri de date. De exemplu, puteți utiliza fișierele header Native Development Kit (NDK), care sunt disponibile aici.

Programul în API pur nativ inconfortabil. Nu se poate face fără bibliotecă, care a implementat deja unele măsuri de rutină. Există o bibliotecă cu open source - ZenWINX. îl puteți folosi. Mai multe despre pagina NDK a anunțat unele bibliotecă NDL, dar pe site-ul său nr.

aplicație nativă pentru a rula atunci când Windows pornește, este necesar să-l pună în directorul System32, și o cheie de registry HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ BootExecute înregistra numele de fișier, precum și argumentele, dacă este cazul. Cheia de tip MULTI_SZ, poate cuprinde mai multe rânduri. Prima linie merge acolo AutoCheck Autochk *. După ce vă puteți înregistra programul. Programul, să se înregistreze în acest fel, are capacitatea de a rula chiar și în modul Windows Safe (modul de siguranță), deci trebuie să fii atent. Eroare în program - și sistemul nu va porni. Dar este posibil, în cadrul aplicației pentru a ține evidența a început de fapt în modul de siguranță și să se ocupe de acest mod separat, de exemplu, pentru a face finalizarea programului, atunci când ea a găsit se execută în modul de siguranță. În plus, în ciuda faptului că programul se execută, și poate efectua anumite acțiuni în acest mod nu funcționează pe consola de ieșire. Imposibil de interacțiune cu utilizatorul. Acest lucru ar trebui să fie luate în considerare.

Dacă este necesar, nativ aplicație poate rula fără a restarta calculatorul. Pentru a face acest lucru, utilizați un nrun.exe utilitar. Dar ecranul de boot din aceasta nu apare, și trebuie să dau seama cum să interacționeze mai mult cu cererea dumneavoastră, dacă aveți nevoie de interactivitate. În codul sursă nrun puteți vedea cum să pună în aplicare procese native de lansare folosind API funcții native fără forme legale.

În aplicațiile native, principalul punct de intrare nu este și nu wmain, și NtProcessStartup. În PE-antet EXE-fișier este un domeniu special, adică subsistem în care aplicația se execută. În aplicațiile native în acest domeniu este setat la o valoare specială, care indică faptul că EXE necesită subsistem. aplicațiile convenționale pune o valoare corespunzătoare subsistemelor „GUI Windows“ și „consola Windows“. aplicații native nu se execută în modul normal de Windows. Când încercați să executați un program pentru Windows dă mesajul „Aplicația nu poate fi rulat în modul de Win32.“

Concluzie chirilic la ecranul implicit în acest mod nu este acceptat. Există o cale în jurul valorii de această limitare, cu toate acestea, un mod de complex și funcționează până în prezent numai pe Windows XP.

aplicatii native

Cererea nu poate fi rulat în modul de Win32

Am creat un spațiu liber de proiect Aplicații native - un set de fișiere care pot fi utilizate ca bază pentru dezvoltarea propriilor aplicații native. Semifabricatul cuprinde fișierul native.c. care conține punctul de intrare în aplicație. Alte fișiere - aceste fișiere sunt ZenWINX biblioteci, care au fost modificate astfel încât să utilizeze definiția funcțiilor NDK, și nu de la definițiile fișierului. Acest lucru vă permite să utilizați funcțiile bibliotecii, și funcțiile API nativ pe care dezvoltatorii ZenWINX uitat să includă în propriul fișier antet. De fapt, NDK - un catalog complet de funcții API nativ decât fișierul furnizat cu ZenWINX. Compilați necesitatea de a construi piesa de prelucrat din utilitarul WinDDK (Sunt folosind versiunea WinDDK 1.1.6001.000). Este necesar să se conecteze fișierele header NDK, de prescriere calea către directorul cu ei.