Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

763 lines
21 KiB

  1. <HTML XMLNS:helpcenter>
  2. <HEAD>
  3. #include "header.inc"
  4. #include "debug_decl.inc"
  5. #include "debug_js.inc"
  6. #include "constants.inc"
  7. <helpcenter:context id=idCtx />
  8. <TITLE>Remote Assistance</TITLE>
  9. <script id="script0" name="script0" LANGUAGE="Javascript" SRC="../../Common/Constants.js"> </script>
  10. <script id="script1" name="script1" LANGUAGE="Javascript" SRC="../../Common/Common.js"> </script>
  11. <meta http-equiv="MSThemeCompatible" content="Yes">
  12. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  13. <LINK id="UI_StyleSheet" REL="stylesheet" TYPE="text/css" HREF="../../Css/rc.css">
  14. <LINK ID=Stylesheet_Ref4 href="hcp://system/css/shared.css" rel=STYLESHEET type=text/css>
  15. <STYLE>
  16. .margins
  17. {
  18. margin-top : 33px;
  19. margin-left : 33px;
  20. margin-right : 33px;
  21. margin-bottom : 0px;
  22. }
  23. </STYLE>
  24. #ifdef _WIN64
  25. </HEAD>
  26. <BODY scroll=no CLASS=margins>
  27. <center id="idCenter" name="idCenter">
  28. <DIV id="idWin64Msg" name="idWin64Msg" CLASS="sys-font-heading4" height10> Remote Assistance is not supported in the 64-bit versions of Windows XP or the Windows Server 2003 family operating systems.
  29. </DIV>
  30. </center>
  31. </BODY>
  32. #else
  33. <!-- The SAF class factory object -->
  34. <OBJECT classid=CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7 height=0 id=oSAFClassFactory
  35. width=0></OBJECT>
  36. <script LANGUAGE="Javascript">
  37. //
  38. // Localizable constants, text and messages
  39. //
  40. var L_ERRNOUSERS_Text = "No Users are currently logged on.";
  41. var L_ERRMSG1_Text = "Please specify a valid IP address or computer name.";
  42. var L_ERRMSG2_Text = c_szError3;
  43. var L_ERRMSG3_Text = "The remote computer does not exist or is unavailable. Please make sure the computer name or IP address is correct.";
  44. var L_ERRMSG4_Text = c_szError3;
  45. var L_ERRMSG5_Text = c_szError3;
  46. var L_ERRMSG6_Text = c_szError2;
  47. var L_ERRACCESSDENIED_Text = "Directly launching this page is not allowed. ";
  48. //
  49. // Globals
  50. //
  51. var g_szRCTicket = null;
  52. var g_szUserName = null;
  53. var g_szDomainName = null;
  54. var g_szSessionId = null;
  55. var g_iExpiry = 5;
  56. var g_oSAFRemoteDesktopConnection = null;
  57. var g_oSAFRemoteConnectionData = null;
  58. var g_oUsersCollection = null;
  59. var g_nUsersLen = null;
  60. var g_oSessionsCollection = null;
  61. var g_nSessionsLen = null;
  62. //
  63. // Enable debugging
  64. //
  65. g_bDebug = false;
  66. #ifdef _BVT
  67. var L_ConflictingCredentials_Text = "The credentials supplied for the novice user do not match any user currently logged on at the novice computer. Please choose the right user account to use.";
  68. var gBVT = false;
  69. #endif
  70. //
  71. // onLoad: Executed on load of the page
  72. //
  73. function onLoad()
  74. {
  75. InitTrace();
  76. TraceFunctEnter("onLoad");
  77. try
  78. {
  79. #ifdef _BVT
  80. var szURL = document.URL;
  81. var i = szURL.indexOf("?", 1);
  82. if( i > 0 )
  83. {
  84. var szMode = szURL.slice(i+1);
  85. var j = szMode.indexOf("BVT");
  86. if (j == 0)
  87. {
  88. gBVT = true;
  89. InitBVT();
  90. idComputerName.value = g_szNoviceComputer;
  91. }
  92. else
  93. {
  94. gBVT = false;
  95. }
  96. }
  97. else
  98. {
  99. gBVT = false;
  100. }
  101. #endif
  102. //
  103. // Set focus on idComputerName
  104. //
  105. #ifdef _BVT
  106. if( false == gBVT )
  107. {
  108. setTimeout("idComputerName.focus()",250);
  109. }
  110. #else
  111. setTimeout("idComputerName.focus()",250);
  112. #endif
  113. //
  114. // Instantiate the RemoteDesktopConnection object
  115. //
  116. g_oSAFRemoteDesktopConnection = oSAFClassFactory.CreateObject_RemoteDesktopConnection();
  117. #ifdef _BVT
  118. if( true == gBVT )
  119. {
  120. onConnect();
  121. }
  122. #endif
  123. }
  124. catch(error)
  125. {
  126. FatalError( L_RCCTL_Text, error );
  127. }
  128. TraceFunctLeave();
  129. return;
  130. }
  131. function onEnter()
  132. {
  133. TraceFunctEnter("onEnter")
  134. try
  135. {
  136. DebugTrace("window.event.keyCode: " + window.event.keyCode);
  137. if (window.event.keyCode == 13)
  138. {
  139. //
  140. // Send chat data to user
  141. //
  142. onConnect();
  143. window.event.returnValue = false;
  144. }
  145. }
  146. catch(error)
  147. {
  148. FatalError( L_RCCTL_Text, error );
  149. }
  150. }
  151. //
  152. // onConnect: Establishes Connection with remote computer
  153. //
  154. function onConnect()
  155. {
  156. var oUserObj = null;
  157. var oOption = null;
  158. TraceFunctEnter("onConnect");
  159. try
  160. {
  161. //
  162. // Valid computer name should be entered
  163. //
  164. if (idComputerName.value=="")
  165. {
  166. FatalError( L_ERRMSG1_Text, error );
  167. }
  168. else
  169. {
  170. if (g_oSAFRemoteDesktopConnection != null)
  171. {
  172. //
  173. // Connect to the remote computer and obtain SAFRemoteConnectionData
  174. //
  175. try
  176. {
  177. g_oSAFRemoteConnectionData = g_oSAFRemoteDesktopConnection.ConnectRemoteDesktop(idComputerName.value);
  178. }
  179. catch (error)
  180. {
  181. FatalError( error.description , error );
  182. return;
  183. }
  184. //
  185. // Enumerate the users on the remote computer
  186. //
  187. try
  188. {
  189. g_oUsersCollection = g_oSAFRemoteConnectionData.Users();
  190. //
  191. // Obtain the number of current users on remote computer
  192. //
  193. g_nUsersLen = g_oUsersCollection.Count;
  194. if( 0 == g_nUsersLen )
  195. {
  196. FatalError( L_ERRNOUSERS_Text );
  197. return;
  198. }
  199. Layer2.className="Display";
  200. Layer1.className="DisplayNone";
  201. txtAddDisplay.value=idComputerName.value;
  202. spAddress1.innerText=idComputerName.value;
  203. btnStart.disabled=false;
  204. btnChange.focus();
  205. for(i=1; i<= g_nUsersLen; i++)
  206. {
  207. //
  208. // Get a user from the collection
  209. //
  210. oUserObj = g_oUsersCollection.item(i);
  211. //
  212. // Create an OPTION for the drop down list to be SELECTED
  213. //
  214. oOption = document.createElement("OPTION");
  215. oOption.text = oUserObj.DomainName + "\\" + oUserObj.UserName;
  216. oOption.value = oOption.text;
  217. document.all.optUser.add(oOption);
  218. }
  219. }
  220. catch (error)
  221. {
  222. FatalError( L_ERRMSG4_Text, error );
  223. return;
  224. }
  225. //
  226. // Enumerate the number of active TS sessions on remote computer
  227. //
  228. try
  229. {
  230. g_oSessionsCollection = g_oSAFRemoteConnectionData.Sessions();
  231. //
  232. // Obtain the number of Active TS Sessions
  233. //
  234. g_nSessionsLen = g_oSessionsCollection.Count;
  235. }
  236. catch (error)
  237. {
  238. FatalError( L_ERRMSG5_Text, error);
  239. return;
  240. }
  241. }
  242. else
  243. {
  244. FatalError( L_ERRMSG2_Text );
  245. return;
  246. }
  247. #ifdef _BVT
  248. if( true == gBVT )
  249. {
  250. onStart();
  251. }
  252. #endif
  253. }
  254. }
  255. catch(error)
  256. {
  257. FatalError( L_RCCTL_Text, error );
  258. }
  259. TraceFunctLeave();
  260. return;
  261. }
  262. //
  263. // onChange: Change computer name
  264. //
  265. function onChange()
  266. {
  267. TraceFunctEnter("onChange");
  268. try
  269. {
  270. window.navigate("Unsolicitedrcui.htm");
  271. }
  272. catch(error)
  273. {
  274. FatalError( L_RCCTL_Text, error );
  275. }
  276. TraceFunctLeave();
  277. return;
  278. }
  279. //
  280. // onStart: Start Remote Assistance connection
  281. //
  282. function onStart()
  283. {
  284. TraceFunctEnter("onStart");
  285. var i = 0;
  286. var oSessionObj = null;
  287. var szAcct = null;
  288. var oOption = null;
  289. var iTimesLoggedOn = 0;
  290. var iSessionId = 0;
  291. try
  292. {
  293. #ifdef _BVT
  294. if( true == gBVT )
  295. {
  296. if( optUser.value.toUpperCase() != g_szNoviceCredentials.toUpperCase())
  297. {
  298. alert( L_ConflictingCredentials_Text );
  299. g_szNoviceCredentials = optUser.value;
  300. return;
  301. }
  302. }
  303. #endif
  304. //
  305. // Determine if the selected user is logged onto the machine multiple times
  306. //
  307. for(i=1; i<= g_nSessionsLen; i++)
  308. {
  309. oSessionObj = g_oSessionsCollection.item(i);
  310. //
  311. // Obtain domain\username
  312. //
  313. szAcct = oSessionObj.DomainName + "\\" + oSessionObj.UserName;
  314. //
  315. // Check if session belongs to user selected
  316. //
  317. if( szAcct == optUser.value )
  318. {
  319. oOption = document.createElement("OPTION");
  320. oOption.text = "login session " + oSessionObj.SessionID;
  321. oOption.value = oSessionObj.SessionID;
  322. document.all.optLoginSession.add(oOption);
  323. iSessionId = oSessionObj.SessionID;
  324. iTimesLoggedOn++;
  325. }
  326. }
  327. #ifdef _ALLOWMULTIPLESESSIONS
  328. if( iTimesLoggedOn > 1 )
  329. {
  330. Layer2.className = "DisplayNone";
  331. btnStart.className = "DisplayNone";
  332. username.innerText = szAcct;
  333. computername.innerText = idComputerName.value;
  334. btnContinue.style.display = "";
  335. btnCancel.style.display = "";
  336. Layer3.className = "Display";
  337. spUser.innerText = optUser.value;
  338. rdOpt1.focus();
  339. }
  340. else
  341. {
  342. optLoginSession.value = iSessionId;
  343. onContinue();
  344. }
  345. #else
  346. optLoginSession.value = iSessionId;
  347. onContinue();
  348. #endif
  349. }
  350. catch(error)
  351. {
  352. FatalError( L_ERRMSG6_Text );
  353. }
  354. TraceFunctLeave();
  355. return;
  356. }
  357. //
  358. // onCancel: Aborts UI
  359. //
  360. function onCancel()
  361. {
  362. try
  363. {
  364. window.navigate("UnsolicitedRCUI.htm");
  365. }
  366. catch(error)
  367. {
  368. FatalError( L_RCCTL_Text, error );
  369. }
  370. }
  371. //
  372. // onContinue: Invokes the helper UI
  373. //
  374. function onContinue()
  375. {
  376. TraceFunctEnter("onContinue");
  377. var szIncidentFile = null;
  378. var fso = null;
  379. var tempDir = null;
  380. var oInc = null;
  381. try
  382. {
  383. //
  384. // Get the Username and domainname
  385. //
  386. var i = optUser.value.indexOf("\\");
  387. g_szDomainName = optUser.value.slice(0, i);
  388. g_szUserName = optUser.value.slice(i+1);
  389. //
  390. // Get Session Id
  391. //
  392. #ifdef _ALLOWMULTIPLESESSIONS
  393. g_szSessionId = optLoginSession.value;
  394. #else
  395. g_szSessionId = -1;
  396. #endif
  397. DebugTrace("g_szSessionId: " + g_szSessionId);
  398. //
  399. // Create the Incident
  400. //
  401. oInc = oSAFClassFactory.CreateObject_Incident();
  402. //
  403. // Set the username
  404. //
  405. oInc.UserName = g_szUserName;
  406. //
  407. // Ticket is not encrypted
  408. //
  409. oInc.RCTicketEncrypted = false;
  410. //
  411. // Get the ticket
  412. //
  413. DebugTrace("Calling oSAFRemoteConnectionData.ConnectionParms with arguments=" + idComputerName.value + ", " + g_szUserName + ", " + g_szDomainName + ", " + g_szSessionId);
  414. oInc.RcTicket = g_oSAFRemoteConnectionData.ConnectionParms( idComputerName.value, g_szUserName, g_szDomainName, g_szSessionId, "");
  415. //
  416. // Create Dictionary items
  417. //
  418. var oDict = oInc.Misc;
  419. try
  420. {
  421. var d = new Date();
  422. var iNow = Math.round(Date.parse(d)/1000);
  423. //
  424. // Expiry time
  425. //
  426. oDict.add("DtStart", iNow);
  427. oDict.add("DtLength", g_iExpiry);
  428. //
  429. // IP Address
  430. //
  431. oDict.add("IP", idComputerName.value);
  432. oDict.add("Status", "Active");
  433. //
  434. // Helper UI configuration
  435. //
  436. oDict.add("URA", 1);
  437. #ifdef _HELPCNT
  438. oDict.add("HelpCnt", 0);
  439. #endif
  440. //
  441. // See if the Novice is connected over a Modem.
  442. //
  443. try
  444. {
  445. var fModemConnected;
  446. fModemConnected = g_oSAFRemoteConnectionData.ModemConnected(idComputerName.value);
  447. if(fModemConnected)
  448. {
  449. // Add the info. that the novice is connected over slow link to the dictionary.
  450. // "L" represents "Link". If L=1 its a Slow Link a.k.a. Modem
  451. oDict.add("L",1);
  452. }
  453. }
  454. catch(e)
  455. {
  456. // Ignore the failure. By default the ModemConnected is FALSE.
  457. }
  458. }
  459. catch (e)
  460. {
  461. FatalError(e.description);
  462. }
  463. fso = new ActiveXObject("Scripting.FileSystemObject");
  464. tempDir = fso.GetSpecialFolder( 2 );
  465. szIncidentFile = tempDir + "\\UnsolicitedRA" + fso.GetTempName();
  466. //
  467. // Save incident OFF to an XML file
  468. //
  469. oInc.GetXML(szIncidentFile);
  470. //
  471. // Launch the Helper UI
  472. //
  473. idCtx.minimized = true;
  474. var oShell = new ActiveXObject("WScript.Shell");
  475. #ifdef _PERF_OPTIMIZATIONS
  476. var szRAURL = GetWinDir() + '\\pchealth\\helpctr\\binaries\\helpctr.exe -Mode "hcp://system/Remote Assistance/raura.xml" -url "hcp://system/Remote Assistance/Interaction/Client/RcToolscreen1.htm"' + ' -ExtraArgument "IncidentFile=' + szIncidentFile + '"';
  477. #else
  478. var szRAURL = GetWinDir() + '\\pchealth\\helpctr\\binaries\\helpctr.exe -Mode "hcp://CN=Microsoft Corporation,L=Redmond,S=Washington,C=US/Remote Assistance/raura.xml" -url "hcp://CN=Microsoft Corporation,L=Redmond,S=Washington,C=US/Remote Assistance/Interaction/Client/RcToolscreen1.htm?IncidentFile=' + szIncidentFile + '"';
  479. #endif
  480. oShell.Run( szRAURL, 1, true );
  481. fso.DeleteFile( szIncidentFile );
  482. #ifdef _BVT
  483. if( true == gBVT )
  484. {
  485. oSAFClassFactory.close();
  486. }
  487. else
  488. {
  489. //
  490. // Go back to start page
  491. //
  492. window.navigate("Unsolicitedrcui.htm");
  493. }
  494. #else
  495. //
  496. // Go back to start page
  497. //
  498. window.navigate("Unsolicitedrcui.htm");
  499. #endif
  500. }
  501. catch(error)
  502. {
  503. FatalError( L_ERRMSG6_Text, error );
  504. }
  505. TraceFunctLeave();
  506. return;
  507. }
  508. </script>
  509. </HEAD>
  510. <BODY onload="onLoad();" id="idBody" name="idBody" tabindex=-1>
  511. <Table id="T0" name="T0" border=0 class="MaxLayout" cellspacing=16 cellpadding=0>
  512. <TR id="TR0T0" name="TR0T0" >
  513. <TD id="TD0TR0T0" name="TD0TR0T0" valign=top>
  514. <!-- Layer 1 -->
  515. <DIV id="Layer1" name="Layer1" class="MaxLayout">
  516. <Table id="T0TD0TR0T0" name="T0TD0TR0T0" border=0 cellspacing=8 cellpadding=0 class="MaxWidth">
  517. <TR id="TR0T0TD0TR0T0" name="TR0T0TD0TR0T0">
  518. <TD id="TD0TR0T0TD0TR0T0" name="TD0TR0T0TD0TR0T0" class="sys-font-heading3 sys-rhp-color-title" colspan=2>
  519. Offer Remote Assistance
  520. </TD>
  521. </TR>
  522. <TR id="TR1T0TD0TR0T0" name="TR1T0TD0TR0T0">
  523. <TD id="TD0TR1T0TD0TR0T0" name="TD0TR1T0TD0TR0T0" class="sys-font-body sys-color-body" colspan=2>
  524. With Remote Assistance, you can offer help to a local area network user if you have
  525. administrative privileges and know the computer name or IP address. When you start
  526. Remote Assistance, you can view the user's screen, chat in real time, and work from a
  527. remote location on the user's computer.
  528. <P id="p0" name="p0">
  529. Type or paste the computer name or IP address:
  530. </TD>
  531. </TR>
  532. <TR id="TR2T0TD0TR0T0" name="TR2T0TD0TR0T0">
  533. <TD id="TD0TR2T0TD0TR0T0" name="TD0TR2T0TD0TR0T0">
  534. <INPUT type=text class="sys-font-body sys-color-body MaxWidth" name="idComputerName" id="idComputerName" onkeypress="onEnter()" title="Type or paste the computer name or IP address" size=47 tabindex=1>
  535. </TD>
  536. <TD id="TD1TR2T0TD0TR0T0" name="TD1TR2T0TD0TR0T0" align="left" style="width:20%">
  537. <BUTTON class="styBtnWidth sys-font-body sys-color-body" name="btnConnect" id="btnConnect" onClick="onConnect();" title="Connect" tabindex=2 accesskey="C"><u>C</u>onnect </BUTTON>
  538. </TD>
  539. </TR>
  540. </Table>
  541. </Div>
  542. <!-- End of Layer 1 -->
  543. <!-- Layer 2 -->
  544. <DIV id="Layer2" name="Layer2" class="DisplayNone">
  545. <Table id="T1TD0TR0T0" name="T1TD0TR0T0" border=0 cellspacing=8 cellpadding=0 class="Maxwidth">
  546. <TR id="TR0T1TD0TR0T0" name="TR0T1TD0TR0T0">
  547. <TD id="TD0TR0T1TD0TR0T0" name="TD0TR0T1TD0TR0T0" class="sys-font-heading3 sys-rhp-color-title" colspan=2>
  548. Offer Remote Assistance
  549. </TD>
  550. </TR>
  551. <TR id="TR1T1TD0TR0T0" name="TR1T1TD0TR0T0">
  552. <TD id="TD0TR1T1TD0TR0T0" name="TD0TR1T1TD0TR0T0" class="sys-font-body sys-color-body" colspan=2>
  553. With Remote Assistance, you can offer help to a local area network user if you have
  554. administrative privileges and know the computer name or IP address. When you start
  555. Remote Assistance, you can view the user's screen, chat in real time, and work from a
  556. remote location on the user's computer.
  557. <P id="p1" name="p1">
  558. You are connected to:
  559. </TD>
  560. </TR>
  561. <TR id="TR2T1TD0TR0T0" name="TR2T1TD0TR0T0">
  562. <TD id="TD0TR2T1TD0TR0T0" name="TD0TR2T1TD0TR0T0">
  563. <INPUT type="text" class="sys-font-body sys-color-body MaxWidth" name="txtAddDisplay" readonly id="txtAddDisplay" tabindex=-1>
  564. </TD>
  565. <TD id="TD1TR2T1TD0TR0T0" name="TD1TR2T1TD0TR0T0" align="left" style="width:20%">
  566. <BUTTON class="styBtnWidth sys-font-body sys-color-body" name="btnChange" id="btnChange" onClick="onChange();" tabindex=3 accesskey="h">C<u>h</u>ange </BUTTON>
  567. </TD>
  568. </TR>
  569. <TR id="TR3T1TD0TR0T0" name="TR3T1TD0TR0T0">
  570. <TD id="TD0TR3T1TD0TR0T0" name="TD0TR3T1TD0TR0T0" colspan=2>
  571. &nbsp;
  572. </TD>
  573. </TR>
  574. <TR id="TR4T1TD0TR0T0" name="TR4T1TD0TR0T0">
  575. <TD id="TD0TR4T1TD0TR0T0" name="TD0TR4T1TD0TR0T0" colspan=2 class="sys-font-body sys-color-body" >
  576. Several users are logged onto "<SPAN id="spAddress1" name="spAddress1"> </SPAN>". Select the user you want to assist:
  577. </TD>
  578. </TR>
  579. <TR id="TR5T1TD0TR0T0" name="TR5T1TD0TR0T0">
  580. <TD id="TD0TR5T1TD0TR0T0" name="TD0TR5T1TD0TR0T0" colspan=2>
  581. <SELECT name="optUser" id="optUser" class="sys-font-body sys-color-body" style="width:80%" tabindex=4>
  582. <!-- Options dynamically created -->
  583. </SELECT>
  584. </TD>
  585. </TR>
  586. </Table>
  587. </DIV>
  588. <!-- End of Layer 2 -->
  589. <!-- Layer 3 -->
  590. <DIV id="Layer3" name="Layer3" class="DisplayNone" >
  591. <table id="T2TD0TR0T0" name="T2TD0TR0T0" border=0 class="MaxWidth" cellspacing=6 cellpadding=0>
  592. <tr id="TR0T2TD0TR0T0" name="TR0TR0T2TD0TR0T0">
  593. <td id="TD0TR0T2TD0TR0T0" name="TD0TR0T2TD0TR0T0" style="width:5%">
  594. <IMG id="I0TD0TR0T2TD0TR0T0" name="I0TD0TR0T2TD0TR0T0" src="../../Common/icon_warning_32x.gif"></IMG>
  595. </td>
  596. <td id="TD1TR0T2TD0TR0T0" name="TD1TR0T2TD0TR0T0" class="sys-font-body sys-color-body" >
  597. <SPAN id="S1TD1TR0T2TD0TR0T0" name="S1TD1TR0T2TD0TR0T0" class="sys-font-body sys-color-body">
  598. "<SPAN id="spUser" name="spUser"> </SPAN>" is logged onto more than once </SPAN>
  599. </td>
  600. </tr>
  601. <tr id="TR1T2TD0TR0T0" name="TR1T2TD0TR0T0">
  602. <TD id="TD0TR1T2TD0TR0T0" name="TD0TR1T2TD0TR0T0" class="sys-font-body sys-color-body" >
  603. <Span id="s3" name="s3" style="width:5px"> </Span>
  604. <INPUT type="radio" name="rdOption" id="rdOpt1" value="rdOpt1" checked tabindex=5>
  605. </TD>
  606. <TD id="TD1TR1T2TD0TR0T0" name="TD1TR1TR0T2TD0TR0T0" class="sys-font-body sys-color-body" >
  607. <Label id="l0" name="l0" class="sys-font-body sys-color-body" For="rdOpt1" >Start Remote Assistance for each instance that <Span id="username" name="username"> &nbsp; </Span>
  608. &nbsp; is logged on to <Span id="computername" name="computername"> &nbsp; </Span></Label>
  609. </td>
  610. </tr>
  611. <tr id="TR2T2TD0TR0T0" name="TR2T2TD0TR0T0">
  612. <td id="TD0TR2T2TD0TR0T0" name="TD0TR2T2TD0TR0T0" class="sys-font-body sys-color-body" >
  613. <Span id="s2" name="s0" style="width:5px"> </Span>
  614. <INPUT type="radio" name="rdOption" id="rdOpt2" value="rdOpt2" tabindex=6>
  615. </TD>
  616. <TD id="TD1TR2T2TD0TR0T0" name="TD1TR2T2TD0TR0T0" class="sys-font-body sys-color-body" >
  617. <Label id="l1" name="l1" class="sys-font-body sys-color-body" For="rdOpt2">Select a logon number</Label>
  618. </td>
  619. </tr>
  620. <tr id="TR3T2TD0TR0T0" name="TR3T2TD0TR0T0">
  621. <td id="TD0TR3T2TD0TR0T0" name="TD0TR3T2TD0TR0T0">
  622. &nbsp;
  623. </td>
  624. <td id="TD1TR3T2TD0TR0T0" name="TD1TR3T2TD0TR0T0">
  625. <SELECT name="optLoginSession" id="optLoginSession" class="sys-font-body sys-color-body" style="WIDTH: 90%;" tabindex=7>
  626. <!-- Options dynamically created -->
  627. </SELECT>
  628. </td>
  629. </tr>
  630. </table>
  631. </DIV>
  632. <!-- End of Layer 3 -->
  633. </TD>
  634. </TR>
  635. <TR id="TR1T0" name="TR1T0">
  636. <TD id="TD0TR1T0" name="TD0TR1T0" colspan=3 style="padding-left:7px;padding-right:7px;">
  637. <HR id="TD0TR1T0" name="TD0TR1T0" style="visibility:visible">
  638. </TD>
  639. </TR>
  640. <TR>
  641. <TD id="t0" name="t0" align="right" valign="top">
  642. <!-- Ctrl Layer -->
  643. <BUTTON name="btnStart" id="btnStart" class="sys-font-body sys-color-body" onClick="onStart();" Disabled tabindex=8 accesskey="S">&nbsp;&nbsp;&nbsp;<u>S</u>tart Remote Assistance &nbsp;&nbsp;&nbsp;</BUTTON> <Span id="s0" name="s0" style="width:5px;display:none"> </Span>
  644. <BUTTON style="display:none" name="btnContinue" id="btnContinue" class="sys-font-body sys-color-body" onClick="onContinue();" tabindex=9 accesskey="N"> &nbsp;&nbsp;&nbsp;Co<u>n</u>tinue&nbsp;&nbsp;&nbsp;</BUTTON><Span id="s1" name="s1" style="width:5px"> </Span>
  645. <BUTTON name="btnCancel" id="btnCancel" onClick="onCancel();" tabindex=10 class="sys-font-body sys-color-body" accesskey="L" style="display:none" > &nbsp;&nbsp;&nbsp;Cance<u>l</u>&nbsp;&nbsp;&nbsp;</BUTTON>
  646. <!-- End of Ctrl Layer -->
  647. </TD>
  648. </TR>
  649. </Table>
  650. </BODY>
  651. #endif // _WIN64
  652. </HTML>