|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <OBJECT ID=pchealth classid=CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7></OBJECT>
<TITLE>Start Application in Compatibility Mode</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=windows-1252"> <META HTTP-EQUIV=PICS-Label CONTENT='(PICS-1.1 "http://www.rsac.org/ratingsv01.html" l comment "RSACi North America Server" by "[email protected]" r (n 0 s 0 v 0 l 0))'> <META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes"> <META content=en-us http-equiv=Content-Language>
<LINK ID=Stylesheet_Ref0 href="hcp://system/css/shared.css" rel=STYLESHEET type=text/css> <LINK ID=Stylesheet_Ref1 href="hcp://system/css/Behaviors.css" rel=STYLESHEET type=text/css> <LINK ID=Stylesheet_Ref2 href="hcp://system/css/Layout.css" rel=STYLESHEET type=text/css>
<SCRIPT language="javascript"> <!--
var g_sApplicationLocation; // folder where the app is to be found var g_sApplicationDisplayName; // display (friendly) name for an application var g_sApplication; // application to run(full path) var g_sPersistPath; // persist path for this item var g_sCompatLayer; // layer to run (string) var g_sLayerDescription; var g_sCmdLine; var g_nPage = 0; // current page var g_nPages = 10; var g_nStartPage = 0; var g_rgPages = new Array(g_nPages); var g_shell = new ActiveXObject("Wscript.Shell"); var g_fso = new ActiveXObject("Scripting.FileSystemObject"); var g_bProgramsPopulated = false; var g_bAppBrowseProgsInitialized = false; var g_bProgListSelect = false; var g_util = new ActiveXObject("CompatUI.Util"); var g_ProgramSelectMethod; // will be var g_upload = null; // global upload object var g_UnknownLayers; // unknown layers for the item
g_rgPages[0] = 'Intro'; g_rgPages[1] = 'AppSelectMethod'; g_rgPages[2] = 'AppProgramList'; g_rgPages[3] = 'AppBrowseProgs'; g_rgPages[4] = 'FixesLayers'; g_rgPages[5] = 'FixesOther'; g_rgPages[6] = 'Run'; g_rgPages[7] = 'Update'; g_rgPages[8] = 'CompatibilityData'; g_rgPages[9] = 'CompleteWizard';
var g_cIntroPage = 0; var g_cAppPage = 1; var g_cAppProgramListPage = 2; var g_cAppBrowseProgsPage = 3; var g_cFixesLayersPage = 4; var g_cFixesOtherPage = 5; var g_cRunPage = 6; var g_cUpdatePage = 7; var g_cCompatibilityDataPage = 8; var g_cCompleteWizardPage = 9;
var g_cSelectFromList = 0; var g_cSelectRunFromCD = 1; var g_cSelectBrowse = 2;
////////////////////////////////////////////////////////////////////////////////////// // // Localization // var L_strBtnBackCaption_Button = ' < <u>B</u>ack '; // this is the caption for Back button : ' < Back ' var L_strBtnNextCaption_Button = ' N<u>e</u>xt > '; // this is the caption for Next button : ' Next > ' var L_strBtnFinish_Button = ' <u>F</u>inish '; // this is the caption for Finish button var L_strStopBtnCaption_Button = ' Sto<u>p</u> '; var L_strRefreshBtnCaption_Button = ' <u>R</u>efresh '; var L_strCancelBtnCaption_Button = ' Cancel '; var L_strBrowseBtnCaption_Button = 'Bro<u>w</u>se'; var L_strPage2Accelerators_Text = 'RSPEB'; // Attention, localizers: this parameter should be localized and match accelerators on this page // R = Refresh S = Select P - stoP E - nExt B - Back --> // see page 2 below for Select, all the others have to match the buttons above
var L_strPage3Accelerators_Text = 'YEB'; // Attention localizers: this parameter should be localized and match accelerators on this page // Y = tYpe E - nExt B - Back // except for the browse button
var L_strCompatSettingsAdjusted_Text = 'You have successfully adjusted the compatibility settings for this program.'; var L_strCompatSettingsNotAdjusted_Text= 'Compatibility settings were not changed for any programs.'; var L_strBrowseFilter_Text = 'Program files (*.exe;*.com;*.pif;*.cmd;*.bat;*.lnk)|*.exe;*.com;*.pif;*.cmd;*.bat;*.lnk|All files (*.*)|*.*'; var L_strBrowseCaption_DialogTitle = 'Please Select Application';
var L_rgExcludeFiles_FileName = new Array('%ProgramFiles%\\Windows NT\\hypertrm.exe', '%programfiles%\\msn\\msncorefiles\\msn6.exe', '%programfiles%\\messenger\\msmsgs.exe');
var L_strCompatModeRemovableMedia_Text = '<b>Warning:</b> Compatibility mode cannot be set on this program. The selected program is on the network or a removable media device.'; var L_strCompatModePartOfOS_Text = '<b>Warning:</b> Compatibility Mode cannot be set on this program. Selected program is part of the Operating System.'; var L_strCompatModeNotExe_Text = '<b>Warning:</b> Compatibility Mode cannot be set on this object. Selected object is not a program executable file.'; var L_strFileOnTheNet_Text = '<br>Warning: this file is on removable media or on the network'; var L_strNoCompatSettings_Text = 'No compatibility settings were selected.'; var L_strRetryCD_Message = 'Wizard could not locate programs on your CD\nClick OK to retry, Cancel to try and locate the program manually'; var L_strSpecifyValidApp_Message = 'Please specify a valid program'; var L_strChooseProgram_Message = 'Please choose a program from the list';
var L_strErrorUpdatingShortcut_ErrorMessage = 'Error Updating application shortcut for ';
var L_strAppNotFound_ErrorMessage = 'Target Application Not Found!\n\nThe file path is invalid: '; var L_strEnsureExist_ErrorMessage = '\n\nEnsure that you have entered the full and correct path to the target application.\n'; var L_strMustValid_ErrorMessage = 'The application path must point to a valid Program or Shortcut file.';
var L_strErrorStartingApp_ErrorMessage = 'Error starting program:\n\n';
var L_rgSetupPrograms_FileName = new Array(4); // this array contains the names of setup programs L_rgSetupPrograms_FileName[0] = 'setup.cmd'; // this array should not be touched but some more L_rgSetupPrograms_FileName[1] = 'setup.bat'; // (localized) entries may be added L_rgSetupPrograms_FileName[2] = 'setup.exe'; L_rgSetupPrograms_FileName[3] = 'install.exe';
/////////////////////////////////////////////////////////////////////////////////// // // Initialize global objects (compatUI) // function InitCompatUIObjects() { var BrowseProgs = document.all['BrowseProgs']; var ProgList = document.all['SelectProgs'];
var sExclude = ''; var i;
for (i = 0; i < L_rgExcludeFiles_FileName.length; ++i) { if (i > 0) { sExclude += ';'; } sExclude += L_rgExcludeFiles_FileName[i]; }
ProgList.ExcludeFiles = sExclude; ProgList.ExternAccel = L_strPage2Accelerators_Text;
BrowseProgs.ExternAccel = L_strPage3Accelerators_Text; BrowseProgs.BrowseBtnCaption = L_strBrowseBtnCaption_Button; BrowseProgs.accessKey = GetAccessKeyFromCaption(L_strBrowseBtnCaption_Button);
}
function checkRadio(ctlName, choiceValue) { var collection; var i;
collection = document.all[ctlName];
for (i = 0; i < collection.length; i++) { if (collection[i].value.toUpperCase() == choiceValue.toUpperCase()) { collection[i].checked = true; return; } } }
function getRadioText(ctlName, selValue) { var collection; var i; var lblName; var vLabel;
collection = document.all[ctlName];
for (i = 0; i < collection.length; i++) { if (collection[i].value.toUpperCase() == selValue.toUpperCase()) { lblName = 'lbl' + collection[i].value; vLabel = document.all[lblName]; return(vLabel.innerText); } } }
function getRadioValue(ctlName) { var collection; var i;
collection = document.all[ctlName];
for (i = 0; i < collection.length; i++) { if (collection[i].checked) { return(collection[i].value); } } }
function checkCheckbox(ctlName, bCheck) { var ctl = document.all[ctlName]; ctl.checked = bCheck; }
function getCheckValue(ctlName) { var ctl = document.all[ctlName]; if (ctl.checked == true) { return ctl.value; } return null; }
function getCheckText(selValue) {
var lblName = 'lbl' + selValue; var vLabel = document.all[lblName]; if (vLabel != null) { return vLabel.innerText; } // // this means we have no text -- "unknown" value // return '(' + selValue + ')'; }
function ShowDiv(divName, bShow) { var div = document.all[divName]; if (bShow) { // alert('Show ' + divName); div.style.display = ''; } else { // alert('Hide ' + divName); div.style.display = 'none'; } } function InitPage() { for (i = 0; i < g_rgPages.length; ++i) { ShowDiv(g_rgPages[i], g_nStartPage == i); }
// init common buttons (cancel) var btnCancel = document.all('btnCancel'); btnCancel.innerHTML = L_strCancelBtnCaption_Button;
InitCompatUIObjects();
Intro_InitPage(); // init global vars - no further init }
function GetAccessKeyFromCaption(sCaption) { var sUTag = '<u>'; var sUCTag = '</u>'; var sAccessKey = ''; var sCaplc = sCaption.toLowerCase(); var ixU = sCaplc.indexOf(sUTag); if (ixU < 0) { return sAccessKey; } var ixCU = sCaplc.indexOf(sUCTag, ixU); if (ixCU < 0) { return sAccessKey; }
// get the string between the tags sAccessKey = sCaplc.substring(ixU + sUTag.length, ixCU); sAccessKey.toUpperCase(); return sAccessKey; }
function InitNavButtons(bBackEnabled, sNextButtonValue) { var frmNav = document.forms('frmNav');
var btnBack = frmNav('btnBack'); btnBack.innerHTML = L_strBtnBackCaption_Button; btnBack.accessKey = GetAccessKeyFromCaption(L_strBtnBackCaption_Button); btnBack.disabled = !bBackEnabled;
var btnNext = frmNav('btnNext'); btnNext.disabled = false; if (null != sNextButtonValue) { btnNext.innerHTML = sNextButtonValue; } else { btnNext.innerHTML = L_strBtnNextCaption_Button; } btnNext.accessKey = GetAccessKeyFromCaption(btnNext.innerHTML); btnNext.focus(); }
// // selected flags //
var OFN_HIDEREADONLY = 0x00000004; var OFN_PATHMUSTEXIST = 0x00000800; var OFN_FILEMUSTEXIST = 0x00001000; var OFN_EXPLORER = 0x00080000; // new look commdlg var OFN_NODEREFERENCELINKS = 0x00100000; // prevents a link from being cracked var OFN_ENABLESIZING = 0x00800000; var OFN_FORCESHOWHIDDEN = 0x10000000; // Show All files including System and hidden files
var g_ofnFlags = OFN_HIDEREADONLY| OFN_PATHMUSTEXIST| OFN_FILEMUSTEXIST| OFN_NODEREFERENCELINKS;
// // ====================== Page Init Code ==================================== // //
function Intro_InitPage(nPageFrom) { InitNavButtons(false, null); }
function ProgListAction() { var btnAction = document.all['btnProgListAction']; switch(btnAction.name) { case 'Cancel': CancelProgScan(); break;
case 'Scan': RefreshProgs(); break; }
}
function SetProglistAction(proglistAction) { var btnAction = document.all['btnProgListAction'];
btnAction.name = proglistAction;
switch(proglistAction) { case 'Cancel': btnAction.innerHTML = L_strStopBtnCaption_Button; break; case 'Scan': btnAction.innerHTML = L_strRefreshBtnCaption_Button; break; } btnAction.accessKey = GetAccessKeyFromCaption(btnAction.innerHTML); }
function BlockNextButton(bBlock) { var frmNav = document.forms('frmNav'); var btnNext = frmNav('btnNext'); var btnBack = frmNav('btnBack'); if (bBlock) { btnBack.focus(); } btnNext.disabled = bBlock; // bummer, next is disabled if (!bBlock) { btnNext.focus(); } }
function AppProgramList_InitPage(nPageFrom) {
var SelectProgs = document.all['SelectProgs']; var BrowseProgs = document.all['BrowseProgs'];
BrowseProgs.Enabled = false; BrowseProgs.Valid = false;
SelectProgs.Enabled = true; SelectProgs.Valid = true;
InitNavButtons(true, null);
if (!g_bProgramsPopulated) { BlockNextButton(true); SetProglistAction('Cancel'); } else { SetProglistAction('Scan'); }
}
function CancelProgScan() { var SelectProgs = document.all['SelectProgs']; SelectProgs.CancelPopulateList(); }
function RefreshProgs() { var SelectProgs = document.all['SelectProgs']; var btnNext = document.all['btnNext'];
BlockNextButton(true); SetProglistAction('Cancel'); SelectProgs.PopulateList(); }
function AppBrowseProgs_InitPage(nPageFrom) {
var BrowseProgs = document.all['BrowseProgs']; var oShell = new ActiveXObject('Shell.Application');
// DEBUGDEBUG var SelectProgs = document.all['SelectProgs']; SelectProgs.Enabled = false; SelectProgs.Valid = false;
BrowseProgs.Enabled = true; BrowseProgs.Valid = true;
// localization BrowseProgs.BrowseFilter = L_strBrowseFilter_Text; BrowseProgs.BrowseFlags = g_ofnFlags; BrowseProgs.BrowseTitle = L_strBrowseCaption_DialogTitle;
var shFolder = oShell.Namespace(0x2); // ssPrograms, Folder2 object BrowseProgs.BrowseInitialDirectory = shFolder.Self.Path; // convert to folder item and get path
InitNavButtons(true, null);
}
function Page_NavigateComplete(nPageTo) { if (nPageTo == g_cAppBrowseProgsPage) { if (g_bAppBrowseProgsInitialized) { OnBrowseProgsReady(); } } }
function OnBrowseProgsReady() { var BrowseProgs = document.all['BrowseProgs']; BrowseProgs.focus(); }
function AppSelectMethod_InitPage(nPageFrom) { InitNavButtons(true, null); }
function FixesLayers_InitPage(nPageFrom) { var sCompatLayer;
if (nPageFrom < g_cFixesLayersPage) { // we want to find whether it is a motion forward or backwards sCompatLayer = GetApplicationLayer(); ParseLayers(sCompatLayer); }
var bShowLUA = g_util.CheckAdminPrivileges(); var chkLUA = document.all['chkSimAdmin']; chkLUA.style.display = bShowLUA ? '' : 'none'; var lblLUA = document.all['lblLUA']; lblLUA.style.display = bShowLUA ? '' : 'none';
InitNavButtons(true, null); }
function CompatibilityData_InitPage(nPageFrom) {
ClearUploadInformation();
g_upload = new ActiveXObject("CompatUI.Upload");
// // prepare for an upload // PrepareUploadInformation(g_upload); InitNavButtons(true, null);
// // make sure yes and no -- neither is checked // document.all['chkUploadInfo' ].checked = false; document.all['chkNoUploadInfo'].checked = false;
// // disable next button for now please // BlockNextButton(true);
}
function ClearUploadInformation() { if (g_upload != null) { g_upload.DeleteTempFiles(); delete g_upload; g_upload = null; } }
function SendCompatibilityReport(bSend) { if (g_upload == null) { return; } if (bSend) { g_upload.SendReport(); } ClearUploadInformation(); }
function ViewTempFileList() { g_upload.ShowTempFiles(); } function CompleteWizard_InitPage(nPageFrom) { // // see if our app was system // var UpdateAction = getRadioValue('UpdateShortcut'); var divCompatSettings = document.all['divCompatSettings']; var sSettings;
if (UpdateAction == 'Yes') { sSettings = L_strCompatSettingsAdjusted_Text; } else { sSettings = L_strCompatSettingsNotAdjusted_Text; }
divCompatSettings.innerHTML = sSettings;
InitNavButtons(true, L_strBtnFinish_Button);
var btnNext = document.all['btnNext']; btnNext.accessKey = 'F'; }
// // Read autorun.inf and be happy // // returns dictionary object with all the relevant information // // autorunToken may be anything that comes with autorun.xxx
function ReadAutorunContent(ts, autorunToken) { var line; var re; // regexpression var rr; // result of a match
var dictAutorun = null; var ReadingContent = false;
while (!ts.AtEndOfStream) { line = ts.ReadLine();
// look for 'open' token // parse the freaking line re = /\[\s*autorun(\.\S+){0,}\s*\]/i rr = line.match(re); if (rr != null) { // see if this is autorun.architecture if (ReadingContent) { break; }
if (rr.length > 1 && autorunToken != null) { autorunToken.toLowerCase(); rr[1].toLowerCase();
if (rr[1] != autorunToken) { continue; } }
dictAutorun = new ActiveXObject("Scripting.Dictionary"); ReadingContent = true;
} else if (dictAutorun != null) { re = /\s*(\w+)\s*=\s*(.+)/i rr = line.match(re); if (rr != null && rr.length >= 3 && !dictAutorun.Exists(rr[1])) { // // is this a 2 part match? // rr[1].toLowerCase(); dictAutorun.Add(rr[1], rr[2]); } } } return dictAutorun; }
function ReadAutorunInf(driveName) { var sAutorun = driveName + 'Autorun.inf'; var f = null; var ts; var dictAutorun; var autorunToken;
try { if (g_fso.FileExists(sAutorun)) { f = g_fso.GetFile(sAutorun); } } catch (e) { f = null; }
if (f == null) { return null; }
autorunToken = '.' + g_shell.Environment.Item('PROCESSOR_ARCHITECTURE');
while(true) {
ts = f.OpenAsTextStream(1); // open for reading if (ts == null) { return null; }
dictAutorun = ReadAutorunContent(ts, autorunToken); ts.Close();
if (dictAutorun != null) { // if we have the dictionary -- get out now return dictAutorun; }
if (autorunToken != null) { // if we have tried architecture-specific item, try generic one now autorunToken = null; } else { // we have tried generic -- found nothing return null; } }
return dictAutorun; }
function removeParams(sPath) { var sPurePath; try { sPurePath = g_util.RemoveArgs(sPath); } catch(e) { sPurePath = sPath; } return sPurePath; }
// // reads and sets globals for apphelp's benefit // // function GetAutorunInformation(driveName, dictAutorun, IsAutorun) { var sApplication = null; var sApplicationDisplayName = null; var sApplicationPath = null; var drive;
if (dictAutorun.Exists('label')) { sApplicationDisplayName = dictAutorun.Item('label'); } if (sApplicationDisplayName == null) { drive = g_fso.GetDrive(driveName); sApplicationDisplayName = drive.VolumeName + ' (' + driveName + ')'; }
if (dictAutorun.Exists('open')) { sApplication = dictAutorun.Item('open'); } else { // // no open verb -- we will try this - but what do we do with this item? // if (dictAutorun.Exists('shellexecute')) { sApplication = dictAutorun.Item('shellexecute'); if (sApplication != null && sApplication.length) { // // BUGBUG - remove before we ship // // This case was never found in our testing } } }
// convert sApplication into a friendly name // see if sApplication has a friendly path
if (sApplication == null || !sApplication.length) { return false; }
// // sApplicationLocation // if (sApplication.substr(0, 2) == '\\\\') { // this is UNC, do not touch ; } else if (sApplication.substr(1, 1) == ':') { // has a drive name, do not touch ; } else if (sApplication.substr(0, 1) == '%') { // has env var in it -- do not touch ; } else if (sApplication.substr(0, 1) == '\\') { // prepend sApplication = driveName.substr(0, 2) + sApplication; } else { sApplication = driveName + sApplication; }
// sanitize parameters sApplicationPath = removeParams(sApplication);
// // make sure that whatever chemistry we did here -- it worked // if (!validateFile(sApplicationPath)) { return false; }
if (IsAutorun) { g_sApplicationLocation = 'AutoRun (' + driveName + ')'; } else { g_sApplicationLocation = 'Setup Application (' + driveName + ')'; } g_sApplication = sApplication; g_sApplicationDisplayName = sApplicationDisplayName; g_sPersistPath = null; g_sCmdLine = g_sApplication; return true; }
function ScanForAutorun() { var driveLetter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var drive = null; var dictAutorun = null; var sAutorun; var bRet = false;
for (i = 0; i < 26; ++i) { driveName = driveLetter.charAt(i) + ':\\'; if (!g_fso.DriveExists(driveName)) { continue; }
drive = g_fso.GetDrive(driveName); if (drive == null || drive.DriveType != 4 || !drive.IsReady) { continue; }
dictAutorun = ReadAutorunInf(driveName); if (dictAutorun != null) { break; } }
if (dictAutorun == null) { return false; }
// // see what we have learnt //
bRet = GetAutorunInformation(driveName, dictAutorun, true); delete dictAutorun; return bRet; }
function Update_InitPage(nPageFrom) { var frmUpdate = document.forms('frmUpdate'); var divMedia = document.all['MediaWarning']; var drive; var driveName; var sAppPath; var bUpdateDisabled = false; var optNoUpdate = document.all['chkNo'];
sAppPath = ExpandSpecialFolders(g_sApplication);
driveName = g_fso.GetDriveName(sAppPath); drive = g_fso.GetDrive(driveName);
if (drive.DriveType == 1 || drive.DriveType == 3) { // // removable media or the network - disable both the check and the label // divMedia.innerHTML = L_strCompatModeRemovableMedia_Text; bUpdateDisabled = true; } else if (g_util.IsSystemTarget(g_sApplication)){ divMedia.innerHTML = L_strCompatModePartOfOS_Text; bUpdateDisabled = true; } else if (!g_util.IsExecutableFile(g_sApplication)) { divMedia.innerHTML = L_strCompatModeNotExe_Text; bUpdateDisabled = true; }
if (bUpdateDisabled) { optNoUpdate.checked = true; divMedia.style.display = ''; }
frmUpdate('chkYes').disabled = bUpdateDisabled; document.all['lblYes'].disabled = bUpdateDisabled; divMedia.style.display = bUpdateDisabled ? '' : 'none';
InitNavButtons(true, null); }
function Run_InitPage(nPageFrom) { var divLayer; var divApp;
var shtml = ''; var sAppName;
divApp = document.all['divTargetApp']; divLayer = document.all['divCompatLayer'];
// // what goes as an app name? // if (g_sApplicationDisplayName != null) { shtml = '<label title=\"' + g_sApplication +'\">' + g_sApplicationDisplayName + '</label>'; } else { shtml = g_sApplication; }
// if (g_sApplicationDisplayName != null) { // sAppName = g_sApplicationDisplayName; // } else { // sAppName = g_sApplication; // }
// shtml = sAppName;
// if (g_sApplicationLocation != null) { // shtml += '<br>' + g_sApplicationLocation; // }
// if (g_sApplicationDisplayName != null) { // shtml += '<br>' + g_sApplication; // }
divApp.innerHTML = shtml; divApp.style.display = '';
// also check drive type, do warning if net or cd-r
var drive; var driveName; driveName = g_fso.GetDriveName(g_sApplication); drive = g_fso.GetDrive(driveName); if (drive.DriveType == 1 || drive.DriveType == 3) { divApp.innerHTML += L_strFileOnTheNet_Text; }
if (g_sLayerDescription == null || g_sLayerDescription.length == 0) { divLayer.innerHTML = L_strNoCompatSettings_Text; } else { divLayer.innerHTML = g_sLayerDescription; }
InitNavButtons(true, null); }
function validateFile(sFileName) { if (sFileName == null) { return false; }
sPath = ExpandSpecialFolders(sFileName);
// sPath = GetRealPathName(sPath);
return g_fso.FileExists(sPath); }
function NavigateToPage(nPage) {
var frmNav = document.forms('frmNav');
// // if we are moving beyond the last or before the first -- navigate to // the first page // if (nPage < 0 || nPage >= g_nPages) { nPage = 0; }
if (eval('typeof(' + g_rgPages[nPage] + '_InitPage)') == 'function') { eval(g_rgPages[nPage] + '_InitPage(' + g_nPage + ')'); }
// show the divs ShowDiv(g_rgPages[g_nPage], false); g_nPage = nPage; ShowDiv(g_rgPages[g_nPage], true);
if (eval('typeof(Page_NavigateComplete)') == 'function') { eval('Page_NavigateComplete(' + g_nPage + ')'); } }
function CheckForSetupProgsOnCD() { var driveLetter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var drive = null; var dictAutorun = null; var sAutorun; var dictAutorun = null; var bRet; var i, j; var driveName;
var sSetup;
for (i = 0; i < 26; ++i) { driveName = driveLetter.charAt(i) + ':\\'; if (!g_fso.DriveExists(driveName)) { continue; }
drive = g_fso.GetDrive(driveName); if (drive == null || drive.DriveType != 4 || !drive.IsReady) { continue; }
for (j = 0; j < L_rgSetupPrograms_FileName.length; j++) { sSetup = driveName + L_rgSetupPrograms_FileName[j]; if (!g_fso.FileExists(sSetup)) { continue; } // // we have an install program //
var dictAutorun = new ActiveXObject("Scripting.Dictionary"); dictAutorun.Add('open', sSetup); bRet = GetAutorunInformation(driveName, dictAutorun, false); delete dictAutorun; if (bRet) { return true; } } }
return false; }
function getAppFromCD() { var bret;
g_bProgListSelect = false;
bret = ScanForAutorun(); if (!bret) { bret = CheckForSetupProgsOnCD(); }
return bret; }
function getBrowseProgsSel() {
var BrowseProgs = document.all['BrowseProgs'];
g_bProgListSelect = false;
g_sApplication = BrowseProgs.FileName; g_sPersistPath = null; g_sApplicationDisplayName = null; g_sApplicationLocation = null; g_sCmdLine = g_sApplication; // now validate // return validateFile(g_sApplication); }
function getProgListSel() { var SelectProgs = document.all['SelectProgs'];
SelectProgs.GetSelectedItem();
g_sApplicationDisplayName = SelectProgs.SelectionName; if (g_sApplicationDisplayName == null) { return false; } g_sApplicationLocation = SelectProgs.GetSelectionInformation(1); // folder g_sApplication = SelectProgs.GetSelectionInformation(4); // we will run this g_sPersistPath = SelectProgs.GetSelectionInformation(2); // path that we shall persist g_sCmdLine = SelectProgs.GetSelectionInformation(3);
g_bProgListSelect = true;
// validate return validateFile(g_sPersistPath); }
function addLayerInfo(sCompatLayer) { if (g_sCompatLayer.length) { g_sCompatLayer += ' '; }
g_sCompatLayer += sCompatLayer;
if (g_sLayerDescription.length) { g_sLayerDescription += '<br>'; }
g_sLayerDescription += getCheckText(sCompatLayer); }
function getLayerSelection() {
g_sCompatLayer = ''; g_sLayerDescription = '';
var sRadioLayer = 'layer'; var sCompatLayer;
// // emulation mode // sCompatLayer = getRadioValue(sRadioLayer); if (sCompatLayer != 'None') { g_sCompatLayer = sCompatLayer; g_sLayerDescription = getRadioText(sRadioLayer, g_sCompatLayer); }
sCompatLayer = getCheckValue('chk256color'); if (sCompatLayer != null) { addLayerInfo(sCompatLayer); }
sCompatLayer = getCheckValue('chk640x480'); if (sCompatLayer != null) { addLayerInfo(sCompatLayer); }
sCompatLayer = getCheckValue('chkNoThemes'); if (sCompatLayer != null) { addLayerInfo(sCompatLayer); }
sCompatLayer = getCheckValue('chkSimAdmin'); if (sCompatLayer != null) { addLayerInfo(sCompatLayer); }
if (g_UnknownLayers.length) { addLayerInfo(g_UnknownLayers); }
// alert(g_sCompatLayer + '\n' + g_sLayerDescription); return (g_sCompatLayer.length > 0); }
function onBtnNext() { var frmNav = document.forms('frmNav');
// cancel calling action if (event != null) { event.returnValue = false; }
var nPage = g_nPage + 1;
// do what we need to do for this page switch(g_nPage) { case g_cIntroPage: break; // nothing to do for the first page
case g_cAppPage: // App page -- extract application choice
var prog = getRadioValue('progClass'); switch(prog) { case 'CDProg': // // run program from CDROM // var bFound; var bRetry;
do { bRetry = false; bFound = getAppFromCD();
if (!bFound) { bRetry = confirm(L_strRetryCD_Message); }
} while(bRetry); if (bFound) { nPage = g_cFixesLayersPage; g_ProgramSelectMethod = g_cSelectRunFromCD; } else { nPage = g_cAppBrowseProgsPage; g_ProgramSelectMethod = g_cSelectBrowse; } break;
case 'ProgList': // // choose the program from the list // nPage = g_cAppProgramListPage; g_ProgramSelectMethod = g_cSelectFromList; break;
case 'BrowseProg': nPage = g_cAppBrowseProgsPage; g_ProgramSelectMethod = g_cSelectBrowse; break; }
break;
case g_cAppProgramListPage: // have we chosen anything here? // if (!getProgListSel()) { alert(L_strChooseProgram_Message); return; } nPage = g_cFixesLayersPage; break;
case g_cAppBrowseProgsPage: // // validate // if (!getBrowseProgsSel()) { alert(L_strSpecifyValidApp_Message); return; } nPage = g_cFixesLayersPage; break;
case g_cFixesLayersPage: // nothing to do here break;
case g_cFixesOtherPage: // getLayerSelection(); break;
case g_cRunPage: // run page (separate button for run, nothing to do here) // clicked "Next" on run page, run the app if (!RunApp()) { switch(g_ProgramSelectMethod) { case g_cSelectFromList: nPage = g_cAppProgramListPage; break;
case g_cSelectBrowse: nPage = g_cAppBrowseProgsPage; break;
case g_cSelectRunFromCD: nPage = g_cAppPage; break; } } break;
case g_cUpdatePage: // update page // // // var UpdateAction = getRadioValue('UpdateShortcut'); switch(UpdateAction) { case 'Yes': bSuccess = UpdateAppShortcut(true, null); break;
case 'No': break;
default: nPage = g_cFixesLayersPage; break; }
// // we go to the compat report only if this is not a system target ?? //
if (nPage == g_cCompatibilityDataPage) { if (g_util.IsSystemTarget(g_sApplication) || !g_util.IsExecutableFile(g_sApplication)) { nPage = g_cCompleteWizardPage; } } break;
case g_cCompatibilityDataPage: // // compat data page - send report now // var SendReport = getRadioValue("UploadInfo"); SendCompatibilityReport(SendReport == 'Yes'); break;
case g_cCompleteWizardPage: // // on complete wizard // CompleteWizard(); nPage = g_cCompleteWizardPage; // no way we're moving break;
}
// // this also sets the global g_nPage to the right page number // NavigateToPage(nPage);
}
function PrepareUploadInformation(oUpload) { var UpdateAction = getRadioValue('UpdateShortcut'); var bCompatSuccess = (UpdateAction == 'Yes'); var sAppDisplayName; var sCmd; var lMediaType = 0; // unknown
sAppDisplayName = g_sApplicationDisplayName; if (g_sApplicationDisplayName == null || !g_sApplicationDisplayName.length) { sAppDisplayName = g_sApplication; }
// // check whether we have a command line (this should be cracked) // sCmd = g_util.GetExePathFromObject(g_sApplication); if (sCmd == null) { sCmd = g_sApplication; }
// // obtain drive type // var driveName = g_fso.GetDriveName(sCmd); if (driveName != null) { var oDrive = g_fso.GetDrive(driveName); if (oDrive != null) { lMediaType = oDrive.DriveType; } }
// // ===== Upload UI ===== //
var sErrorText; // var sErrorDetail; // var sPlea;
// localization for this is not needed (no ui) // sErrorText = 'This report contains information about the compatibility settings ' + 'you tried and whether these settings resolved the problem.'
// sErrorDetail = sErrorText;
// sPlea = 'If you send this report to Microsoft, it will help improve future program compatibility. '; // sPlea += 'The report will be anonymous and confidential.'
// // Internal Microsoft Site // BUGBUG remove before we SHIP // // oUpload.SetKey ('Server', 'officewatson'); // oUpload.SetKey ('Server', 'watson.microsoft.com');
oUpload.SetKey ('Stage1URL', '/StageOne'); oUpload.SetKey ('Stage2URL', '/dw/AppCompatTwo.asp'); oUpload.SetKey ('TitleName', 'Program Compatibility Report'); oUpload.SetKey ('Brand', 'SYSTEMRESTORE'); oUpload.SetKey ('ErrorText', sErrorText); oUpload.SetKey ('HeaderText', 'A Program Compatibility Report has been created'); oUpload.SetKey ('UI LCID', '1033');
// oUpload.SetKey ('ErrorDetail', sErrorDetail); // oUpload.SetKey ('ErrorSig', 'Program Compatibility Wizard: ' + (bCompatSuccess ? 'Success' : 'Failure')); // oUpload.SetKey ('Caption', 'Program Compatibility Report'); // oUpload.SetKey ('Plea', sPlea); // // ===== Text on buttons ===== // // oUpload.SetKey ('ReportButton', '&Send Report'); // oUpload.SetKey ('NoReportButton', '&Don\'t Send');
// oUpload.SetKey ('Reportee', 'Microsoft'); // use the flags below to go headless var fDwFlags = 0x80; // var fdwFlags = 0x40;
oUpload.SetKey ('Flags', fDwFlags); // alert('Display name:' + sAppDisplayName + ' cmd: ' + sCmd + ' media: ' + lMediaType + ' success : ' + bCompatSuccess + ' Layer: ' + g_sCompatLayer); var bSuccessGeneralInfo = oUpload.AddDescriptionFile(sAppDisplayName, sCmd, // actual command that we ran lMediaType, bCompatSuccess, g_sCompatLayer);
var bSuccessMatchingInfo = oUpload.AddMatchingInfo(g_sApplication); var bSuccessManifest = oUpload.CreateManifestFile();
return (bSuccessMatchingInfo && bSuccessManifest && bSuccessGeneralInfo);
}
function CompleteWizard() { pchealth.close(); }
function onBtnBack() { var nPage = g_nPage - 1;
// // check the page we're going back from // if (event != null) { event.returnValue = false; }
switch(g_nPage) { case g_cFixesLayersPage: switch(g_ProgramSelectMethod) { case g_cSelectFromList: nPage = g_cAppProgramListPage; break;
case g_cSelectRunFromCD: nPage = g_cAppPage; break;
case g_cSelectBrowse: nPage = g_cAppBrowseProgsPage; break; } break; case g_cAppBrowseProgsPage: nPage = g_cAppPage; break;
case g_cCompatibilityDataPage: // if we are on a data page -- we have gathered some info // clear it if so ClearUploadInformation(); break;
case g_cCompleteWizardPage: nPage = g_cUpdatePage; break;
}
NavigateToPage(nPage); }
function onBtnCancel() {
if (event != null) { event.returnValue = false; }
ClearUploadInformation(); pchealth.close(); }
function ExpandSpecialFolders(sPath) { var Path = sPath; Path = Path.replace(/%WINDIR%/gi, g_fso.GetSpecialFolder(0)); Path = Path.replace(/%SYSTEM%/gi, g_fso.GetSpecialFolder(1)); Path = Path.replace(/%TEMP%/gi, g_fso.GetSpecialFolder(2)); return(Path); }
function IsDriveReady(sAppPath) {
var driveName; var drive;
driveName = g_fso.GetDriveName(sAppPath); if (!g_fso.DriveExists(driveName)) { return false; }
drive = g_fso.GetDrive(driveName); if (drive == null || !drive.IsReady) { return false; } return true; }
function RunApp() { var CompatLayer = g_sCompatLayer; var TargetApp = g_sApplication; var AppPath = ExpandSpecialFolders(TargetApp); var sLayerSave; var Result; var bSuccess = false; var AppName = removeParams(AppPath);
// // Verify target file path //
if (!IsDriveReady(AppName) || !g_fso.FileExists(AppName)) { alert(L_strAppNotFound_ErrorMessage + AppName + L_strEnsureExist_ErrorMessage + L_strMustValid_ErrorMessage); return false; }
// // get the layers associated with this guy // sLayerSave = GetApplicationLayer();
try { if (sLayerSave != null) { // alert(sLayerSave); UpdateAppShortcut(false, null); } // // run // Result = g_util.RunApplication(CompatLayer, AppPath, false); // enable log bSuccess = (Result == 0); } catch(e) {
} if (sLayerSave != null) { UpdateAppShortcut(true, sLayerSave); }
if (!bSuccess) { alert(L_strErrorStartingApp_ErrorMessage + AppPath); }
return bSuccess; }
function GetRealPathName(lpszPath) { var AppPath;
AppPath = g_util.GetExePathFromObject(lpszPath); if (AppPath == null) { AppPath = lpszPath; }
return AppPath; }
function GetApplicationLayer() { var CompatLayer = g_sCompatLayer; var TargetApp; var AppPath;
if (g_sPersistPath != null) { TargetApp = g_sPersistPath; } else { AppPath = ExpandSpecialFolders(g_sApplication); TargetApp = GetRealPathName(AppPath); }
try { CompatLayer = g_util.GetItemKeys(TargetApp); } catch(e) { CompatLayer = null; }
return CompatLayer; }
function ParseLayers(sCompatLayer) { // // parse the freakin string // // alert('parse');
checkRadio ('layer', 'None'); checkCheckbox('chk256color', false); checkCheckbox('chk640x480', false); checkCheckbox('chkNoThemes', false); checkCheckbox('chkSimAdmin', false); g_UnknownLayers = '';
if (sCompatLayer == null) { return; }
var re = /\s+/i var tokens = sCompatLayer.split(re); var i;
for (i = 0; i < tokens.length; ++i) {
tok = tokens[i].toUpperCase();
switch(tok) { case 'WIN2000': case 'WIN95': case 'NT4SP5': case 'WIN98': case 'WIN2000': // this item is a check-me shim checkRadio('layer', tok); break; case '256COLOR': checkCheckbox('chk256color', true); break; case '640X480': checkCheckbox('chk640x480', true); break;
case 'DISABLETHEMES': checkCheckbox('chkNoThemes', true); break;
case 'LUA': checkCheckbox('chkSimAdmin', true); break;
default: if (g_UnknownLayers.length > 0) { g_UnknownLayers += ' '; } g_UnknownLayers += tok; break; }
} }
function UpdateAppShortcut(bStore, sCompatLayer) {
var CompatLayer; var TargetApp; var AppPath; var bSuccess;
if (!bStore) { CompatLayer = null; } else { if (sCompatLayer == null) { if (g_sCompatLayer == null || !g_sCompatLayer.length) { CompatLayer = null; } else { CompatLayer = g_sCompatLayer; } } else { CompatLayer = sCompatLayer; } }
if (g_sPersistPath != null) { TargetApp = g_sPersistPath; } else { AppPath = ExpandSpecialFolders(g_sApplication); TargetApp = GetRealPathName(AppPath); }
try {
bSuccess = g_util.SetItemKeys(TargetApp, CompatLayer); } catch(e) { bSuccess = false; } // // alert('setting ' + TargetApp + ' to ' + CompatLayer); // var SelectProgs = document.all['SelectProgs']; // alert('line: ' + g_sCmdLine); if (g_sCmdLine != null && g_sCmdLine.length != 0) { SelectProgs.UpdateListItem(g_sCmdLine, CompatLayer); }
if (!bSuccess) { alert(L_strErrorUpdatingShortcut_ErrorMessage + TargetApp); }
return bSuccess; }
function EnableNext() { BlockNextButton(false); }
function onRadioDblClick() { onBtnNext(); }
function SelectProgs_DblClk(lFlags) { // // retrieve selection, move on to the next page // onBtnNext(); return 0; }
function BrowseProgs_SelectionComplete() { // // retrieve selection, move on to the next page // onBtnNext(); return 0; }
function SelectProgs_ProgramListReady() { var btnNext = document.all['btnNext']; var progList = document.all['SelectProgs'];
if (g_nPage == g_cAppProgramListPage) { btnNext.disabled = false; progList.focus(); } SetProglistAction('Scan'); g_bProgramsPopulated = true; }
//--> </SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=BrowseProgs EVENT="SelectionComplete()"> <!--
BrowseProgs_SelectionComplete(); //--> </SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=BrowseProgs EVENT="StateChanged(lState)"> <!--
// handle state changed for the control if (lState == -5) { OnBrowseProgsReady(); g_bAppBrowseProgsInitialized = true; }
//--> </SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=SelectProgs EVENT="DblClk(lFlags)"> <!--
SelectProgs_DblClk(lFlags); //--> </SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=SelectProgs EVENT="ProgramListReady()"> <!--
SelectProgs_ProgramListReady(); //--> </SCRIPT>
</head>
<body onLoad="javascript:InitPage()" style="margin-top:2em; margin-left:22px; margin-right:22px">
<!-- header -->
<table border=0 cellpadding=0 cellspacing=0 height=100% width=100% style="margin-top:0; margin-bottom:0"> <tr style="margin-bottom:0em; margin-top:0em"> <td> <div id=loc00 class="sys-font-heading3 sys-rhp-color-title" style="margin-bottom:1em; margin-top:0em"> Program Compatibility Wizard </div> </td> </tr>
<tr valign=top height=100%> <td>
<!-- Page 0 - Intro --> <Div id=Intro style="height:100%; margin-top:0em; margin-bottom:0em"> <form name=frmIntro onSubmit='javascript:onBtnNext()' method=post action=""> <table border=0 cellspacing=0 cellpadding=0 height=100% style="margin-top:0; margin-bottom:0"> <tr valign=top> <td> <Div style="height:90%; overflow-y:auto"> <Div id=loc01 class="sys-font-body-bold sys-color-body" style="margin-bottom:1em; margin-top:0em"> <b>Welcome to the Program Compatibility Wizard</b> </Div>
<Div id=loc02 class="sys-font-body sys-color-body" style="margin-bottom:2em; margin-top:0em"> If you are experiencing problems with a program that worked correctly on an earlier version of Windows, this wizard helps you select and test compatibility settings that may fix those problems. </Div>
<Div id=loc03 class="sys-font-body sys-color-body" style="margin-top:0em"> <b>Caution:</b> It is recommended that you do not use this wizard for older virus detection, backup, or system programs. </Div> </Div>
</td> </tr>
<tr style="height:2.5em"> <td> <Div id=loc04 class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-bottom:1em"> To continue, click Next. </Div> </td> </tr> </table> </form> </Div>
<!-- Page 1 - App -->
<DIV id=AppSelectMethod style="height:100%; display:none; overflow-y:auto"> <form name="frmApp" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action=""> <TABLE border=0 cellspacing=0 cellpadding=0 width=100%> <TR> <TD> <Div id=loc11 class="sys-font-body-bold sys-color-body" style="margin-bottom:1em; margin-top:0em"> <b>How do you want to locate the program that you would like to run with compatibility settings?</b> </Div> <Div class="sys-font-body sys-color-body" style="margin-left:0; margin-bottom:1em; margin-top:0em"> <INPUT CHECKED name=progClass type=radio value=ProgList id=chkProgList ondblclick="javascript:onRadioDblClick()"> <label id=lblProgList for=chkProgList title="Choose a program from the list" ondblclick="javascript:onRadioDblClick()" ACCESSKEY="h"> I want to c<u>h</u>oose from a list of programs </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-bottom:1em; margin-top:0em"> <INPUT name=progClass type=radio value=CDProg id=chkCDProg ondblclick="javascript:onRadioDblClick()"> <label id=lblCDProg for=chkCDProg title="I want to use the program in the CD-ROM drive" ondblclick="javascript:onRadioDblClick()" ACCESSKEY="u"> I want to <u>u</u>se the program in the CD-ROM drive </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-bottom:1em; margin-top:0em"> <INPUT name=progClass type=radio value=BrowseProg id=chkBrowseProg ondblclick="javascript:onRadioDblClick()"> <label id=lblBrowseProg for=chkBrowseProg title="Browse for the application" ondblclick="javascript:onRadioDblClick()" ACCESSKEY="a"> I want to loc<u>a</u>te the program manually </label> </Div> </TD> </TR> </TABLE> </form> </DIV>
<!-- Page 2 - AppProgramList -->
<DIV id=AppProgramList style="display:none; height:100%; margin-top:0em; margin-bottom:0em"> <form name="frmAppProgramList" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action=""> <TABLE border=0 cellspacing=0 cellpadding=0 width=100% height=100% style="margin-top:0; margin-bottom:0"> <TR valign=top> <TD> <Div style="height:90%; overflow-y:auto"> <Div id=loc21 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Which program do you want to run with compatibility settings?</b> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:0em"> <label id=lblSelectProgs for=SelectProgs title="Select a program" ACCESSKEY="S"> <u>S</u>elect a program: </label> <div class="sys-font-body sys-color-body" style="margin-top:0.25em; margin-bottom:0em"></div> <!-- No accesskey is needed for this object tag - it is complimentary (from the label) --> <OBJECT ID=SelectProgs classid=CLSID:B9B7D40C-0C41-4EAF-B0B5-6B41378C7F48 width="100%" height="80%"> </OBJECT> </Div> </Div> </TD> </TR> <tr style="height:3em"> <td> <Div id=divProgListAction class="sys-font-body sys-color-body" style="margin-bottom:1em; margin-top:0em"> <BUTTON value="Action" onclick="javascript:ProgListAction()" id=btnProgListAction style="width:6em; margin-left:0em; margin-top:0em; margin-bottom:0.5em"> </BUTTON> </Div> </td> </tr> </TABLE> </form> </DIV>
<!-- Page 3 - AppBrowseProgs -->
<DIV id=AppBrowseProgs style="display:none; height=100%; overflow-y:auto"> <form name="frmAppBrowseProgs" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action=""> <TABLE border=0 cellspacing=0 cellpadding=0 width=100%> <TR> <TD valign="top"> <Div id=loc31 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Which program do you want to run with compatibility settings?</b> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <label id=lblBrowseProgs for=BrowseProgs titile="Type the path to the program shortcut or executable file" ACCESSKEY="Y"> T<U>y</U>pe the path to the program shortcut or executable file: </label> <div class="sys-font-body sys-color-body" style="margin-top:0.25em; margin-bottom:0em"></div> <!-- note that the accesskey for the control should match all the accelerators defined in that control
parameter Accel should be set to match ACCESSKEY --> <OBJECT ID=BrowseProgs classid=CLSID:66CBC149-A49F-48F9-B17A-6A3EA9B42A87 width="100%" height="30"> </OBJECT> </Div>
</TD> </TR> </TBODY> </TABLE> </form> </DIV>
<!-- Page 4 - FixesLayers -->
<DIV id=FixesLayers style="display:none; height:100%; overflow-y:auto"> <form name="frmFixesLayers" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action=""> <TABLE border=0 cellspacing=0 cellpadding=0 width=100%> <TR> <TD valign="top"> <Div id=loc41 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Select a compatibility mode for the program</b> </Div> <Div id=loc42 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> Choose the operating system that is recommended for this program, or that previously supported the program correctly: </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT CHECKED name=layer type=radio value=WIN95 id=chkWin95 ondblclick="javascript:onRadioDblClick()"> <label id=lblWIN95 for=chkWin95 ondblclick="javascript:onRadioDblClick()" title="Set to run under Windows 95 compatibility mode" ACCESSKEY="5"> Microsoft Windows 9<u>5</u> </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT name=layer type=radio value=NT4SP5 id=chkNT4SP5 ondblclick="javascript:onRadioDblClick()"> <label id=lblNT4SP5 for=chkNT4SP5 ondblclick="javascript:onRadioDblClick()" title="Set to run under NT4 Service pack 5 compatibility mode" ACCESSKEY="T"> Microsoft Windows N<u>T</u> 4.0 (Service Pack 5) </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT name=layer type=radio value=WIN98 id=chkWin98 ondblclick="javascript:onRadioDblClick()"> <label id=lblWIN98 for=chkWin98 ondblclick="javascript:onRadioDblClick()" title="Set to run under Windows 98/Windows Me compatibility mode" ACCESSKEY="8"> Microsoft Windows 9<u>8</u> / Windows Me </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT name=layer type=radio value=WIN2000 id=chkWin2000 ondblclick="javascript:onRadioDblClick()"> <label id=lblWIN2000 for=chkWin2000 ondblclick="javascript:onRadioDblClick()" title="Set to run under Windows 2000 compatibility mode" ACCESSKEY="2"> Microsoft Windows <u>2</u>000 </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT name=layer type=radio value=None id=chkNoLayer ondblclick="javascript:onRadioDblClick()"> <label id=lblNone for=chkNoLayer ondblclick="javascript:onRadioDblClick()" title="Do not apply a compatibility mode" ACCESSKEY="D"> <u>D</u>o not apply a compatibility mode </label> </Div> </TD> </TR> </TABLE> </form> </DIV>
<!-- Page 5 - FixesOther -->
<DIV id=FixesOther style="height:100%; display:none; overflow-y:auto"> <form name="frmFixesOther" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action=""> <TABLE border=0 cellspacing=0 cellpadding=0 width=100%> <TR> <TD valign="top"> <Div id=loc51 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Select display settings for the program</b> </Div> <Div id=loc52 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> Choose the settings that are recommended for this program, or that previously supported the program correctly: </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT type=checkbox name=chk256color id=chk256color value="256COLOR" > <label id=lbl256COLOR for=chk256color title="Run program in 256 colors mode" ACCESSKEY="R"> 256 colo<u>r</u>s </LABEL> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT type=checkbox name=chk640x480 id=chk640x480 value="640X480" > <label id=lbl640X480 for=chk640x480 title="Run program in 640 x 480 screen resolution" ACCESSKEY="s"> 640 x 480 <u>s</u>creen resolution </LABEL> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT type=checkbox name=chkNoThemes id=chkNoThemes value="DISABLETHEMES" > <label id=lblDISABLETHEMES for=chkNoThemes title="Disable visual themes" ACCESSKEY="D"> <u>D</u>isable visual themes </LABEL> <div id=loc53 class="sys-font-body sys-color-body" style="margin-left:2em; margin-top:0em; margin-bottom:0em"> By default, Windows XP uses visual themes that may change the appearance or behavior of other programs. </div> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT type=checkbox name=chkSimAdmin id=chkSimAdmin value="LUA" > <label id=lblLUA for=chkSimAdmin title="Simulate administrative privileges" ACCESSKEY="V"> Simulate administrative pri<u>v</u>ileges </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> </Div> <Div id=loc54 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Note:</b> These options apply most commonly to games or educational programs. If your program is not a game or educational title, it is likely that you don't need to select anything on this page. </Div> </TD> </TR> </TABLE> </form> </DIV>
<!-- Page 6 - Run -->
<DIV id=Run style="height:100%; display:none; margin-top:0em; margin-bottom:0em"> <form name="frmRun" onSubmit="javascript:onBtnNext()" action="" method=post> <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100% style="margin-top=0; margin-bottom:0"> <TR> <TD valign="top"> <Div style="height:100%; overflow-y:auto">
<Div id=loc61 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Test your compatibility settings</b> </Div> <Div id=loc62 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Program name or path:</b> </Div>
<Div id="divTargetApp" class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em; margin-left:1em"></Div>
<Div id=loc63 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Compatibility settings to apply:</b> </Div>
<Div id="divCompatLayer" class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:2em; margin-left:1em"></div>
</Div> </TD> </TR> <TR style="height=6em"> <TD> <Div class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-top:0; margin-bottom:1em"> <Div id=loc64 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> To test the program with the new compatibility settings, click Next. </Div>
<Div id=loc65 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:0em"> After verifying whether the program worked correctly, return to this wizard. </Div> </Div> </TD> </TR> </TABLE> </form> </DIV>
<!-- Page 7 - Update -->
<DIV id=Update style="height:100%; display:none; overflow-y:auto; margin-top:0em; margin-bottom:0em"> <form name="frmUpdate" method="post" onSubmit='javascript:onBtnNext()' action=""> <TABLE border=0 cellPadding=0 cellSpacing=0 width=100%> <TR> <TD valign="top"> <Div id=loc71 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Did the program work correctly?</b> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <input name="UpdateShortcut" type="radio" value="Yes" CHECKED id=chkYes ondblclick="javascript:onRadioDblClick()"> <label id=lblYes for=chkYes title="Yes, set this program to always use these compatibility settings" ondblclick="javascript:onRadioDblClick()" ACCESSKEY="Y"> <u>Y</u>es, set this program to always use these compatibility settings </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <input name="UpdateShortcut" type="radio" value="TryOther" id=chkTryOther ondblclick="javascript:onRadioDblClick()"> <label id=lblTryOther for=chkTryOther title="No. Try different compatibility settings" ondblclick="javascript:onRadioDblClick()" ACCESSKEY="D"> No, try <u>d</u>ifferent compatibility settings </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:2em"> <input name="UpdateShortcut" type="radio" value="No" id=chkNo ondblclick="javascript:onRadioDblClick()"> <label id=lblNo for=chkNo title="No, go to the end of this wizard" ondblclick="javascript:onRadioDblClick()" ACCESSKEY="F"> No, I am <u>f</u>inished trying compatibility settings </label> </Div>
<Div id=MediaWarning class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"></div> </TD> </TR> </TABLE> </form> </DIV>
<!-- Page 8 - Compatibility Data -->
<DIV id=CompatibilityData style="height:100%; display:none; margin-top:0em; margin-bottom:0em"> <form name="frmCompatData" method="post" onSubmit='javascript:onBtnNext()' action=""> <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100%> <TR> <TD valign="top"> <Div id=cwBody style="height:90%; overflow-y:auto"> <Div id=loc81 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Program Compatibility Data</b> </Div>
<Div id=loc82 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0"> Microsoft has created temporary files that contain information about the settings you selected and whether the problems were fixed. Sending this information to Microsoft will help us improve program compatibility. </Div>
<Div id=loc83 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0"> Would you like to send this information to Microsoft? </Div>
<Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT name=UploadInfo type=radio value=Yes id=chkUploadInfo onclick="javascript:EnableNext()"> <label id=lblUploadInfo for=chkUploadInfo title="Yes, send this information to Microsoft" ACCESSKEY="Y"> <U>Y</U>es </label> </Div> <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> <INPUT name=UploadInfo type=radio value=No id=chkNoUploadInfo onclick="javascript:EnableNext()"> <label id=lblNoUploadInfo for=chkNoUploadInfo title="No, Do not send this information to Microsoft" ACCESSKEY="o"> N<U>o</U> </label> </Div>
<Div id=loc84 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0"> The information will be treated anonymously and confidentially per <a target="_new" href="http://go.microsoft.com/fwlink/?LinkId=825">our data collection policy</a> on the the Web. </Div>
<Div id=loc85 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0"> <a href="javascript:ViewTempFileList();">See the temporary files that would be sent</a> </Div> </Div> </TD> </TR> </TABLE> </form> </DIV>
<!-- Page 9 - Finish -->
<DIV id=CompleteWizard style="height:100%; display:none; margin-top:0em; margin-bottom:0em"> <form name="frmCompleteWizard" method="post" onSubmit='javascript:onBtnNext()' action=""> <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100%> <TR> <TD valign="top"> <Div id=cwBody style="height:90%; overflow-y:auto"> <Div id=loc91 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em"> <b>Completing the Program Compatibility Wizard</b> </Div>
<Div id="divCompatSettings" class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:2em"></Div> <Div id=loc92 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"> To readjust or remove compatibility settings, run this wizard again. </Div>
</Div> </TD> </TR> <TR style="height:2.5em"> <TD> <Div id=loc93 class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-top:0; margin-bottom:1em"> To close this wizard, click Finish. </Div> </TD> </TR> </TABLE> </form> </DIV>
</td> </tr>
<tr style="height:3em" valign=top> <td> <hr>
<form name="frmNav" method="post" onsubmit='javascript:onBtnNext()'> <p align="right"> <BUTTON id=btnBack value="Back" onclick="javascript:onBtnBack()" name="btnBack" style="width:6em; margin-left:0em; margin-right:0.5em; margin-top:0em"></BUTTON> <BUTTON id=btnNext type="Submit" value="Next" onclick="javascript:onBtnNext()" name="btnNext" style="width:6em; margin-left:0.5em; margin-right:0.5em; margin-top:0em"></BUTTON> <BUTTON id=btnCancel value="Cancel" onclick="javascript:onBtnCancel()" name="btnCancel" style="width:6em; margin-left:0.5em; margin-right:0em; margin-top:0em"></BUTTON> </p> </form> </TD> </TR>
</TABLE>
</body> </HTML>
|