Programy v Delphi
Serial
Nedávno jsem se trošku zabýval komunikací přes sériový port. Prozatimním výsledkem
je jednoduchý prográmek, který ukazuje základy práce s tímto zařízením. Jedná se
o konzolovou aplikaci, která nejprve pomocí API funkce CreateFile získá
k portu přístup, zjistí jeho aktuální nastavení a provede jeho změny v oblasti rychlosti,
parity a stopbitu. Pokud se podaří nastavení změnit, program v nekonečné smyčce čte
ze sériového portu příchozí data (vždy se zasekne, dokud se nějaká neobjeví) a vypisuje
je na obrazovku (interpretuje je jako ASCII kódy). Aplikaci lze ukončit pouze násilně,
například stiskem zkratky Ctrl + V.
SimpleKeylogger
Jelikož se mě občas lidé ptají, jak ve Windows zachytávat stisknuté klávesy,
ikdyž aplikace-špión se nenachází v popředí, rozhodl jsem se zveřejnit jednoduchý
kód, který celý postup ilustruje (abych ho nemusel pořád posílat mailem :-) ). Kód
zaregistruje zpětně volanou funkci pomocí SetWindowsHookEx. Operačnímu systému se
řekne, že tato funkce má být volána při každém stisku a uvolnění klávesy. Při ukončení
programu je opět tato zpětně volaná funkce odstraněna voláním UnhookWindowsHookEx.
Jelikož se jedná o celkem nízkoúrovňový způsob a jelikož kód je opravdu jednoduchý, neřeší
"maličkosti" typu překlad scan kódu na ASCII či stisk více kláves najednou.
DesktopManager
Tento jednoduchý prográmek jsem vytvořil za účelem jednoduché správy plochy a nabídky Start
více uživatelům najednou. Občas si uživatelé stěžují, že se jim na ploše po instalaci nějakého
programu (o který oni nestojí) objevil jeho zástupce. Můj program zobrazí, co všechno má každý
uživatel na ploše (popř. ve Start menu) a umožňuje jediným klikem mazání a kopírování zástupců
z jedné plochy na druhou atp. Je to taková blbůstka, ale třeba se někomu bude hodit. Zdrojáky
jsou přiloženy.
DLLImportExportFinder
Tento velmi jednoduchý program vlastní výroby používám k zjišťování
importů a exportů různých DLL a EXE souborů. Hodí se to zejména k nalezení
některých nedokumentovaných funkcí. Programu prostě zadáte adresář,
který on prohledá (i s podadresáři) a zjistí všechny importy a exporty,
které odpovídají kritériím.
DriverLoader
Nedávno jsem začal programovat ovladače pro TaskManagera (ty tu
samozřejmě zveřejním). Ovladač musí být nějakým způsobem zaveden
do jádra, aby se mohl testovat. A DriverLoader je právě program,
který to umí. Ale dokáže i instalovat/spouštět/zastavovat služby.
Pokud chcete zavést ovladač do paměti, zapište do textových polí
jeho jméno a cestu k souboru a stiskněte tlačítka "Load" a "Start".
Pro odstranění ovladače z kernelu stiskněte "Stop" popř. "Unload".
Tento program není nijak user-friendly. Šlo mi o to naprogramovat jej
co nejrychleji, aby mohl co nejdříve sloužit svému účelu.
Interrupt Counter
Toto je jen taková hříčka. Program zobrazuje, počty generovaných
přerušení. Seznam je aktualizován jedenkrát za sekundu, přiččemž v
druhém sloupci výpisu je zobrazen celkový počet generovaných přerušení a
ve soupci třetím počet generovaných přerušení za poslední sekundu.
Pomocí tohoto prográmku můžete zjistit, na jakém přerušení sídlí
klávesnice (asi jen u PS/2), kde je asi časovač nebo jak moc vaše PC
stránkuje (vypadá to, že PC stránkuje, i když vypnete stránkovací soubor!).
UPOZORNĚNÍ: Program využívá mnou napsaného ovladače!!! Proto se může stát,
že dojde i k modré smrti. Program byl testován ja vícejádrovém procesoru a
meěl by zvládnout stroje až do 32 jader.Avšak stát se může cokoliv. Zdrojáky
zatím nejsou přiloženy - v některém z článků je podrobně projdu a okomentuji
(třetí nebo čtvrtý díl článků o driverech).
Shutdown
Shutdown je balíček tří jednoduchých programů, které vám mohou pomoci
od pomalého vypínání PC. Jedná se o programy FastReboot, FastPowerOff a
FastHibernate. Stačí si je dát na plochu a jedním dvojklikem vyvolat
požadovanou akci (FastReboot - restartování PC, FastPowerOff - vypnutí PC,
FastHibernate - přechod do režimu spánku). Garantuji, že akce se provede
do několika málo vteřin. POZOR! O tom, že dojde k nějaké akci bude uvědomeno
jádro systému, ne však normální aplikace! Proto si před spuštěním jednoho jakéhokoliv
programu z tohoto balíčku vše pečlivě uložte (u FastHibernate to asi nebude třeba).
|