Kaip Gauti Aprašą

Turinys:

Kaip Gauti Aprašą
Kaip Gauti Aprašą

Video: Kaip Gauti Aprašą

Video: Kaip Gauti Aprašą
Video: Penki triukai, kaip gauti darbą TECH 2024, Lapkritis
Anonim

„Windows“operacinių sistemų programų programavimo sąsają vaizduoja funkcijų rinkinys. Kai jie iškviečiami, galima sukurti įvairius objektus (failus, procesus, gijas, sinchronizavimo objektus ir kt.). Norint suteikti pakankamai abstrakčią ir vieningą prieigą prie šių objektų, jų identifikavimas atliekamas naudojant deskriptorius - „beasmenes“skaitines vertes.

Kaip gauti aprašą
Kaip gauti aprašą

Būtinas

  • - vertėjas iš programavimo kalbos, leidžiančios naudoti „Windows“API;
  • - galbūt „Windows Platform SDK“.

Nurodymai

1 žingsnis

Gaukite langų rankenas. Yra daug būdų tai padaryti. Tikslus metodas priklauso nuo galutinio tikslo.

Norėdami sukurti langą, naudokite „CreateWindow“arba „CreateWindowEx“API. Jie grąžina sėkmės rankeną ir NULL nesėkmę.

Ieškokite aukščiausio lygio langų ir antrinių langų pagal įvairius parametrus, naudodami funkcijas „FindWindow“ir „FindWindowEx“. Sėkmingai ieškant, bus gauta lango rankena.

Išvardykite langus naudodami „EnumWindows“, „EnumChildWindows“, „EnumThreadWindows“funkcijas. Rastų langų rankenos bus perduotos kaip parametras atgalinio skambinimo funkcijai.

Raskite lango, esančio tam tikroje ekrano vietoje, rankeną. Iškvieskite vieną iš funkcijų: WindowFromPoint, ChildWindowFromPoint arba ChildWindowFromPointEx.

2 žingsnis

Gaukite proceso rankenas. Sukurkite naują procesą paskambinę API funkcijomis „CreateProcess“, „CreateProcessAsUser“, „CreateProcessWithTokenW“arba „CreateProcessWithLogonW“. Jie visi grąžina rankeną naujam procesui „hCrocess“lauke „PROCESS_INFORMATION“struktūroje, kuriai rodyklė turėtų būti perduota jiems kaip paskutinis parametras.

Suraskite proceso rankeną pagal žinomą identifikatorių. Naudokite „OpenProcess“skambutį. Visų vykdomų procesų ID galima gauti, pavyzdžiui, naudojant įrankio žinyno bibliotekos „CreateToolhelp32Snapshot“, „Process32First“ir „Process32Next“funkcijas.

Atsiimkite dabartinio proceso pseudo rankeną naudodami funkciją „GetCurrentProcess“.

3 žingsnis

Gaukite gijų aprašus. Funkcijos „CreateThread“ir „CreateRemoteThread“sukuria gijas atitinkamai savo ir kieno nors procese, grąžindamos jų rankenas. Galite atidaryti esamą giją naudodami jos identifikatorių ir gauti atitinkamą rankeną naudodami „OpenThread“funkciją. Esamo srauto pseudo rankena grąžinama, kai iškviečiama „GetCurrentThread“.

4 žingsnis

Failų, katalogų, fizinių diskų, diskų tomų, konsolių, ryšio išteklių (įvesties / išvesties prievadų), pašto lizdų ir pavadintų vamzdžių aprašus galima gauti iškvietus vieną funkciją „CreateFile“.

5 žingsnis

Iš failo į atmintį atvaizdavimo objektų aprašus grąžina skambučiai į „CreateFileMapping“ir „OpenFileMapping“.

6 žingsnis

„CreateMutex“, „CreateSemaphore“ir „CreateEvent“funkcijos sukuria, o „OpenMutex“, „OpenSemaphore“ir „OpenEvent“funkcijos atveria esamus sinchronizavimo objektus (muteksus, semaforus ir įvykius). Jie visi grąžina aprašus.

7 žingsnis

Visi GDI objektai (pvz., Įrenginių kontekstai, šriftai, teptukai, pieštukai, nuo aparatūros priklausomi ir nepriklausomi bitai, DIB skyriai ir kt.) Yra valdomi per jų aprašus. GDI objektų kūrimo funkcijų yra daug, todėl informacijos apie jas reikia ieškoti MSDN skyriuje.

8 žingsnis

Apibūdinimas, gautas per vieną procesą, paprastai negali būti naudojamas kitame. Tačiau kai kuriais atvejais galima gauti dublikato aprašą, atitinkantį pirminį objektą. Iškvieskite „DuplicateHandle“API, kad kopijuotumėte rankeną. Tai gali būti naudojama, pavyzdžiui, norint bendrinti neįvardytus sinchronizavimo objektus ar kanalus tarp kelių procesų.

Rekomenduojamas: