< návrat zpět

MS Excel


Téma: Co přinutí BlockInput, aby fungoval? rss

Zaslal/a 13.8.2018 16:38

Zdravím. Při zobrazeném formuláři (userform), slyšícím na jméno třeba UF, potřebuji (po jisté akci uživatele) dočasně znemožnit uživateli jakoukoli akci, anžto poběží makro, s nímž by okamžité další akce uživatele kolidovaly.

1. Application.Interactive je ve formuláři samozřejmě na nic.

2. Příkaz UF.Enabled = False (v modulu formuláře samozřejmě pouhé Enabled = False) nefunguje, formulář lze zavřít Alt+F4 (první hrubá chyba MS). Ostatní akce uživatele sice blokovány jsou, ale po Enabled = True zůstanou blokovány (druhá hrubá chyba MS).

3. API funkce BlockInput fungovala ještě v XP a spolehlivě blokovala a uvolňovala klávesnici a myš uživatele, ve všech pozdějších verzích odmítá pracovat. To není obyčejná třetí hrubá chyba MS, to je jejich úmysl (přesněji zlomysl). BlockInput pracuje jedině za těchto podmínek:
- Musím být správce a kliknout nikoli na sešit, ale pravým myším uchem na Excel a v lokálním menu zvolit Spustit jako správce.
- Odpovědět na slabomyslný dotaz Windows, zda skutečně chci Excelu dovolit, aby dělal na disku změny (ty přece dělá vždycky!).
- V běžícím Excelu otevřít příslušný sešit s makry, která používají BlockInput.
To je přece zlovolná pitomost! Uživatel mého sešitu nemusí být správce a navíc rozhodně nemíní podstupovat popsanou anabázi, chce sešit otevřít tím, že na něj jednoduše dvojklikne. Navíc ani já jako programátor bych nemusel být správce, a přesto musím mít právo používat funkci BlockInput v zájmu toho, aby budoucí uživatel sešitu něco náhodně nezvoral.

Jde to obejít tím, že blokuji všechny jednotlivé kontrolní prvky (controls) UF (a další hrubá chyba MS - některé mají jen vlastnost Locked, některé zas jen vlastnost Enabled…), zavírací křížek formuláře i klávesu Alt+F4 řeším v události QueryClose a můj program ohavně nabobtnává.
UF.Enabled = False nesmí povolovat Alt+F4 a True musí zpřístupnit formulář! BlockInput musí být použitelné za všech okolností!

O uvedených hrubých chybách i o zmíněné nemravné zlovůli MS ví, popsal jsem jim to před pár lety. Dodnes to neopravili - to je přece až patologická nadutost!

Nevíte někdo, kdo či co by přinutilo líné manažery MS, aby hnuli prstem a zmíněné nechutnosti bleskově napravili?

Celý život nazývám hrubku hrubkou, nechutnost nechutností, zlovůli zlovůlí, nadutost nadutostí, …, tak doufám, že správce blogu můj příspěvek nesmaže, protože jsem si troufl o mamutí firmě napsat pravdu. V jistém blogu totiž stačilo zmínit se jen o tom, že MS neopravuje chyby, a byl jsem bezohledně zcenzurován.

Zaslat odpověď >

icon #041171
eLCHa
Nejsem správce, pouze moderátor - podle mne jste se nedopustil ničeho proti pravidlům. Tedy neshledávám důvod ke smazání.

Na MS si tady nadáváme občas všichni - ničemu to nepomůže, ale ulevíme si.

K vaší otázce - nemyslím si, že by je něco přinutilo - navíc, pokud programujete, tak to asi znáte. Někde něco změníte a někdy sám až časem zjistíte, co všechno to ovlivní ;) . Věřím, že některé věci, na které jsme zvyklí a časem se ztratí lze zčásti přiřadit právě k nechtěné chybě - většinou ale padnou za oběť jiné funkcionalitě, po které všichni toužíme ;)) . Prostě pokrok. A nedávno jsem četl krásnou definici (7. díl Zaklínače):

Pokrok je jako stádo sviní. Z takého stáda, to sa mosí uznat, je užitek. Je uzený špek, je ovar, je prejt, sú klobásky, sů nožky v rosolu. Tož sa nesmí ohrnovat nos, že je všecko posrané.

Můžete vytvořit vzorový formulář, můžete ho sem vložit a můžeme zkusit společnými silami najít řešení. Myslím, že problém je to zajímavý. Rozhodně bych ale hledal jiné řešení (což jste popsal, že hledáte) než BlockInput - když říkáte že nefunguje už od E2003.citovat
#041190
avatar
Při Cancel=True nefunguje Alt+F4.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

odpocet a storno tl.

PavDD • 28.3. 8:53

odpocet a storno tl.

Začátečník • 26.3. 14:39

odpocet a storno tl.

PavDD • 26.3. 10:22

odpocet a storno tl.

elninoslov • 26.3. 7:50

odpocet a storno tl.

PavDD • 26.3. 7:26

odpocet a storno tl.

elninoslov • 25.3. 22:34

odpocet a storno tl.

Začátečník • 25.3. 15:09