{"id":529,"date":"2008-05-10T11:14:09","date_gmt":"2008-05-10T11:14:09","guid":{"rendered":"http:\/\/6teen.ru\/?p=398"},"modified":"2008-05-10T11:14:09","modified_gmt":"2008-05-10T11:14:09","slug":"5731","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=529","title":{"rendered":"\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0411\u0418\u041e\u0421\u0435?"},"content":{"rendered":"<p>\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0411\u0418\u041e\u0421\u0435?<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0411\u0418\u041e\u0421\u0435?\n\n\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0440\u0430\u0442\u044c \u0434\u0430\u0442\u044b \u0411\u0418\u041e\u0421 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0438 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b.\n\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0438 \u0432\u0435\u0440\u0441\u0438\u0435\u0439.\n\u0412 winnt \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 \u0438\u0437 \u041f\u0417\u0423, \u0430 \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043d\u043e \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u043e - \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043b\u044e\u0447\u0438 winnt \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0442\u0430\u0440\u0442\u0435 (?).\n\u0414\u043b\u044f win9x \u043c\u043e\u0436\u0435\u0448\u044c \u0445\u043e\u0442\u044c \u0432\u0435\u0441\u044c \u0411\u0418\u041e\u0421 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0438\u0442\u0430\u0442\u044c.\n\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u043e\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432\u0438\u043d\u0447\u0435\u0441\u0442\u0435\u0440\u0430 (\u043d\u0435 \u0442\u043e\u0442 \u0447\u0442\u043e getvolumeinfo \u0434\u0430\u0435\u0442) \u0418\u041c\u0425\u041e\n\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e - \u043f\u043e\u0440\u0442\u044b ide \u0434\u0430\u0436\u0435 win9x \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442.\n\ntypetregistryro = class (tregistry)\nfunction openkeyro (const key: string): boolean;\nend;{ \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u0435\u0442\u0445\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f - \u0431\u044b\u043b \u043e\u0434\u0438\u043d \u0433\u043b\u044e\u043a \u0443 d3}\nimplementationuses wapiinfo, windows, sysutils, strutils;\nfunction tregistryro.openkeyro (const key: string): boolean;\nfunction isrelative(const value: string): boolean;\nbegin\nresult := not ((value <> '') and (value[1] = ''))\nend;\nvar tempkey: hkey;\ns: string;\nrelative: boolean;\nbegin\ns := key;\nrelative := isrelative(s);\nif not relative then delete(s, 1, 1);\ntempkey := 0;\nresult := regopenkeyex(getbasekey(relative), pchar(s), 0, key_read, tempkey) = error_success;\nif result then\nbegin\nif (currentkey <> 0) and relative then s := currentpath + '' + s;\nchangekey(tempkey, s);\nend;\nend;\nfunction getbiosdate : string;\nconst biosdateptr = $0ffff5;\nsystemkey = 'hardwaredescriptionsystem';\nbiosdateparam = 'systembiosdate';\nvar p : pointer;\ns : string[128];\nbegin\nif osisnt then\nbegin\nwith tregistryro.create do try\nrootkey := hkey_local_machine;\nif openkeyro (systemkey) then\nbegin\ns := readstring (biosdateparam);\nend;\nfinally free;\nend; { of try}\nend else try s[0] := #8;\np := pointer(biosdateptr);\nmove (p^, s[1], 8);\nexcept fillchar (s[1], 8, '9');\nend; { of try}\nresult := copy (s, 1, 2) + copy (s, 4, 2) + copy (s, 7, 2);\nend;\nfunction getvideodate : string;\nconst videodateptr = $0c0000;\nsystemkey = 'hardwaredescriptionsystem';\nvideodateparam = 'videobiosdate';\nvar p : pointer;\ns : string[255];\nbegin\nif osisnt then\nbegin\nwith tregistryro.create do try\nrootkey := hkey_local_machine;\nif openkeyro (systemkey) then s := readstring (videodateparam)\nelse s := 'nt\/de\/tected';\nfinally free;\nend; { of try}\nend else try s[0] := #255;\np := pointer(videodateptr + 60); { \u043f\u0435\u0440\u0432\u044b\u0435 $60 - \u0441\u0442\u0440\u043e\u043a\u0430 copyright}\nmove (p^, s[1], 255);\nif pos('\/', s) > 2 then s := copy (s, pos('\/', s) - 2, 8) else\nbegin\np := pointer(videodateptr + 60 + 250);\nmove (p^, s[1], 255);\nif pos('\/', s) > 2 then s := copy (s, pos('\/', s) - 2, 8);\nend;\nexcept fillchar (s[1], 8, '9');\nend; { of try}\nresult := copy (s, 1, 2) + copy (s, 4, 2) + copy (s, 7, 2);\nend;\nunit wapiinfo;interfaceuses registry, sysutils, windows;\nprocedure getosverinfo (var osid : dword; var osstr : string);\nfunction osisnt : boolean;\nprocedure getcpuinfo (var cpuid : dword; var cpustr : string);\nprocedure getmeminfo (var memstr : string);\nimplementationprocedure getosverinfo (var osid : dword; var osstr : string);\nvar osverinfo : tosversioninfo;\nreg : tregistry;\ns : string;\nbegin\nosverinfo.dwosversioninfosize := sizeof (osverinfo);\ngetversionex (osverinfo);\nosid := osverinfo.dwplatformid;\ncase osid of ver_platform_win32s : osstr := 'windows 3+';\nver_platform_win32_windows : osstr := 'windows 95+';\nver_platform_win32_nt :\nbegin\nosstr := 'windows nt';\nreg := tregistry.create;\nreg.rootkey := hkey_local_machine;\nif reg.openkey ('systemcurrentcontrolsetcontrol', false) then try s := reg.readstring ('productoptions')\nexcept s := ''\nend;\nif s = 'winnt' then osstr := osstr + ' workstation'\nelse if s = 'servernt' then osstr := osstr + ' server 3.5 & hi'\nelse if s = 'lanmannt' then osstr := osstr + ' advanced server 3.1';\nreg.free;\nend;\nend;\nwith osverinfo do osstr := osstr + format (' %d.%d (\u0432\u044b\u043f\u0443\u0441\u043a %d)', [dwmajorversion, dwminorversion, loword(dwbuildnumber)]);\nend;\nfunction osisnt : boolean;\nvar s : string;\ni : dword;\nbegin\ngetosverinfo (i, s);\nresult := (i = ver_platform_win32_nt);\nend;\nprocedure getcpuinfo (var cpuid : dword; var cpustr : string);\nvar si : tsysteminfo;\nbegin\ngetsysteminfo (si);\ncpuid := si.dwprocessortype;\ncase cpuid of 386: cpustr := '80386-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440';\n486: cpustr := '80486-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440';\n586: cpustr := 'pentium-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440';\nelse cpustr := '\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440';\nend;\n{case si.wprocessorarchitecture of processor_architecture_intel: ;\nmips alpha ppc unknown\nend;}\nend;\nprocedure getmeminfo (var memstr : string);\nvar meminfo : tmemorystatus;\nbegin\nmeminfo.dwlength := sizeof (meminfo);\nglobalmemorystatus (meminfo);\nwith meminfo do memstr := format ('\u041e\u0417\u0423: %0.2f m (\u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e %0.2f m)'#$d+ ' \u0424\u0430\u0439\u043b \u043f\u043e\u0434\u043a\u0430\u0447\u043a\u0438: %0.2f m (\u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e: %0.2f m)'#$d, [(dwtotalphys div 1024) \/ 1024, (dwavailphys div 1024) \/ 1024, (dwtotalpagefile div 1024) \/ 1024, (dwavailpagefile div 1024) \/ 1024]);\nend;\nend.\n\nps \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0430\u0442\u0443 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 ;)\n\u043d\u043e \u0442\u043e \u0447\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u0438\u0445\/\u0432\u0438\u0434\u0435\u043e\n\u043f\u043b\u0430\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e, \u0447\u0442\u043e \u043c\u043d\u0435\n\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c.\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0411\u0418\u041e\u0421\u0435?<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[395,433],"tags":[1223,774,913],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/529"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=529"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/529\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=529"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}