Hvordan Få En Deskriptor

Innholdsfortegnelse:

Hvordan Få En Deskriptor
Hvordan Få En Deskriptor

Video: Hvordan Få En Deskriptor

Video: Hvordan Få En Deskriptor
Video: Hvordan få B2B-bedriften til å bli synlig i Google? 2024, Kan
Anonim

Programmeringsgrensesnittet for Windows-operativsystemer er representert med et sett med funksjoner. Når de kalles, kan forskjellige objekter (filer, prosesser, tråder, synkroniseringsobjekter, etc.) opprettes. For å gi tilstrekkelig abstrakt og enhetlig tilgang til disse objektene, blir identifikasjonen utført ved hjelp av beskrivelser - "upersonlige" numeriske verdier.

Hvordan få en deskriptor
Hvordan få en deskriptor

Nødvendig

  • - en oversetter fra et programmeringsspråk som tillater bruk av Windows API;
  • - muligens Windows Platform SDK.

Bruksanvisning

Trinn 1

Få vindushåndtak. Det er mange måter å gjøre dette på. Den nøyaktige metoden avhenger av sluttmålet.

Bruk CreateWindow eller CreateWindowEx APIer for å opprette et vindu. De gir et grep om suksess og NULL for fiasko.

Søk etter toppvinduer og underordnede vinduer etter forskjellige parametere ved hjelp av henholdsvis FindWindow og FindWindowEx-funksjonene. Ved vellykket søk vil vindushåndtaket fås.

Oppregne vinduer med EnumWindows, EnumChildWindows, EnumThreadWindows-funksjoner. Håndtakene til de funnet vinduene vil bli sendt som en parameter til tilbakeringingsfunksjonen.

Finn håndtaket til vinduet som ligger på en bestemt plassering på skjermen. Ring en av funksjonene: WindowFromPoint, ChildWindowFromPoint eller ChildWindowFromPointEx.

Steg 2

Få prosesshåndtak. Opprett en ny prosess ved å ringe funksjonene CreateProcess, CreateProcessAsUser, CreateProcessWithTokenW eller CreateProcessWithLogonW API. De returnerer alle et håndtak til den nye prosessen i hProcess-feltet i PROCESS_INFORMATION-strukturen, der pekeren skal sendes til dem som den siste parameteren.

Finn håndtaket til prosessen ved hjelp av den kjente identifikatoren. Bruk OpenProcess-samtalen. IDene til alle kjørende prosesser kan fås, for eksempel ved hjelp av funksjonene CreateToolhelp32Snapshot, Process32First og Process32Next i Tool Help-biblioteket.

Hent pseudohåndtaket til den nåværende prosessen ved hjelp av GetCurrentProcess-funksjonen.

Trinn 3

Få beskrivelser av tråder. Funksjonene CreateThread og CreateRemoteThread oppretter tråder i henholdsvis sin egen og andres prosess, og returnerer håndtakene. Du kan åpne en eksisterende tråd ved hjelp av dens identifikator og få det tilsvarende håndtaket ved hjelp av OpenThread-funksjonen. Pseudohåndtaket til den aktuelle strømmen returneres når GetCurrentThread kalles.

Trinn 4

Beskrivelser for filer, kataloger, fysiske disker, diskvolumer, konsoller, kommunikasjonsressurser (I / O-porter), e-postautomater og navngitte rør kan fås ved å ringe til en enkelt funksjon, CreateFile.

Trinn 5

Objektbeskrivere for fil-til-minne-kartlegging returneres ved anrop til CreateFileMapping og OpenFileMapping.

Trinn 6

Funksjonene CreateMutex, CreateSemaphore og CreateEvent oppretter, og funksjonene OpenMutex, OpenSemaphore og OpenEvent åpner eksisterende synkroniseringsobjekter (mutexes, semafores og hendelser). De returnerer alle beskrivelser.

Trinn 7

Alle GDI-objekter (for eksempel enhetskontekster, skrifter, børster, blyanter, maskinvareavhengige og uavhengige bitmapper, DIB-seksjoner osv.) Manipuleres gjennom beskrivelsene. Funksjonene for å lage GDI-objekter er mange og bør konsulteres i MSDN-delen for informasjon om dem.

Trinn 8

En deskriptor som er oppnådd i en prosess, kan som regel ikke brukes i en annen. Imidlertid er det i noen tilfeller mulig å skaffe en duplikatbeskrivelse som tilsvarer det primære objektet. Ring DuplicateHandle API for å duplisere håndtaket. Dette kan for eksempel brukes til å dele navngitte synkroniseringsobjekter eller kanaler mellom flere prosesser.

Anbefalt: