WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Инсталляция недостающих windows-файлов

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Инсталляция недостающих windows-файлов
55 опубликован 24-01-2002 20:54 MSK   Click Here to See the Profile for 55   Click Here to Email 55  
Уважаемые дамы и господа, как можно заставить windows, чтобы он доустановил недостающие файлы, находящиеся на инсталляционном windows-компакт-диске?
Например, Вашей программе требуется просмотрщик clipboard, а его нет в системе. Тогда выдается соответствующее сообщение пользователю, что если он согласен, то сейчас windwows проведет доустановку необходимых программ.
Заранее спасибо.
Muran опубликован 25-01-2002 00:28 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
А ты не пробовал, Уважаемый 55, полностью поставить виндоус и не мучаться.
А если нет, то этот вопрос обсуждается
долго и упорно в книге "Виндоус для чайников"
- установка доп. компонентов
P.S. Занимательная книженция.
Я смеялся часа 2 после её просмотра.
55 опубликован 25-01-2002 00:43 MSK     Click Here to See the Profile for 55  Click Here to Email 55     
Muran, все обстоит с точностью до наоборот. Вероятно я не совсем правильно выразился. Итак, предположим, нужно написать программу, которая потом будет передана клиенту. Для работы этой программы требуется, к примеру, clipboard-viewer из стандартной поставки windows. Моя программа при инсталляции должна проверить, установлен ли уже вышеупомянутый clipboard-viewer и если нет, то автоматически его установить. Поскольку, как Вы правильно заметили, не все умеют это делать.
SUnteXx опубликован 25-01-2002 00:44 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2Muran:
Я думаю, вопрос был "Как програмно заставить Windows доинсталировать недостающие компоненты", просто либо Вы не правильно поняли, либо я ошибаюсь!

55, уточните, bitte!

55 опубликован 25-01-2002 00:46 MSK     Click Here to See the Profile for 55  Click Here to Email 55     
SUnteXx, Вы совершенно правы. Уточнение смотрите в моем ответе Muranу.
SUnteXx опубликован 25-01-2002 00:48 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
55, Вы меня обогнали:(
ADK опубликован 25-01-2002 06:58 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Добавка своих компонентов в список компонентов Windows идёт с помощью inf файлов. Вот пример.

; RUSLAT95.INF
;
; This is the Setup information file to install
; RusLat95 in the Windows 95 retail product.
;
; Copyright (c) 1996-1997 by Sergey Bykov

[version]
;LayoutFile=layout.inf
signature="$CHICAGO$"
SetupClass=BASE

[DestinationDirs]
RusLat95.win = 25
RusLat95.sys = 11
RusLat95.inf = 17 ; LDID_INF


[SourceDisksNames]
70="Disk A","",1

[SourceDisksFiles]
RusLat95.exe=51,,23552
kbhook.dll= 51,,8704
RusLat95.dll=51,,23040
RusLat95.vxd=51,,5699
RusLat95.hlp=51,,8657
RusLat95.inf=51,,4519
kbdru8.kbd= 51,,473
kbdrut.kbd= 51,,473
kbdrud.kbd= 51,,473

[Optional Components]
RusLat95

[RusLat95]
OptionDesc = %RusLat95Opt_DESC%
Tip = %RusLat95_TIP%
;Parent = AccessTop
;Parent = MultiLanguageTop
CopyFiles = RusLat95.win, RusLat95.sys, RusLat95.inf
DelFiles = RusLat95.win, RusLat95.sys, RusLat95.inf
UpdateInis = RusLat95.links
AddReg = RusLat95.reg
InstallType = 0 ;Manual only
;IconIndex = 40 ;Windows mini-icon for dialogs
Uninstall = RusLat95_remove
Reboot = 1

[RusLat95_remove]
DelFiles = RusLat95.win, RusLat95.sys, RusLat95.inf
DelReg = RusLat95.reg
AddReg = RusLat95.remove.reg
UpdateInis = RusLat95.links.remove


;--- Clipboard Viewer Install Sections ----------------
[RusLat95.win]
RusLat95.exe
kbHook.dll

[RusLat95.sys]
RusLat95.dll
RusLat95.vxd
RusLat95.hlp
kbdru8.kbd
kbdrut.kbd
kbdrud.kbd

[RusLat95.inf]
RusLat95.inf

[RusLat95.links]
;setup.ini, progman.groups,, "group4=%APP_GROUP%" ;creates folder
;setup.ini, progman.groups,, "group5=%START_GROUP%" ;creates folder
;setup.ini, group4,, """%Clipbd_DESC%"", RusLat95.EXE,,,,,%Clipbd_ShortDESC%" ;creates link
;setup.ini, group5,, """%Clipbd_DESC%"", RusLat95.EXE,,,,,%Clipbd_ShortDESC%" ;creates link

[RusLat95.links.remove]
;setup.ini, progman.groups,, "group4=%APP_GROUP%" ;creates folder
;setup.ini, progman.groups,, "group5=%START_GROUP%" ;creates folder
;setup.ini, group4,, """%Clipbd_DESC%""" ;deletes link
;setup.ini, group4,, """%Clipbd_ShortDESC%""" ;deletes link
;setup.ini, group5,, """%Clipbd_DESC%""" ;deletes link
;setup.ini, group5,, """%Clipbd_ShortDESC%""" ;deletes link

[RusLat95.reg]
HKLM,%KEY_OPTIONAL%,"RusLat95",,"RusLat95"
HKLM,%KEY_OPTIONAL%\RusLat95,INF,,"RusLat95.inf"
HKLM,%KEY_OPTIONAL%\RusLat95,Section,,"RusLat95"
HKLM,%KEY_OPTIONAL%\RusLat95,Installed,,"1"
HKLM,%KEY_RUN%,RusLat95,,"RusLat95.exe"

HKCR,CLSID\%H_KEY%,,,"Property Sheet Extension for RusLat95"
HKCR,CLSID\%H_KEY%\InProcServer32,,,"ruslat95.dll"
HKCR,CLSID\%H_KEY%\InProcServer32,ThreadingModel,,"Apartment"
HKLM,%KEY_KB%\RusLat95,,,%H_KEY%

HKLM,%KEY_L%\%KOI8%,,,
HKLM,%KEY_L%\%KOI8%,"layout file",,"kbdru8.kbd"
HKLM,%KEY_L%\%KOI8%,"layout id",,"0088"
HKLM,%KEY_L%\%KOI8%,"layout text",,"Русская (КОИ-8)"
HKLM,%KEY_N%,%KOI8%,,"Русский (КОИ-8)"

;HKLM,%KEY_L%\%TRANS%,,,
;HKLM,%KEY_L%\%TRANS%,"layout file",,"kbdrut.kbd"
;HKLM,%KEY_L%\%TRANS%,"layout id",,"0089"
;HKLM,%KEY_L%\%TRANS%,"layout text",,"Russian Translit"
;HKLM,%KEY_N%,%TRANS%,,"Russian (Translit)"

;HKLM,%KEY_L%\%DOS%,,,
;HKLM,%KEY_L%\%DOS%,"layout file",,"kbdrud.kbd"
;HKLM,%KEY_L%\%DOS%,"layout id",,"0087"
;HKLM,%KEY_L%\%DOS%,"layout text",,"DOS-CP866"
;HKLM,%KEY_N%,%DOS%,,"DOS-CP866"

[RusLat95.remove.reg]
HKLM,%KEY_OPTIONAL%\RusLat95,Installed,,"0"

;------------------------------------------------------

[Strings]
;Non-Localizable strings:
KEY_OPTIONAL = "SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents"
KEY_RUN = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "
KEY_KB = "SOFTWARE\Microsoft\Windows\CurrentVersion\Controls Folder\Keyboard\shellex\PropertySheetHandlers"
H_KEY="{88b8bd00-c65c-11cd-a259-00dd010e8c28}"
KEY_L = "System\CurrentControlSet\control\keyboard layouts"
KEY_N = "System\CurrentControlSet\control\Nls\Locale"
KOI8 ="00008419"
TRANS="00003009"
DOS ="00003409"

;Localizable strings:
;APP_GROUP = "Acessories\System Tools"
;START_GROUP = "Statrup"
;APP_GROUP = "Стандартные\Служебные программы"
;START_GROUP = "Автозагрузка"
RusLat95Opt_DESC = "RusLat95"
RusLat95_TIP = "Индикатор переключения раскладки клавиатуры. Позволяет переключать раскладку нажатием правого Ctrl."
Clipbd_DESC = "Индикатор клавиатуры"
Clipbd_ShortDESC = "Rus Lat 95"

///////////////////////////////////

Посмотри про INF файлы в MSDN, там описаны setup API, может поможет.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.