handheldPC Forum
Alle 1 Beiträge dieses Themas auf einer Seite anzeigen

handheldPC Forum (http://www.rothberger.net/forum/index.php)
- Software entwickeln (http://www.rothberger.net/forum/forumdisplay.php?forumid=11)
-- DWORD mit eVB 3.0 in Registry schreiben (http://www.rothberger.net/forum/showthread.php?threadid=2005)


Geschrieben von Penny am 15.06.2012 um 17:58:

DWORD mit eVB 3.0 in Registry schreiben

Handheld: Fujitsu Pencentra 200 - HPC-Pro - Win CE2.11

Entwicklungsumgebung: eVB 3.0
SDK für HPC mit Runtimes und Controls vom PPC
da sonst die Programme auf dem Pencentra nicht laufen (MIPS 3000)


Hallo,

in meinem embedded Visual Basic Programm würde ich gerne die Möglichkeit einbauen das automatische Abschalten im Batteriebetrieb zu deaktivieren oder zumindest zu verlängern (Die maximal einstellbare Zeit ist 5min)

Den Reg Key dazu habe ich mit dem TC (Total Commander für CE) hier ausfindig gemacht:

HKLM\SYSTEM\CurrentControlSet\Control\Power\BattPo
werOff

Der Schlüssel liegt dabei als DWORD vor.

Im Netz habe ich das Modul "modreg.bas" gefunden mit welchem mein Programm nun einwandfrei in der Registry lesen und schreiben kann. Allerdings legt es die Einträge in der Registry als "String" Schlüssel an.

Bin dann im Modul auf die Konstante REG_SZ gestoßen und nach Ändern des Wertes von 1 auf 4 werden nun Schlüssel als DWORD angelegt. Soweit so gut...

...nur leider habe ich es trotz intensiver Fahndung und Tests nicht geschafft nun dort auch DWORD Werte reinzuschreiben. Einfach einen Zahlwert zu übergeben haut nicht hin:

Dim Settind as Double
Setting = 0
CESaveSetting Err, App, Section, Key, Setting

Ergibt in Emulation (Remote Reg Editor) und in TC auf dem HPC den (DWORD) Wert: 48
Über CEGetSetting natürlich 0 da es wieder als String ausgelesen wird.

Weitere Versuche mit z.B. Setting = 60 ergibt dann: 3145782

Also wie den Wert 'Setting' in DWORD umwandeln?

Am nächsten war ich noch mit

Setting = chr(60) 'chr(120) chr(180) ...

dran. Der Handheld zeigt dann in der Systemeinstellung "1min" (2min, 3min,...) an.

chr(0) klappt natürlich nicht (Systemeinstellung zeigt "3min") und Jenseits chr(255) ist logischerweise auch Ende... (und hätte mit sauberer Programmierung eher nix zu tun)

Weitere Suche im Netz ergab die Funktion "atof" die es aber nur in C gibt. (Keine Ahnung von C...)

Ich denke ich bin schon fast dran aber die letzten Meter scheine ich ohne Hilfe nicht zu schaffen.
Kann mir Jemand zeigen, wie ich nun einen "sauberen" DWORD Wert mit eVB in die Registry geschrieben bekomme, wie ich notfalls die atof Funktion in mein Basic Programm bastele ohne Ahnung von C zu haben und wie ich diese dann einsetzen muß?

Ich (und mein Handheld) würden sich über eine Lösung freuen :-)

Hier meine Quelle der modreg.bas:

modreg.bas

Gruß & Dank,
Dieter


Alle Zeitangaben in ME(S)Z. Es ist 19:58 Uhr.
Alle 1 Beiträge dieses Themas auf einer Seite anzeigen

Powered by: vBulletin Version 2.2.9
Copyright © Jelsoft Enterprises Limited 2000 - 2002.