<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159995</guid>
        <pubDate>Mon, 29 Jul 2002 08:50:49 +0000</pubDate>
        <title>Как получить дату создания биоса</title>
        <link>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159995</link>
        <description><![CDATA[NEOHack: BYTE Date[8];<br>memmove(Date, 0xFFFF5, 8);]]></description>
        <author>NEOHack</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159994</guid>
        <pubDate>Thu, 25 Jul 2002 06:02:41 +0000</pubDate>
        <title>Как получить дату создания биоса</title>
        <link>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159994</link>
        <description><![CDATA[rust: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>SUnteXx, 25.07.02, 01:12:25</span><div class='quote '>Чё-т мне способ с реестром сомнителен кажеЦа, но хотя хз... Это точно работает? А на 95 вынде?</div></div><br><br>Вариант для Win9x работает под Win98 - проверено.<br>Второй вариант - для обоих операционок - работает под Win98 и должен работать под Win95, т.к. значения получаются напрямую из BIOS.<br>Вот, кстати ещё список адресов с полезной инфой:<br> &nbsp; 0xC00A8 - Video BIOS Date &amp; Revision (все в одной строке - надо разгребать)<br> &nbsp; 0xC0048 - Video BIOS Version &amp; CopyRight (тоже, что и выше)<br> &nbsp; 0xFFFF5 - System BIOS Date<br> &nbsp; 0xFE091 - System BIOS CopyRight<br> &nbsp; 0xFE061 - System BIOS Version<br> &nbsp; 0xFEC71 - System BIOS Extra Info (та самая сигнатура то ли BIOS'а то ли матери)<br> &nbsp;]]></description>
        <author>rust</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159993</guid>
        <pubDate>Wed, 24 Jul 2002 21:12:25 +0000</pubDate>
        <title>Как получить дату создания биоса</title>
        <link>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159993</link>
        <description><![CDATA[SUnteXx: Чё-т мне способ с реестром сомнителен кажеЦа, но хотя хз... Это точно работает? А на 95 вынде?]]></description>
        <author>SUnteXx</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159992</guid>
        <pubDate>Wed, 24 Jul 2002 06:38:33 +0000</pubDate>
        <title>Как получить дату создания биоса</title>
        <link>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159992</link>
        <description><![CDATA[rust: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>SUnteXx, 24.07.02, 06:20:41</span><div class='quote '>собственно, сабж... желательно с исходником! Даже не желательно, а с исходником ;D<br>Заранее 10х...</div></div><br><br>Значит так. Вот кусок кода из моего модуля псевдозащиты  :). Первый (Для Win9x) читает значения из реестра, второй в случае Win9x читает напрямую из адреса где всё это хранится, а в случае NT - из реестра (но там оно в другом месте лежит).<br>Пользуйтесь кому надо. Просьба ногами не пинать, писал как мог  ;)<br><br>Для Win9x:<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">//------------------------------------------------------------------------&#60;br&#62;void btGetBIOSInfoClick()&#60;br&#62;{&#60;br&#62;      TRegistry *tReg=(TRegistry *)new TRegistry;&#60;br&#62;&#60;br&#62;      tReg-&#62;RootKey = HKEY_LOCAL_MACHINE;&#60;br&#62;      tReg-&#62;LazyWrite = false;&#60;br&#62;      tReg-&#62;OpenKey(&quot;Enum\Root\*PNP0C01\0000&quot;, false);&#60;br&#62;&#60;br&#62;      AnsiString BiosDate;&#60;br&#62;      AnsiString BiosName;&#60;br&#62;      AnsiString BiosVer;&#60;br&#62;&#60;br&#62;      try&#60;br&#62;      {&#60;br&#62;            BiosDate = tReg-&#62;ReadString(&quot;BIOSDate&quot;);&#60;br&#62;      }&#60;br&#62;      catch (ERegistryException&amp; xcpt)&#60;br&#62;      {&#60;br&#62;            BiosDate=&quot;&#60;Error&#62;&quot;;&#60;br&#62;      }&#60;br&#62;&#60;br&#62;      try&#60;br&#62;      {&#60;br&#62;            BiosName = tReg-&#62;ReadString(&quot;BIOSName&quot;);&#60;br&#62;      }&#60;br&#62;      catch (ERegistryException&amp; xcpt)&#60;br&#62;      {&#60;br&#62;            BiosName=&quot;&#60;Error&#62;&quot;;&#60;br&#62;      }&#60;br&#62;&#60;br&#62;      try&#60;br&#62;      {&#60;br&#62;            BiosVer = tReg-&#62;ReadString(&quot;BIOSVersion&quot;);&#60;br&#62;      }&#60;br&#62;      catch (ERegistryException&amp; xcpt)&#60;br&#62;      {&#60;br&#62;            BiosVer=&quot;&#60;Error&#62;&quot;;&#60;br&#62;      }&#60;br&#62;&#60;br&#62;      delete tReg;&#60;br&#62;&#60;br&#62;      AnsiString BIOSInfo=&quot;Name : &quot; + BiosName + &quot;\nVersion : &quot; + BiosVer + &quot;\nDate : &quot; + BiosDate;&#60;br&#62;&#60;br&#62;      Application-&#62;MessageBox(BIOSInfo.c_str(), &quot;BIOS Information&quot;, MB_OK);&#60;br&#62;}&#60;br&#62;//----------------------------------------------------------------------------------&#60;br&#62;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br><br>Для W2K/XP :<br><br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;br&#62;//---------------------------------------------------------------------------&#60;br&#62;AnsiString StrFromPtrA(long lpszA)&#60;br&#62;{&#60;br&#62;      char far *Ptr=(char far *)lpszA;&#60;br&#62;&#60;br&#62;      int len=lstrlen(Ptr);&#60;br&#62;      char *s=new char[len];&#60;br&#62;      AnsiString RetVal;&#60;br&#62;&#60;br&#62;      lstrcpy(s, (char *)lpszA);&#60;br&#62;&#60;br&#62;      RetVal=AnsiString(s);&#60;br&#62;&#60;br&#62;      delete [] s;&#60;br&#62;&#60;br&#62;      return RetVal;&#60;br&#62;}&#60;br&#62;//---------------------------------------------------------------------------&#60;br&#62;AnsiString __fastcall GetRegString(HKEY Reg_key, AnsiString Path, AnsiString Key)&#60;br&#62;{&#60;br&#62;      TRegistry *reg=new TRegistry();&#60;br&#62;      TRegDataType rdtKeyDataType;&#60;br&#62;      AnsiString Result;&#60;br&#62;      bool rescode;&#60;br&#62;&#60;br&#62;      reg-&#62;Access=KEY_ALL_ACCESS;&#60;br&#62;      reg-&#62;RootKey = Reg_key;&#60;br&#62;&#60;br&#62;      rescode=reg-&#62;OpenKey(Path, false);&#60;br&#62;      if(!rescode)&#60;br&#62;      {&#60;br&#62;            reg-&#62;CloseKey();&#60;br&#62;            delete reg;&#60;br&#62;            return (Result=&quot;&#60;Registry Key not found&#62;&quot;);&#60;br&#62;      }&#60;br&#62;&#60;br&#62;      try&#60;br&#62;      {&#60;br&#62;            if(reg-&#62;ValueExists(Key))&#60;br&#62;            {&#60;br&#62;                  rdtKeyDataType=reg-&#62;GetDataType(Key);&#60;br&#62;                  if(rdtKeyDataType==rdString || rdtKeyDataType==rdExpandString)&#60;br&#62;                        Result=reg-&#62;ReadString(Key);&#60;br&#62;                  else if(rdtKeyDataType==rdUnknown)&#60;br&#62;                        Result=&quot;&#60;Unknown Registry value type&#62;&quot;;&#60;br&#62;                  else&#60;br&#62;                        Result=&quot;&#60;Wrong Registry value type&#62;&quot;;&#60;br&#62;            }&#60;br&#62;            else&#60;br&#62;            {&#60;br&#62;                  Result=&quot;&#60;Registry value not found&#62;&quot;;&#60;br&#62;            }&#60;br&#62;      }&#60;br&#62;      catch(ERegistryException &amp;xcpt)&#60;br&#62;      {&#60;br&#62;            Application-&#62;MessageBox(xcpt.Message.c_str(), &quot;Error reading registry value&quot;, MB_OK|MB_ICONEXCLAMATION);&#60;br&#62;            Result=&quot;&#60;Error&#62;&quot;;&#60;br&#62;      }&#60;br&#62;      reg-&#62;CloseKey();&#60;br&#62;      delete reg;&#60;br&#62;&#60;br&#62;      return Result;&#60;br&#62;}&#60;br&#62;//---------------------------------------------------------------------------&#60;br&#62;AnsiString SystemBiosDate()&#60;br&#62;{&#60;br&#62;      AnsiString Result;&#60;br&#62;&#60;br&#62;      if(isWinNT())&#60;br&#62;            Result = GetRegString(HKEY_LOCAL_MACHINE, &quot;Hardware\Description\System&quot;, &quot;SystemBiosDate&quot;);&#60;br&#62;      else//Win9x&#60;br&#62;            Result=StrFromPtrA(0xFFFF5);&#60;br&#62;&#60;br&#62;      return Result;&#60;br&#62;}&#60;br&#62;//---------------------------------------------------------------------------&#60;br&#62;</div></ol></div></div></div></div>]]></description>
        <author>rust</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159991</guid>
        <pubDate>Wed, 24 Jul 2002 04:43:00 +0000</pubDate>
        <title>Как получить дату создания биоса</title>
        <link>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159991</link>
        <description><![CDATA[Ilyia: tasm file.asm<br>tlink /t/x file.obj<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;br&#62;.286&#60;br&#62;.model tiny&#60;br&#62;.code&#60;br&#62;org 100h&#60;br&#62;start:&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; push &nbsp; &nbsp; &nbsp; 0F000h &nbsp; &nbsp; &nbsp;;F000:FFF5- ASCII BIOS date&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pop &nbsp; &nbsp; &nbsp; &nbsp;ds&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mov &nbsp; &nbsp; &nbsp; &nbsp;dx, 0FFF5h&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mov &nbsp; &nbsp; &nbsp; &nbsp;bx, 1 &nbsp; &nbsp; &nbsp; ;standart output device&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mov &nbsp; &nbsp; &nbsp; &nbsp;cx, 8 &nbsp; &nbsp; &nbsp; &#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mov &nbsp; &nbsp; &nbsp; &nbsp;ah, 40h &nbsp; &nbsp; ;write file via handle&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp;21h &nbsp; &nbsp; &nbsp; &nbsp; ;ah=40h, int 21h&#60;br&#62;&#60;br&#62; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ret&#60;br&#62;end start&#60;br&#62;</div></ol></div></div></div></div>]]></description>
        <author>Ilyia</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159990</guid>
        <pubDate>Wed, 24 Jul 2002 02:20:41 +0000</pubDate>
        <title>Как получить дату создания биоса</title>
        <link>https://forum.sources.ru/index.php?showtopic=21363&amp;view=findpost&amp;p=159990</link>
        <description><![CDATA[SUnteXx: собственно, сабж... желательно с исходником! Даже не желательно, а с исходником ;D<br>Заранее 10х...]]></description>
        <author>SUnteXx</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      </channel>
      </rss>
	