Knihovny a unitky pro Delphi

Zjištění systémových informaí v1.1
Tento malý prográmek ukazuje, jak získat některé systémové informace (velikost volné paměti, verze systému...). Zdroják je samozřejmě přiložen. Tento zdroják také ukazuje, jak uložit formulář do DLL knihovny.
Zdroják není okomentovaný, ale myslím, že jej každý snadno pochopí

Víte, co vše se spouští při startu vašeho PC?
Ne? Tak tento program (whatsrun) vám to "poví!" Program zjistí všechny programy, jež se spouští po startu Windows nebo při přihlášení určitého uživatele. Informace zjišťuje z registrů Windows. Zdrojový kód je také přiložen, ale zase není okomentován, protože je: a) krátký b) podle mne snadno pochopitelný. Zdroják opět ukazuje, jak vložit formulář do DLL knihovny. Program možná nebude úplně dobře fungovat na WinXP.

SharedMemoryManagement
Potřebovali byste sdílet data mezi několika procesy a nevíte, jak na to jít? V tom by mohla pomoci unita SharedMemoryManagement. Obsahuje runity, které zajiští alokace, realokaci a uvlonění paměti sdílené mezi všemi procesy běžícíme ve Windows. Knihovna bude fungovat asi jen pod Win9x. Jsou v ní použiti nedokumentované API funkce, takže nepřebírám žádnou zodpovědnost.

OSVersion
Tato jednotka obsahuje diagnostické funkce pro určení verze Windows (95/98/ME/NT3/NT4/200/XP).

Odchycení Ctrl+Alt+Del (Jen Windows XP)
Tady je malý prográmek, který je schopný zachytit stisk Ctrl+Alt+Del a zablokovat ho. To způsobí, že se nevyvolá TaskManager. Program používá dll-injection a subclassing (nahrazení procedury okna). Zdrojové kódy jsou přiloženy a i trochu okomentovány. Drobnou úpravou ve zdrojácích lze samozřejmě program vylepšit - může logovat zprávy, které se šíří jen systémovými procesy atp.

Některé nedokumentované funkce pro Windows 95/98
Tato unita umožňuje využít několika nedokumentovaných funkcí Winodws 95/98. Funkce lze použít např. k DLL injection nebo k získání handlu vlákna z jeho TID. Knohovna obsahuje i funkce pro práci s pamětí sdílenou mezi všemi procesy. Knohovna konkrétně obsahuje ekvivalenty těchto API běžných na Windows NT/XP:

  • VirtualAllocEx
  • VirtualFreeEx
  • CreateRemoteThread
  • OpenThread

Jelikož využívá nedokumentovaných postupů, neručím za jakékoli poškození, jež tato unita způsobí vašemu počítači.

DoublyLinkedLists
Velmi jednoduchá unitka pro práci s obousměrnými spojovými seznamy s hlavou. V jednotce je deklarován datový typ LIST_ENTRY, což jsou vlasně dva pointery (na předchozí a následující uzel seznamu). LIST_ENTRY neobsahuje žádnou položku na data, protože je určen k včlenění do již existujících záznamů, čímž je udělá schopnými zapojit se do spojového seznamu. Takovým to způsobem to funguje např. v jádře Windows. Jelikož se mi tato myšlenka velmi líbí, rozhodl jsem se napsat tuto unitku (ale byly i jiné důvody).

According to my calculations, this problem does not exist.