Форум » [x]Harbour » Почему нет ключа в реестре ? » Ответить

Почему нет ключа в реестре ?

Andrey: Всем привет ! Возвращаюсь к предыдущей теме: http://clipper.borda.ru/?1-1-0-00000070-000-20-0-1277637263 Но так как это не касается "Серийного номера", решил открыть новую тему ! Есть программа считывания ключа реестра (ключи взял из программы Филатова MiniGui SAMPLES\ADVANCED\SYSINFO\ )[more] /* Registry related values Winreg.ch */ /* Help for xHarbour */ #define HKEY_LOCAL_MACHINE 0 #define HKEY_CLASSES_ROOT 1 #define HKEY_CURRENT_USER 2 #define HKEY_CURRENT_CONFIG 3 #define HKEY_LOCAL_MACHINE 4 #define HKEY_USERS 5 FUNCTION MAIN() LOCAL lWinNT := IsWinNT() CLEAR SCREEN ? " Test functions CPU through the register for [x]Harbour." ? PADC("",70,"-") ? " " + Version() + " - " + hb_compiler() ? ? " " + MyCPUName() + " " + IF(lWinNT, "[~", "") + MyGetCPUSpeed() + " MHz" + IF(lWinNT, "]", "") ? ; ? ; ? ; ? wait RETURN NIL *--------------------------------------------------------* Function IsWinNT() RETURN OS_ISWINNT() *--------------------------------------------------------* Function MyCPUName() LOCAL lWinNT := IsWinNT(), cName := "" IF lWinNT /*? GetRegistry( HKEY_LOCAL_MACHINE, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString" ) cName := GetRegistry( HKEY_LOCAL_MACHINE, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString" ) ? VALTYPE(cName)*/ cName := Ltrim( GetRegistry( HKEY_LOCAL_MACHINE, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString" ) ) ELSE cName := "None CPU for Win9x" ENDIF cName := STRTRAN(cName," ") return cName *--------------------------------------------------------* Function MyGetCPUSpeed() LOCAL lWinNT := IsWinNT(), cName, n := 0 IF lWinNT n := GetRegistry( HKEY_LOCAL_MACHINE, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "~MHz" ) cName := LTrim( Str( n+1 ) ) ELSE cName := "None CPUSpeed for Win9x" ENDIF return cName [/more] На многих ХР работала без проблем, под одним 2000 только вылетела ! Но не все гладко оказывается... На одном ХР тоже вылетела. Вот этот комп: Полез в реестр и там действительно нет этого ключа: Как такое может быть ?

Ответов - 5

Dima: Andrey пишет: Как такое может быть ? А что возвращает (или падает прога) ? GetRegistry( HKEY_LOCAL_MACHINE, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString")

Andrey: Dima пишет: А что возвращает (или падает прога) ? Прога падает ! Потому что возвращается NIL ! Не тот тип и выпадает.....

Dima: Andrey пишет: Потому что возвращается NIL [pre2] Blabla:=GetRegistry( HKEY_LOCAL_MACHINE, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString") if Blabla==NIL ? "LOL - процессор спёрли ;)" endif [/pre2]


Andrey: Это я примерно догадывался как сделать ! А почему нет ЭТОГО КЛЮЧА ? Стоит же сервис-пак 2 !

Dima: Andrey Может удалил кто то , может какой то хитрый твикер заюзали , может вирь или троян чего натворил , может просто Винда упала или сбой какой был и реестр слегка "облегчился"



полная версия страницы