Hogyan Lehet Leírót Szerezni

Tartalomjegyzék:

Hogyan Lehet Leírót Szerezni
Hogyan Lehet Leírót Szerezni

Videó: Hogyan Lehet Leírót Szerezni

Videó: Hogyan Lehet Leírót Szerezni
Videó: Így kell a roblox adopt me Ben R es állatot szerezni nézd meg be válik! 2024, Lehet
Anonim

A Windows operációs rendszerek alkalmazásprogramozási felületét funkciók sora képviseli. Híváskor különféle objektumok (fájlok, folyamatok, szálak, szinkronizálási objektumok stb.) Hozhatók létre. Ahhoz, hogy kellően elvont és egységes hozzáférést biztosítsunk ezekhez az objektumokhoz, azonosításukat leíró - "személytelen" numerikus értékek segítségével végezzük.

Hogyan lehet leírót szerezni
Hogyan lehet leírót szerezni

Szükséges

  • - fordító olyan programozási nyelvből, amely lehetővé teszi a Windows API használatát;
  • - esetleg Windows Platform SDK.

Utasítás

1. lépés

Szerezzen be ablakfogantyúkat. Ennek számos módja van. A pontos módszer a végcéltól függ.

Ablak létrehozásához használja a CreateWindow vagy a CreateWindowEx API-kat. Visszatérnek a sikerre és NULL a kudarcra.

A legfelső szintű ablakokat és a gyermekablakokat különféle paraméterek alapján keresse a FindWindow és a FindWindowEx függvényekkel. Sikeres keresés esetén megkapja az ablak fogantyúját.

Számolja fel az ablakokat az EnumWindows, EnumChildWindows, EnumThreadWindows funkciókkal. A megtalált ablakok fogantyúi paraméterként kerülnek átadásra a visszahívás funkcióhoz.

Keresse meg az ablak fogantyúját, amely a képernyőn egy adott helyen található. Hívja meg az egyik funkciót: WindowFromPoint, ChildWindowFromPoint vagy ChildWindowFromPointEx.

2. lépés

Szerezzen folyamatfogantyúkat. Hozzon létre új folyamatot a CreateProcess, a CreateProcessAsUser, a CreateProcessWithTokenW vagy a CreateProcessWithLogonW API függvények meghívásával. Mindannyian visszaadnak egy fogantyút az új folyamathoz a PROCESS_INFORMATION szerkezet hProcess mezőjében, amelyhez a mutatót át kell adni nekik, mint utolsó paramétert.

Keresse meg a folyamat fogantyúját ismert azonosítója alapján. Használja az OpenProcess hívást. Az összes futó folyamat azonosítója beszerezhető, például az eszköz súgókönyvtárának CreateToolhelp32Snapshot, Process32First és Process32Next függvényeinek használatával.

A GetCurrentProcess függvény segítségével szerezze be az aktuális folyamat álfogóját.

3. lépés

Szerezzen le szálakat. A CreateThread és a CreateRemoteThread függvények szálakat hoznak létre saját, illetve valaki más folyamatában, visszaadva a fogantyúikat. Megnyithat egy meglévő szálat az azonosítójával, és az OpenThread függvény segítségével megszerezheti a megfelelő fogantyút. Az aktuális folyamat ál-fogantyúja a GetCurrentThread meghívásakor kerül visszaadásra.

4. lépés

A fájlok, könyvtárak, fizikai lemezek, lemezkötetek, konzolok, kommunikációs erőforrások (I / O portok), levelezőhelyek és megnevezett csövek leírói egyetlen függvény, a CreateFile meghívásával szerezhetők be.

5. lépés

A fájl-memória leképezési objektumleírókat a CreateFileMapping és az OpenFileMapping hívások adják vissza.

6. lépés

A CreateMutex, CreateSemaphore és CreateEvent függvények létrehozzák, az OpenMutex, OpenSemaphore és OpenEvent függvények pedig megnyitják a meglévő szinkronizációs objektumokat (mutexek, szemaforok és események). Mindannyian visszaadják a leírókat.

7. lépés

Az összes GDI-objektumot (például eszközkörnyezeteket, betűtípusokat, ecseteket, ceruzákat, hardverfüggő és független bitképeket, DIB szakaszokat stb.) Leíróikon keresztül kezelik. A GDI-objektumok létrehozásának számos funkciója van, amelyekről az MSDN szakaszban tájékozódhat.

8. lépés

Az egyik folyamatban kapott leíró általában nem használható a másikban. Bizonyos esetekben azonban meg lehet szerezni az elsődleges objektumnak megfelelő leíró duplikátumot. Hívja meg a DuplicateHandle API-t a fogantyú lemásolásához. Ez felhasználható például meg nem nevezett szinkronizálási objektumok vagy csatornák megosztására több folyamat között.

Ajánlott: