160 lines
6.6 KiB
Plaintext
160 lines
6.6 KiB
Plaintext
|
-------------------------------------------------------------------------------
|
||
|
NMRK- NetMeeting Resource Kit wizard |
|
||
|
-------------------------------------------------------------------------------
|
||
|
author: ryanha |
|
||
|
-------------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
----------
|
||
|
Overview:
|
||
|
----------
|
||
|
NetMeeting can be configured via the registry. There are several registry
|
||
|
keys that can be tweaked. Because of the fact that tweaking the registry is
|
||
|
error-prone by nature, we do not support users directly tweaking the registry.
|
||
|
With prior releases of the NetMeeting Resource kit, the appropriate registry
|
||
|
keys and values could be tweaked via the Policy Editor, and .POL files. This
|
||
|
was not an effective solution for all of our customers, because many of them
|
||
|
did not use the policy functionality for a variety of reasons. The NMRK
|
||
|
wizard is the solution to this problem. A user is able to create a custom
|
||
|
distributable file of NetMeeting that has the selected properties enabled
|
||
|
based on the information gathered in the Wizard. In short, the user enters
|
||
|
information in a series of dialogs, and the wizard creates a file called
|
||
|
nm21c.exe. This is a custom distributable that the users can use for
|
||
|
deployment in their corporation.
|
||
|
|
||
|
|
||
|
---------------
|
||
|
Implementation
|
||
|
---------------
|
||
|
|
||
|
1.) Gather information from the user through a series of dialogs
|
||
|
2.) Find the nm21.exe original distributable
|
||
|
3.) Clean up our stuff from the temp directory in case we terminated
|
||
|
abnormally in a previous run
|
||
|
4.) Create the directory %TEMP%\nmrktmp
|
||
|
5.) Extract the old distributable to the %TEMP%\nmrktmp directory
|
||
|
6.) Find the MsNetMtg.inf file in the %TEMP%\nmrktmp directory
|
||
|
7.) Alter the MsNetMtg.inf file to contian the new registry settings
|
||
|
based on the information gathered from the wizard dialogs
|
||
|
8.) Copy the nm21.exe file to the output directory with the new filename,
|
||
|
this defaults to:
|
||
|
|
||
|
<nmrk root>\output\nm21c.exe
|
||
|
|
||
|
9.) Use updfile.exe ( from <nmrk root>\tools\ ) to add the new inf file
|
||
|
to the <nmrk root>\output\nm21c.exe file.
|
||
|
10.) Delete the files that we created in the %TEMP%\nmrktmp directory
|
||
|
11.) Delete the directory %TEMP%\nmrktmp
|
||
|
12.) MessageBox to the user that we have successfully created the custom
|
||
|
distributable file.
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
SEE: in file NmAkWiz.cpp: bool CNmAkWiz::_CreateNewInfFile( void )
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
in section [DefaultInstall]
|
||
|
in subsection AddReg add NetMtg.Install.Reg.NMRK section to the end
|
||
|
in subsiction DelReg add NetMtg.Install.DeleteReg.NMRK
|
||
|
|
||
|
in section [DefaultInstall.NT]
|
||
|
in subsection AddReg add NetMtg.Install.Reg.NMRK section to the end
|
||
|
in subsiction DelReg add NetMtg.Install.DeleteReg.NMRK
|
||
|
|
||
|
create section [NetMtg.Install.Reg.NMRK]
|
||
|
add the registry keys to be added here
|
||
|
|
||
|
create section [NetMtg.Install.DeleteReg.NMRK]
|
||
|
add the registry keys to be deleted here
|
||
|
|
||
|
|
||
|
There are some keys in section [NetMtg.Install.DeleteReg.NMRK] that may
|
||
|
also be in an AddReg section elsewhere in the .inf file. In section
|
||
|
[NetMtg.Install.Reg.PerUser], the keys that start with
|
||
|
HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Name"
|
||
|
and HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Count"
|
||
|
|
||
|
must all be deleted because we add them based on information from the
|
||
|
NMRK wizard. The keys are located in the [NetMtg.Install.Reg.NMRK] section.
|
||
|
In section [NetMtg.Install.Reg.PerUser].
|
||
|
|
||
|
|
||
|
--------------
|
||
|
Dependencies |
|
||
|
--------------
|
||
|
1.) The distributable is assumed to be called nm21.exe
|
||
|
If there is a new version of NetMeeting that is distributed ( nm22.exe ),
|
||
|
there are going to be some issues to make sure that nmrk.exe works with
|
||
|
the new distributable.
|
||
|
|
||
|
|
||
|
2.) INF file dependencies ( See item #7 in imelplementation section above )
|
||
|
To locate the keys:
|
||
|
HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Name"
|
||
|
and HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Count"
|
||
|
from the default .inf file, the locations of these keys relative to
|
||
|
their section is hard-coded. Also,the names of the keys is hard-coded.
|
||
|
This was done in the interest of simplicity. However, NMRK is sensitive
|
||
|
to changes in the distributable .inf file. The following assumptions are
|
||
|
made:
|
||
|
|
||
|
1.) Every netmeeting setup environment executes at least one of the sections
|
||
|
[DefaultInstall], or [DefaultInstall.NT].
|
||
|
2.) The order in which the above sections appear is [DefaultInstall],
|
||
|
then [DefaultInstall.NT].
|
||
|
3.) In each of the above sections, there are two subsections, AddReg and
|
||
|
DelReg.
|
||
|
4.) The order in which these subsections appear is AddReg, then DelReg
|
||
|
5.) The default .inf file does not have sections titled
|
||
|
[NetMtg.Install.Reg.NMRK] or [NetMtg.Install.DeleteReg.NMRK]
|
||
|
6.) The default .inf file uses the section [NetMtg.Install.Reg.PerUser]
|
||
|
for all installtion environments.
|
||
|
7.) The default .inf file has the following format for
|
||
|
section [NetMtg.Install.Reg.PerUser]:
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
// somewhere in the MsNetMtg.inf file
|
||
|
|
||
|
|
||
|
[NetMtg.Install.Reg.PerUser]
|
||
|
<WHITE SPACE>
|
||
|
HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Count<ANYCHAR*><ENDLINE>
|
||
|
HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Name<ANYCHAR*><ENDLINE>
|
||
|
HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Name<ANYCHAR*><ENDLINE>
|
||
|
HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Name<ANYCHAR*><ENDLINE>
|
||
|
...
|
||
|
[Strings]
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
// END /* somewhere in the MsNetMtg.inf file */
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
SEE: in file NmAkWiz.cpp: bool CNmAkWiz::_CreateNewInfFile( void )
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
3.) NMRK will fail if the following registry key is not there:
|
||
|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NMRK\InstallationDirectory
|
||
|
NMRK expects to find that registry key. If it is not present,
|
||
|
NMRK will fail with a message stating that the NetMeeting
|
||
|
Resource Kit was not properly installed
|
||
|
4.) File locations:
|
||
|
|
||
|
<nmrk root path> ==
|
||
|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NMRK\InstallationDirectory
|
||
|
|
||
|
nmrk.exe is located in this directory
|
||
|
|
||
|
<nmrk root path>\tools
|
||
|
updfile.exe is located in this directory and is used to update
|
||
|
the .INF file in the custom distributable
|
||
|
|
||
|
<nmrk root path>\output
|
||
|
This is the default location for the nm21c.exe custom distributable
|
||
|
|
||
|
<nmrk root path>\source
|
||
|
This is the default location for the nm21.exe original dist. file
|
||
|
|
||
|
%TEMP%\nmrktmp
|
||
|
This directory is a temp directory that NMRK creates to extract the
|
||
|
files needed to create the custom distributable
|