Manison Softworks

Skryté funkce Windows
Windows API
Zpět
Domů
E-mail

Windows API (dříve Win32 API) skrývá mnoho funkcí, které přesto, že jsou více či méně zdokumentované v SDK, nejsou programátory z různých důvodů používány. Jedním z důvodů může být složité používání nebo jejich neexistence v dřívějších verzích Windows. Přesto po překonání počáteční nedůvěry je jejich použití často efektivnější a rychlejší než vymýšlení vlastních řešení. V následujícím textu si představíme několik funkcí (přesněji řečeno dvě funkce a jedno rozhraní), které rozšiřují množinu standardních dialogových oken.

PickIconDlg

Tato funkce se v dokumentaci objevila poté, co Microsoft prohrál soudní spor, který proti němu vedla vláda Spojených států. V této podobě ji můžeme používat od Windows 2000, přestože se nachází i v dřívějších verzích. Projekt na konci článku obsahuje kód, který umožní použít tuto funkci i na Windows 95/98/Me. Funkce zobrazí dialog pro výběr ikony, tak jak jej můžeme vidět např. při změně ikony zástupce.
Zobrazit deklaraci v C
Zobrazit deklaraci pro Delphi

IProgressDialog

Trendem moderního programování je objektový přístup, proto i ve Windows nalezneme většinu funkcí už jen ve formě různých objektů a rozhraní. Rozhraní pro zobrazení průběhu zdlouhavé operace IProgressDialog bylo představeno ve Windows 2000 a Windows Me. Umožňuje použití vlastní animace reprezentující probíhající akci a odhadnout čas do konce operace.
Zobrazit deklaraci v C
Zobrazit deklaraci pro Delphi

RunFileDlg

Na konec jsem si nechal funkci, která není popsána v žádné oficiální dokumentaci a tedy jejíž použití je bez záruky v dalších verzích Windows. Jejím použitím můžeme vyvolat dialog pro spuštění aplikace stejný jako po klepnutí na tlačítko Start-Spustit? Funkce umožňuje změnit ikonu zobrazenou v boxu a nastavit některé další parametry. Po stisknutí tlačítka OK můžeme v reakci na zaslanou zprávu zrušit spuštění programu. Funkce je přeložena v knihovně shell32.dll pod ordinálním číslem 61. Na Windows 9x/Me se nachází v Ansi verzi a ve Windows NT/2000/XP najdeme její Unicode variantu. Funkce nemá žádnou návratovou hodnotu. V unit SecretDlgs.pas je přidána návratová hodnota, která je nulová, pokud se nepodaří zjistit vstupní bod této funkce.
Zobrazit deklaraci v C
Zobrazit deklaraci pro Delphi

Download

Stáhnout projekt pro Delphi 5 (19 KB)
Stáhnout ukázkovou aplikaci (189 KB)

Odkazy

Undocumented Windows 95: Shell Common Dialogs
The RunFileDlg - Documented and Undocumented Way
2003 – 2021 © Manison Softworks. Všechna práva vyhrazena.
Poslední aktualizace: 16. 12. 2023