Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Оформление Windows XP (http://forum.oszone.net/forumdisplay.php?f=114)
-   -   [решено] Как прикрутить oemlogo.bmp и прочую OEM инфу? (http://forum.oszone.net/showthread.php?t=281781)

Wusa 03-05-2014 17:57 2346560

Как прикрутить oemlogo.bmp и прочую OEM инфу?
 
Очень нравится плюшка для пользователей лицензионных систем (или около того :) )

Как прикрутить такую в sysdm.cpl Windows XP SP3? Пробовал выдергивать из ресурсов ZverCD и сохранять как oemlogo.bmp (если кидать в System32) - все равно не отображается. Что я делаю не так? Ща минут через 5 прикреплю вложение.
Файл 113126

mwz 03-05-2014 19:08 2346595

Wusa, при таком размере уже как обои можно нужно ставить. ;)

http://www.oszone.net/3102
а также
http://www.asf.ru/docs/win-inside/oemlogo.htm + http://www.asf.ru/docs/win-inside/oeminfo.htm

Wusa 03-05-2014 19:53 2346620

mwz, я пытался ставить файл из вложения, а под хайдом просто как пример. И размеры подходящие.
Может, с разрядностью/глубиной цвета что-нибудь не так?
Цитата:

Файл oemlogo.bmp создается в любом графическом редакторе (напр. Paint) с размером 172 на 100 пикселов (русская версия Windows XP).
Размер лого задается жестко?
Эта фича меня тоже заинтересовала:

Хотел уже пойти реализовать, но…
Цитата:

Последнюю версию файла вы можете найти на этой странице.
Цитата:

404 Not Found
:(

mwz 03-05-2014 20:42 2346638

Цитата:

Цитата Wusa
Размер лого задается жестко? »

По первой ссылке: 180х114 пикс
Там возможны некоторые вариации (например, oemlogo.bmp от IBM был 184*116) -- но разбирался с этим более десяти лет назад и детали уже не помню.

Цитата:

Цитата Wusa
я пытался ставить файл из вложения »

Файл 113126: "Страница не найдена. Если вы уверены, что использовали правильную ссылку, свяжитесь с администрацией"

По скрипту же (судя по имени автора -- с использованием AutoIT и чего-либо вроде вот этого) -- в связи с прекращением поддержки WinXP смысла уже не имеет (а 404 -- поскольку проект wiki.oszone.net закрыт).

Wusa 03-05-2014 20:51 2346642

Вложений: 1
Цитата:

Цитата mwz
Файл 113126: "Страница не найдена. Если вы уверены, что использовали правильную ссылку, свяжитесь с администрацией" »

Перезалил:
Файл 113131
Цитата:

Цитата mwz
в связи с прекращением поддержки WinXP смысла уже не имеет »

Было бы интересно достать такой файл, просто из интереса, да к тому же и шапочка неплохая.
Цитата:

Цитата mwz
а 404 -- поскольку проект wiki.oszone.net закрыт) »

Ну и где же теперь эту инфу брать? Даже в Zver`е такой фичи нет. А хотелось бы!

mwz 03-05-2014 21:29 2346653

Цитата:

Цитата Wusa
Ну и где же теперь эту инфу брать? »

Ссылку на "вроде вот этого" я дал. По поводу зверя -- смотрим заодно скриншот, взятый сейчас с виртуальной машины:


("делать поуже" -- при сохранении пропорций)

Wusa 03-05-2014 21:40 2346657

mwz, уже откопал батник:
Код:

@echo off

rem магические слова :)
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

rem <--- ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ --->
rem полный путь и имя файла oeminfo
set OEMFILE=%SYSTEMROOT%\system32\oeminfo.ini
rem использовать ли реестровый метод для составления списка апдейтов (1 - да; 0 - нет)
set REGMODE=0
rem маркерный файл для определения cdrom-а
set TAGFILE=WIN51
rem производитель
set MANUFACTURER=Sanja Alone
rem модель
set MODEL=Unattended XP DVD
rem кол-во апдейтов в одной строке (по ум. 6)
set UPMAX=6
rem по какой длине выравнивать названия обновлений (по ум. 8)
set UPNAMEL=8
rem вписывать или нет серийник в файл oeminfo (1 - да; 0 - нет)
set KEY=0
rem сделать ли видимым серийник в окне "Сведения о поддержке" (1 - да; 0 - нет)
rem невидимость серийника означает, что он не будет виден в окне "Сведения о поддержке", но в файле OEMINFO он будет в строке SerialNo=
set KEYISVISIBLE=0
rem присвоение переменной CDROM буквы cdrom-а, определенной по маркерному файлу
rem (CDROM-ом считается первый найденный дисковод с маркерным файлом)
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (if exist "%%d:\%TAGFILE%" set CDROM=%%d:&& goto metka)
:metka
rem каталог с апдейтами и маска для отбора файлов в каталоге апдейтов (*.* - все; *.cat - только каталоги безопасности; KB*.* - только начинающиеся с KB и т.п.)
if defined CDROM (
      set UPDATESDIR=%CDROM%\I386\SVCPACK
      set UPDATESMASK=*.*
) else (
      rem определяем переменную CDROM как каталог на HDD
      rem (если файл oeminfo.cmd у Вас будет не в каталоге $OEM$,
      rem то измените число обрезаемых от переменной справа символов с 7 на требуемое Вам)
      set CDROM=%~dp0
      set CDROM=!CDROM:~0,-7!
      set UPDATESDIR=%SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
      set UPDATESMASK=KB*.*
)

rem Определение версии REG.EXE
for /F "tokens=1" %%j in ('reg 2^>nul') do if "%%j"=="REG" set REGEXE=rus

rem Обеспечение правильности отработки мультизагрузочного CD/DVD
if exist "%CDROM%\I386\winn?.sif" (
      set WINNTSIF=%CDROM%\I386\winn?.sif
) else (
      if defined REGEXE (
for /F "tokens=3 delims=        " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v SourcePath') do set SrcP=%%j
      ) else (
              for /F "tokens=3 delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v SourcePath') do set SrcP=%%j
      )
      if exist "!SrcP!\winn?.sif" set WINNTSIF=!SrcP!\winn?.sif
)
rem <--- ОКОНЧАНИЕ ОБЪЯВЛЕНИЯ ПЕРЕМЕННЫХ --->

rem язык (419 - рус.), а также название, пакет обновлений, версия и сборка ОС
rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции для
rem русской версии REG.EXE и только пробел для английской
if defined REGEXE (
for /F "tokens=3 delims=        " %%j in ('reg query "HKCU\Control Panel\International" /v Locale') do set lang=%%j
for /F "tokens=3 delims=        " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do set PN=%%j
for /F "tokens=3 delims=        " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion') do set CSDV=%%j
for /F "tokens=3 delims=        " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') do set CV=%%j
for /F "tokens=3 delims=        " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLab') do set BUILD=%%j
) else (
for /F "tokens=3 delims= " %%j in ('reg query "HKCU\Control Panel\International" /v Locale') do set lang=%%j
for /F "tokens=3* delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do set PN=%%j %%k
for /F "tokens=3* delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion') do set CSDV=%%j %%k
for /F "tokens=3 delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') do set CV=%%j
for /F "tokens=3 delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLab') do set BUILD=%%j
)

rem Анализ командной строки
for /F %%j in ('echo.%* ^| find /i /c "/k"') do if %%j GTR 0 set KEY=1
for /F %%j in ('echo.%* ^| find /i /c "/v"') do if %%j GTR 0 set KEYISVISIBLE=1
for /F %%j in ('echo.%* ^| find /i /c "/r"') do if %%j GTR 0 set REGMODE=1

rem Т.к. используется символ ">", то существующий файл OEMFILE будет перезаписан;
rem т.о. нет нужды его предварительно удалять
echo [General]> "%OEMFILE%"
echo Manufacturer=%MANUFACTURER%>> "%OEMFILE%"
echo Model=%MODEL%>> "%OEMFILE%"

rem Достаем из winn?.sif серийный номер
rem Это работает независимо от вида записи ProductKey=XXXX или ProductKey = XXXX (с пробелами)
if defined WINNTSIF (
      if %KEY% == 1 (
              for /F "tokens=3 delims==] " %%j in ('find /I /N "ProductKey" "%WINNTSIF%"') do set PK=%%j
      )
)

rem вспомогательные переменные
set i=1
set l=0
set c=0
set n=0

if %REGMODE% == 1 (
      rem Все обновления, установленные в системе
      rem (отбираются по подветкам; повторяющиеся эл-ты исключаются)
      for /F "tokens=5* delims=\" %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Updates" /s ^| findstr /i /v "REG_ FileList"') do (
              if %ERRORLEVEL%==0 (
                      for /F "usebackq tokens=3 delims=\" %%m in ('%%j\%%k') do (
                              rem !ВАЖНО! - в следующей строке после %%m должно быть не меньше UPNAMEL-1 пробелов
                              rem (это нужно для выравнивания списка обновлений при наличии апдейтов с короткими названиями - WGA, IE7)
                              set tmp=%%m         
                              set tmp=!tmp:~0,%UPNAMEL%!
                              set kb[!tmp!]=!tmp:~2,6!
                      )
                      rem учет обновлений .Net 2.0
                      for /F "tokens=2 delims=\" %%m in ('echo %%j\%%k^| findstr /i /c:" .NET"') do (
                              set tmp=%%m         
                              set tmp=!tmp:~0,%UPNAMEL%!
                              set kb[!tmp!]=!tmp:~2,6!
                      )
              )
      )
      rem Обновления, перечисленные в ветке Uninstall (начиннающиеся с KB + 6 цифр)
      for /F "tokens=7 delims=\" %%m in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| findstr /i "\<KB[0-9][0-9][0-9][0-9][0-9][0-9]"') do (
              set tmp=%%m         
              set tmp=!tmp:~0,%UPNAMEL%!
              set kb[!tmp!]=!tmp:~2,6!
      )
     
      rem Определяем общее количество обновлений
      for /F %%j in ('set kb[') do set /A n+=1
     
      call :suppinfo
     
      rem Сортировка и перенос списка обновлений в файл, указанный в переменной OEMFILE
      for /F "tokens=2 delims=[]" %%j in ('set kb[ ^| sort') do (set kbname=%%j&& call :myprint)
) else (
      rem Определение общего кол-ва файлов в каталоге апдейтов соотв-щих маске
      for /F %%j in ('dir /b /a:-d "%UPDATESDIR%\%UPDATESMASK%"') do set /A n+=1
     
      call :suppinfo
     
      rem Список апдейтов (имена всех файлов без расширений; имена выравниваются по длине до UPNAMEL символов)
      for /F "tokens=1 delims=." %%j in ('dir /b /a:-d "%UPDATESDIR%\%UPDATESMASK%"') do (set kbname=%%j&&set kbname=!kbname!          &&set kbname=!kbname:~0,%UPNAMEL%!&& call :myprint)
)
rem Выход из этого пакетного файла.
rem Команда GOTO принимает в качестве метки перехода строку :EOF, которая вызывает
rem передачу управления в конец текущего пакетного файла. Это позволяет легко
rem выйти из пакетного файла без определения каких-либо меток. (из справки по goto)
goto :EOF

:myprint
if !c! == 0 (
      set str=!kbname!
) else (
      set str=!str!  !kbname!
)

set /A c+=1

if !c! == %UPMAX% (
      echo Line!i!=!str!>> "%OEMFILE%"
      set /A i+=1
      set /A l+=1
      set str=
      set c=0
      set /A tmp=n-l*UPMAX
) else (
      if %n% LSS %UPMAX% (
              if !c! == %n% (
                      echo Line!i!=!str!>> "%OEMFILE%"
              )
      )
      if !tmp! LSS %UPMAX% (
              if !c! == !tmp! (
                      echo Line!i!=!str!>> "%OEMFILE%"
              )
      )
)
goto :EOF

:suppinfo
if defined PK (
      if %KEYISVISIBLE% == 0 (
              echo [OEMSpecific]>> "%OEMFILE%"
              echo SerialNo=%PK%>> "%OEMFILE%"
              )
      )
)

echo [Support Information]>> "%OEMFILE%"
if %lang% == 00000419 (
        echo Line!i!=ОС:%PN:Microsoft=% %CSDV:Service Pack=SP% версия %CV% сборка %BUILD%>> "%OEMFILE%"
) else (
        echo Line!i!=OS:%PN:Microsoft=% %CSDV:Service Pack=SP% version %CV% build %BUILD%>> "%OEMFILE%"
)
set /A i+=1

if defined PK (
      if %KEYISVISIBLE% == 1 (
              if %lang% == 00000419 (
                      echo Line!i!=Ключ продукта: %PK%>> "%OEMFILE%"
              ) else (
                      echo Line!i!=Product Key: %PK%>> "%OEMFILE%"
              )
              set /A i+=1
      )
)
echo Line!i!=>> "%OEMFILE%"
set /A i+=1

rem Дата и время инсталляции ОС в формате DD.MM.YYYY (hh:mm), например 20.05.2005 (14:37)
rem !!!!!!!!!!!!!!!!!!!!!!!!!!!
rem Вы можете добавить дополнительную инф-цию для отображения в окне "Сведения о поддержке"
rem в рус. и/или анг. версии (для вставки пустой строки исп-те команду echo Line!i!=>> "%OEMFILE%"
rem ; и не забывайте ставить set /A i+=1 перед каждой строкой)
rem !!!!!!!!!!!!!!!!!!!!!!!!!!!
for /F %%t in ('time/T') do set T=%%t
if %lang% == 00000419 (
      echo Line!i!=Дата и время установки ^(обновления^): %date% ^(%T%^)>> "%OEMFILE%"
      set /A i+=1
      echo Line!i!=>> "%OEMFILE%"
      rem Пример добавления своих строк
      rem set /A i+=1
      rem echo Line!i!=Ваша информация>> "%OEMFILE%"
      set /A i+=1
      echo Line!i!=Установленные компоненты и обновления ^(%n%^):>> "%OEMFILE%"
) else (
      echo Line!i!=Installation ^(updation^) date and time: %date% ^(%T%^)>> "%OEMFILE%"
      set /A i+=1
      echo Line!i!=>> "%OEMFILE%"
      rem Example for adding custom information
      rem set /A i+=1
      rem echo Line!i!=Your information>> "%OEMFILE%"
      set /A i+=1
      echo Line!i!=Installed Components and Updates ^(%n%^):>> "%OEMFILE%"
)
set /A i+=1
echo Line!i!=>> "%OEMFILE%"
set /A i+=1
goto :EOF

...но почему-то ключ продукта в окошке так и не появился:(
В остальном все штыком, даже логотип отобразился!

brodjaga5 03-05-2014 21:50 2346661

Wusa, WinstyleMonitor почитай!
и ещё прилагаю готовый WinStyle.exe с WinstyleMonitor открыть в WinRAR и можно редактировать файл WinStyle.cmd , oemlogo.bmp и Wallpapers

Wusa 03-05-2014 21:56 2346664

brodjaga5, можно, конечно, попробовать, но нельзя ли эту инфу (Product Key) добавить вручную путем правки oeminfo.ini? Просто та софтинка слишком пухлая для системы, в которой установлено минимум софта.

mwz 03-05-2014 22:03 2346670

Цитата:

Цитата Wusa
уже откопал батник »

Так там, откуда вы взяли заинтересовавший вас скриншот, приведён и батник -- перед этим скриншотом. ;)

Ключ продукта должен быть виден на закладке "Общие" безо всяких oemlogo (у меня прикрыт окном "Сведения о поддержке", но две первые цифры, 76, видны левее комментария, начинающегося со слова "Здесь"). *

Рецепт от brodjaga5 только окинул взглядом и вряд ли буду изучать (ибо "назад в прошлое", в не особо интересную для меня область) -- но вам он скорее всего пригодится.

*PS
А, вы имеете в виду не ключ продукта -- а ключ установки. Бессмысленно -- но только если "шоб було". Проблем не вижу -- но и вспоминать неохота.

Если разговор об одном ключе -- впишите две строки в oeminfo.ini вручную.

Wusa 03-05-2014 22:11 2346678

Цитата:

Цитата mwz
А, вы имеете в виду не ключ продукта »

Ключ продукта=ключ установки
Цитата:

Цитата mwz
Ключ продукта должен быть виден на закладке "Общие" безо всяких oemlogo »

А это я называю Код продукта

brodjaga5 04-05-2014 01:07 2346749

Цитата:

Цитата Wusa
но нельзя ли эту инфу (Product Key) добавить вручную путем правки oeminfo.ini? »

[General]
SerialNo=xxxx-xxxx
Цитата:

Цитата Wusa
...но почему-то ключ продукта в окошке так и не появился »

в батнике вместо set KEY=0 на set KEY=1

проверить не могу у самого семёрка!

Wusa 04-05-2014 11:56 2346861

Цитата:

Цитата brodjaga5
[General] »

Лучше все-таки в [Support Information]
В результате всех манипуляций у меня получилось следующее:


Время: 20:42.

Время: 20:42.
© OSzone.net 2001-