Keresés

Részletes keresés

pimre Creative Commons License 2020-07-15 18:09:53 151687

Nem feltétlenül tudja meg. Kilépéskor a program visszaállítja. Ezentúl belépéskor feljegyzi az eredeti állapotot egy segédfájlba. Ha szabályos a kilépés, a segédfájl törlődik.  Ha nem sikerült (amit remélhetőleg sikerült megakadályozni, bár az ördög - és a user - nem alszik, akkor a következő induláskor a program megnézi, hogy megvan-e az ellenőrző fájl. Ha igen, akkor kiolvassa belőle az előzőleg elmentett beállítást, és szabályosan kilépve visszaállítja az ügyfél által megszokott állapotot.

A hozzászólás:
Jahno Creative Commons License 2020-07-15 18:03:26 151686

Eddig én értem, az nagyobb kérdés, hogy mit szól az ügyfél vagy más program a registry matatáshoz. Én szeretek szopni ilyesmikkel, janem.

Előzmény:
pimre Creative Commons License 2020-07-15 17:36:38 151685

Na akkor mondom: Néhány hónapja dolgozom egy programon, elég sokféle szála van. Sok adatot kell bevinni, rögzíteni, aztán ezekből megadott algoritmus segítségével eredménytáblázatokat készíteni. Excelben írtam meg, és - szerencsére - a rendszerbeállításokban és az Excelben is a tizedespontot használom, így tegnapra gond nélkül elkészült, és hiba nélkül működik.

Ekkor gondoltam arra, hogy mi van, ha valaki a vesszőt használja tizedes határolóként. Átállítottam a területi beállításokat majd próbálgattam az Excel beállításait tizedespontra, vagy vesszőre átállítani. Kiderült, hogy a vesszőtől az Excel megbolondul. Akkor is, ha az Excelben a pont van megadva határolóként. Illetve csak az úgynevezett TextBox-ok, ami egyébként is egy külön világ speciális szabályokkal, amire gyakran nem érvényesek az egyéb helyeken megszokott működési módok (például az eseménykezelés tiltása sem működik, és mint most kiderült, a tizedes kezelés sem zökkenőmentes)

 

Néhány óra munkával próbáltam a számok formázásával  javítani a helyzetet, de éjfél körül beláttam, hogy ez tévút. Aztán rájöttem, hogy az a gond, hogy ezek az Excel TextBox-ok nem veszik figyelembe az Excel saját beállításait, ők mindenképp a Registry-ben tárolt értékkel dolgoznak. Így a beléjük írt adatot hol valami dátumértékre alakítják (például 1,1 helyett valami 41000 feletti számra, hol más lehetetlen formátumra.) 

 

Ekkor jött az ötlet, hogy programból kiolvasom a Registry szerinti tizedesjelet, és ha vessző, akkor átjavítom pontra, majd a program végén visszaírom a kiolvasottat (mert az elvileg bármilyen más karakter is lehet, és nem akarom a felhasználó beállításait elrontani)

 

Ezt a technikát kipróbáltam, és erre írtam, hogy "A dolog hibátlanul működik."

 

És csak a biztonság kedvéért kérdeztem meg, hogy a Windows későbbi verzióiban (feltéve, hogy mégsem a Windows 10 lesz az utolsó) kell-e attól tartani, hogy a "HKCUControl PanelInternationalsDecimal", ".", "REG_SZ" (illetve a visszaállítása az eredetire - mutatis mutandis - ugyanezzel a szintaxissal) valaha is nem így lesz érvényes.

 

Meg lennék lepve, ha igen, de azért kértem a nálam hozzáértőbbek véleményét.

 

Más: Talán a jövő héten már jelentkezem a csepeli boltban a laptop tisztításra. Előtte írok, és szívesen meghívlak egy sörre.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!