Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

how do I launch file from a network share?

- - - - -

  • Please log in to reply
5 replies to this topic

#1
X-Ecutioner

X-Ecutioner

    eXPerience my ass.

  • Member
  • PipPipPip
  • 304 posts
  • Joined 21-October 03
ok. I made a front-end loader for my AIO/software DVD. By using javascript, I am able to launch a file through my HTA application which executes a file - which installs a program.

(for those of you who think it will allow u to hack into someones pc through the internet...think again. antivirus/firewalls will notify the user of the script. I just simply allow the script because its a local script made by me and I know its safe.)

I want to be able to launch this HTA program from a network share for my laptop because my laptop cannot read dvd-rw's. I was wondering if anyone knows how to do it. I have tried many different methods but have had no luck.
The posted code is a snippet from one of my many files.
BTW. the share path is //server/dvd.

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<link rel="stylesheet" type="text/css" href="./common/wpi.css" />
</head>
<body class="body">
<script>
function Launchgarminmetro() { var ws = new ActiveXObject("WScript.Shell"); ws.Exec("..\\Garmin\\Canada.Metroguide-RR\\Setup.exe")}
function Launchgarminwater() { var ws = new ActiveXObject("WScript.Shell"); ws.Exec("..\\Garmin\\US.Waterways.and.Lights\\Setup.exe")}
function Launchgarminmap() { var ws = new ActiveXObject("WScript.Shell"); ws.Exec("..\\Garmin\\World.Map.v3.00\\Setup.exe")}

function Launchofficexp() { var ws = new ActiveXObject("WScript.Shell"); ws.Exec("..\\officexp\\SETUPPLS.EXE")}

function Launchcamedia() { var ws = new ActiveXObject("WScript.Shell"); ws.Exec("..\\camedia\\camedia\\SETUP.EXE")}

function Launchtrips04() { var ws = new ActiveXObject("WScript.Shell"); ws.Exec("..\\Trips04\\cd1run.exe")}
function Launchtrips04copyfiles() { var ws = new ActiveXObject("WScript.Shell"); ws.Run("..\\Trips04\\copyfiles.bat")}
</script>
<a name="checks">
<form name="WPI">
<table width="394" height="256">
<tr>
<td class="txt" valign="top" width="365" height="252">

</form>
<p><font size="3">Microsoft Office XP Professional</font></p>
<form method="POST" action="--WEBBOT-SELF--">
  <input type="button" value="Install" name="B3" onclick="javascript:Launchofficexp()"></p>
</form>
<p><font size="3">Microsoft Streets & Trips 2004</font>
</p>
<form method="POST" action="--WEBBOT-SELF--">
  <input type="button" value="Install" name="B3" onclick="javascript:Launchtrips04()">
  <input type="submit" value="Copy Files" name="B1" onclick="javascript:Launchtrips04copyfiles()"></p>
</form>
<p><font size="3">Garmin MapSource</font>
</p>
<form method="POST" action="--WEBBOT-SELF--">
  <input type="button" value="MetroGuide" name="B3" onclick="javascript:Launchgarminmetro()">
  <input type="submit" value="Waterways" name="B1" onclick="javascript:Launchgarminwater()">
  <input type="reset" value="World Map" name="B2" onclick="javascript:Launchgarminmap()"></p>
</form>
<p><font size="3">CaMedia Software</font>
</p>
<form method="POST" action="--WEBBOT-SELF--">
  <input type="button" value="Install" name="B1" onclick="javascript:Launchcamedia()"></p>
</form>
</td>
</tr>
</form>
</table>

</body>
</html>

Any suggestions or comments would appreciated.
My Gaming Rig... - Intel Core 2 Duo 6400 (2.13ghz) - Asus P5B Deluxe - OCZ 2 GB PC7200 800Mhz Dual Channel DDR2 RAM - ASUS 8800 GT 512MB - Creative Labs Audigy 2 Platinum Ex - 3x 500GB Hard Drive - 8x DL DVD-Burner - XP SP2 / Vista x86 Dual-boot


How to remove advertisement from MSFN

#2
Quaternion

Quaternion
  • Member
  • 3 posts
  • Joined 12-January 04
Try this (This should be all in the HTA file):

<HTML>
<HEAD>
<script LANGUAGE="JScript">
// Localized global variables
var L_Setup_Text="Setup Programs From Network";
var L_Office_Text="Microsoft Office XP Professional";
var L_StreetsTrips_Text="Microsoft Streets & Trips 2004";
var L_Garmin_Text="Garmin MapSource";
var L_Camedia_Text="CaMedia Software";
var L_Close_Text="Close";
// Set the windows size.
var w = 630;
var h = 150;
window.resizeTo(w, h);
// Center the window
var e = (w, h);
var x = (screen.width-w)/2;
var y = (screen.height-h)/2;
window.moveTo(x,y);
// Launch the selected application.
function onClickAppLink()
{
// Get the path that setup.hta was run from.
var sFullPath = unescape(window.parent.location.pathname);
// Remove the file name from the full path.
var iBackSlash = sFullPath.lastIndexOf("\\");
if (-1 == iBackSlash)
return 0;
// Set the source folder for this file.
var sDir = sFullPath.substring(0, iBackSlash + 1);
try
{
var sApp;
var sArg;
var sPath;
if(32 == event.keyCode) // Source element is the anchor that is the parent of the element to be executed.
{
sApp = event.srcElement.childNodes(0).app;
sArg = event.srcElement.childNodes(0).arg;
sPath = event.srcElement.childNodes(0).path;
}
else // Source element is the element that was clicked.
{
sApp = event.srcElement.app;
sArg = event.srcElement.arg;
sPath = event.srcElement.path;
}
var oShell = new ActiveXObject("Shell.Application");
oShell.ShellExecute(sApp, sArg, sDir+sPath);
}
catch (oError)
{
alert("Error : " + oError.Message);
}
return 0;
}
// Launch the selected application.
function onKeyPressAppLink()
{
if (32 == event.keyCode) // Space
{
onClickAppLink();
}
}

</SCRIPT>
<TITLE>DVD Network Install</TITLE>
<hta:application
border="thin"
borderstyle="normal"
caption="no"
icon="Setup.ico"
maximizebutton="no"
minimizebutton="no"
showintaskbar="no"
singleinstance="yes"
sysmenu="yes"
selection="no"
scroll="no"
version="1.0"
windowstate="normal" />
</HEAD>

<body leftmargin="0" topmargin="0" oncontextmenu="return false;" ondragstart="return false;" onselectstart="return false;">
<script language="vbscript">Document.Write(L_Setup_Text)</script>
<li>
<a target="_blank" HREF="" onclick="onClickAppLink(); return false;" onkeypress="onKeyPressAppLink(); return false;">
<b app="/officexp/SETUPPLS.exe" arg="" path="">
<script language="vbscript">Document.Write(L_Office_Text)</script>
</b>
</a>
<li>
<a target="_blank" HREF="" onclick="onClickAppLink(); return false;" onkeypress="onKeyPressAppLink(); return false;">
<b app="/Trips04/cd1run.exe" arg="" path="">
<script language="vbscript">Document.Write(L_StreetsTrips_Text)</script>
</b>
</a>
<li>
<a target="_blank" HREF="" onclick="onClickAppLink(); return false;" onkeypress="onKeyPressAppLink(); return false;">
<b app="/Garmin/World.Map.v3.00/Setup.exe" arg="" path="">
<script language="vbscript">Document.Write(L_Garmin_Text)</script>
</b>
</a>
<li>
<a target="_blank" HREF="" onclick="onClickAppLink(); return false;" onkeypress="onKeyPressAppLink(); return false;">
<b app="/camedia/camedia/Setup.exe" arg="" path="">
<script language="vbscript">Document.Write(L_Camedia_Text)</script>
</b>
</a>
<tr>
<td height=1 align=center>
<hr>
</td>
</tr>
<tr>
<td>
<table border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="99%" valign=middle style="font-family: Tahoma, Arial; font-size: 8pt;">
</td>
<td valign="bottom">
<button onclick="self.close();" style="background-color: #CCCCCC; border-style: solid; padding-top: 0px; padding-bottom: 0px; padding-right: 6px; padding-left: 6px">
<script language="vbscript">Document.Write(L_Close_Text)</script>
</button>
</td>
</tr>
</table>
</td>
</tr>
</table>
<td width="16">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

As you see you can also use arguments for silent installs and so. Maybe you need to tweak a bit but I know I put you in de right direction. :D :thumbup

#3
rafael901

rafael901

    Newbie

  • Member
  • 11 posts
  • Joined 23-September 11
  • OS:Windows 7 x86
  • Country: Country Flag
I am also having problems running my hta from a network share. When I run it locally, it works just fine. When I try to run it form a network drive only the background and the buttons at the bottom of the script show up.
The hta code is below.

<HEAD>
<TITLE>Imaging Application</TITLE>
<HTA:APPLICATION
        BORDER           = None
        APPLICATION      = Yes
	WINDOWSTATE      = normal
	INNERBORDER      = No
	SHOWINTASKBAR    = Yes
	SCROLL           = No
	APPLICATIONNAME  = "Windows PE Wizard"
        NAVIGABLE        = Yes
>
<!-- external stylesheet -->
<link rel="stylesheet" type="text/css" href="htaStyle.css" />
</HEAD>

<!****************************************************************************>
<!* Begin Script                                                              >
<!****************************************************************************>
<script Language=VBScript>

'****************************************************************************
'* Globals
'* setup global script parameters
'****************************************************************************
Option Explicit
Dim strTaskValue, objShell, objFso, strBody, objWmiService
Set objShell         = CreateObject("WScript.Shell")
Set objFso           = CreateObject("Scripting.FileSystemObject")
Set objWMIService    = GetObject   ("winmgmts:\\.\root\cimv2")

'****************************************************************************
'* Window_OnLoad
'* load up behavior and preferences
'****************************************************************************
Sub Window_Onload
  self.Focus()
  strBody = "<H1>CCC Lab Telephony imaging platform</H1>" &_
  "<H2>Select Images to apply an OS image using Ghost.<BR><BR>" &_
  "Please select an image category:<BR><BR>"
  enumDirs
End Sub

'****************************************************************************
'* enumDirs
'* find directories and create category buttons
'****************************************************************************
Sub enumDirs
Dim colSubfolders, objFolder, fileName
'enumerate folders in images folder
  Set colSubfolders = objWMIService.ExecQuery _
    ("Associators of {Win32_Directory.Name='Z:\imageshare\winpe'} Where AssocClass = Win32_Subdirectory ResultRole = PartComponent")
'create html buttons from each folder name
  For Each objFolder in colSubfolders
    fileName = objFolder.fileName
    strBody = strBody &_
    "<button id='" & fileName & "' onClick='enumImages(&quot;" & fileName & "&quot;)'>" & fileName & "</BUTTON>"
  Next
'post resulting html body to document
  strBody        = strBody & "<BR><HR><BR>"
  body.innerHTML = strBody
End Sub

'****************************************************************************
'* enumImages
'* find images and create radio buttons
'****************************************************************************
'this sub is a little messy because of limitations of win32_shortcutfile and need to go between fso and wmi for different info
'also, without the advantages of .net sorting classes, the old bubble sorting is not the funnest

Sub enumImages(fileName)
Dim colFilelist, objFile, strButtons, objShortcut, colTargetList, objTarget, x, y, strKey, strItem
ReDim arrButtons(1,-1)

'reset display element style
  details.innerHTML        = ""
  details.style.visibility = "hidden"
'  strButtons               = "<table id=buttonTable>"
'enumerate ghost image shortcuts in specific images subfolder from enumDirs
  Set colFileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='z:\imageshare\winpe\" & fileName & "'} Where ResultClass = CIM_DataFile")
'find ghost image shortcut targetpath (fso)
  For each objFile in colFileList
    If objFile.Extension = "lnk" Then
    	Set objShortcut = objShell.CreateShortcut(objFile.name)
'find ghost image shortcut target (wmi)
      Set colTargetList = objWMIService.ExecQuery _
        ("Select * from CIM_Datafile Where name = '" & replace(objShortcut.targetpath,"\","\\") & "'")
'add radio button label (from fso) and radio button target (from wmi) to an array
        For each objTarget in colTargetList
          ReDim Preserve arrButtons(1,UBound(arrButtons,2)+1)
          arrButtons(0,UBound(arrButtons,2)) = objShortcut.Description
          arrButtons(1,UBound(arrButtons,2)) = "<Input type=radio name=radioList id='" & objTarget.Drive & objTarget.Path & objTarget.fileName &_
          "' onClick=showRadioInfo>" & objShortcut.Description & "</BUTTON><BR>"
        Next
    End If
  Next
'perform a a shell sort of the string array based on button label
      For x = 0 To UBound(arrButtons,2) - 1
        For y = x To UBound(arrButtons,2)
          If StrComp(arrButtons(0,x),arrButtons(0,y),vbTextCompare) > 0 Then
              strKey           = arrButtons(0,x)
              strItem          = arrButtons(1,x)
              arrButtons(0,x)  = arrButtons(0,y)
              arrButtons(1,x)  = arrButtons(1,y)
              arrButtons(0,y)  = strKey
              arrButtons(1,y)  = strItem
          End If
        Next
      Next
'create combined buttons html code from sorted buttons array
  For x = 0 To UBound(arrButtons,2)
    strButtons = strButtons & "<tr><td id=buttonTd>" & arrButtons(1,x) & "</td></tr>"
  Next
 ' strButtons = strButtons & "</table>"
'create a start button with start image command and append and post resulting html to body
  body.innerHTML = strBody & strButtons & "<BR><HR><BR><button id=start Accesskey=S onclick=doTask(strTaskValue)><U>S</U>tart Image!</BUTTON><BR>"
  start.style.visibility="hidden"
End Sub

'****************************************************************************
'* doTask
'* run task selected by radio button
'****************************************************************************
Sub doTask(doMe)
  objShell.Run doMe
End Sub

'****************************************************************************
'* showRadioInfo
'* display details of radio button selection in details divider
'****************************************************************************
Sub showRadioInfo
Dim objTextFile, Radio, strRadioValue, strDetails
'set details and start element styles
  details.style.visibility    = "visible"
  start.style.visibility      = "visible"
'find checked button
  For Each Radio in Document.getElementsByName("radioList")
    If Radio.Checked = True Then
'create imaging command line from button id
      strTaskValue =  Chr(34) & "z:\imageshare\ghost\ghost32.exe" & Chr(34) & " -clone,mode=restore,src=" & Chr(34) & Radio.Id & ".gho" & Chr(34) & ",dst=1"
'display image details in details element if they exist
      If objFso.FileExists(Radio.Id & ".htm") Then
        Set objTextFile = objFso.OpenTextFile(Radio.Id & ".htm", 1)
        strDetails = objTextFile.ReadAll()
      Else
'display error message in details element if no matching details file found
        strDetails = "Can't find anything!!!<BR><BR>" &_
        "Make sure the info file has the same name as the .gho and has an .htm extension."
      End If
    End If
  Next
'post resulting html to details element
  Details.innerHTML = strDetails
End Sub

'****************************************************************************
'* Reset
'* reset the tool interface, also reloads the code (helpful for programming)
'****************************************************************************
Sub Reset
  Location.Reload(True)
End Sub

</Script>
<!****************************************************************************>
<!* End Script / Begin HTML                                                   >
<!****************************************************************************>

<BODY>
<DIV id=bg>
<img src=winpe.bmp>
</DIV>

<DIV id=body></DIV>
<DIV id=details></DIV>

<DIV id=tools>
<Button id=ghost   onclick=doTask('&quot;z:\imageshare\ghost\ghost32.exe&quot;')>Ghost</BUTTON> &nbsp;&nbsp;&nbsp;&nbsp;
<Button id=cmd     onclick=doTask('%comspec%')>            Cmd         </BUTTON> &nbsp;&nbsp;&nbsp;&nbsp;
<Button id=notepad onclick=doTask('notepad')>              Notepad     </BUTTON> &nbsp;&nbsp;&nbsp;&nbsp;
<Button id=taskmgr onclick=doTask('taskmgr')>              Taskmgr     </BUTTON> &nbsp;&nbsp;&nbsp;&nbsp;
<Button id=close   onclick=self.close()>                   Quit        </BUTTON> &nbsp;&nbsp;&nbsp;&nbsp;
<Button id=reset   onclick=reset>                          ResetApp    </BUTTON> &nbsp;&nbsp;&nbsp;&nbsp;
<Button id=reboot  onclick=self.navigate('reboot.hta')>    Reboot      </BUTTON>
</DIV>
</BODY>
</HTML>

<!****************************************************************************>
<!* End HTML                                                                  >
<!****************************************************************************>


#4
Tripredacus

Tripredacus

    K-Mart-ian Legend

  • Super Moderator
  • 10,020 posts
  • Joined 28-April 06
  • OS:Server 2012
  • Country: Country Flag

Donator

You realise you bumped a topic from 7 years ago!
Did you see my reply?
http://www.msfn.org/...post__p__978930
MSFN RULES | GimageX HTA for PE 3-5 | lol probloms
tpxmsfn1_zps393339c1.jpg

#5
rafael901

rafael901

    Newbie

  • Member
  • 11 posts
  • Joined 23-September 11
  • OS:Windows 7 x86
  • Country: Country Flag
I did copy to my winpe image and used the X: drive to call the hta file with no luck. the shortcut image buttons to my hta file will not show up. Only the background and the buttons at the bottom of the file show up.

#6
Tripredacus

Tripredacus

    K-Mart-ian Legend

  • Super Moderator
  • 10,020 posts
  • Joined 28-April 06
  • OS:Server 2012
  • Country: Country Flag

Donator

I did copy to my winpe image and used the X: drive to call the hta file with no luck. the shortcut image buttons to my hta file will not show up. Only the background and the buttons at the bottom of the file show up.


Copy all files to the ramdisk and launch from the ramdisk.
MSFN RULES | GimageX HTA for PE 3-5 | lol probloms
tpxmsfn1_zps393339c1.jpg




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users