Eseguire applicazione su client da pagina aspx

martedì 03 giugno 2008 - 19.19

engium2000 Profilo | Newbie

Ciao a tutti, è il primo post che scrivo anche se spesso ho preso spunto dal forum. Il mio problema è questo: Ho realizzato una web application su piattaforma .Net Framework 2.0 che risiede sul server, da un client carico una pagina aspx contenente un Javascript:
<script type="text/javascript" language="Javascript"> void function Run() { WSH = new ActiveXObject("WScript.Shell"); WSH.Run('C:\masterizza.vbs'); } </script>

ed un pulsante

<asp:Button ID="RLU008" runat="server" CssClass="inputButtonDx" Text="Masterizza"/>

durante il caricamento della pagina, lato codice (file .cs) aggiungo al pulsante l'attributo "OnClick"

RLU008.Attributes.Add("onclick", "javascript:Run();");

Il contenuto del file .vbs è questo:

strComputer = "." strCommand = "C:\notepad.exe" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") ' Configure the Notepad process to show a window Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = 5 ' Create Notepad process Set objProcess = objWMIService.Get("Win32_Process") intReturn = objProcess.Create (strCommand, Null, objConfig, intProcessID)

Alla pressione del pulsante, si dovrebbe aprire Notepad (che per l'occasione ho copiato nella posizione c:\ del client), ma non succede assolutamente nulla e non ho idea del perchè.
Ringrazio in anticipo chiunque saprà darmi una mano, grazie e buona serata Marcello.

19018 Profilo | Expert

Sei sicuro che notepad.exe si trovi in c:\ ?
Stefano Passatordi

http://blogs.dotnethell.it/stem/

engium2000 Profilo | Newbie

Ciao e grazie per la risposta,
Ti confermo che il file notepad.exe è presente nel percorso c:\ così come il file vbs. Inoltre posso confermare che il file vbs è efficace in quanto se seseguito da risorse del computer apre effettivamente notepad.exe.

Nuovamente grazie,
Marcello.

engium2000 Profilo | Newbie

...per errore cliccando su accetta ho chiuso il tread, è possibile riaprirlo?
Grazie e scusate l'inesperienza

19018 Profilo | Expert

Infatti non capivo perchè hai accettato :)
Cmq hai fatto un debug per vedere se Run viene chiamata sul client?
Stefano Passatordi

http://blogs.dotnethell.it/stem/

engium2000 Profilo | Newbie

Si, il file vbs viene eseguito senza alcun errore, il problema potrebbe essere inerente a qualche particolare autorizzazione da impostare da qualche parte.... ma non capisco dove...

19018 Profilo | Expert

Hai detto che se esegui il file vbs in locale allora funziona mentre eseguendolo dal client allora non funziona..se è così allora credo anche io che sia un problema di permessi.
Se non va ti restituisce di sicuro un errore, devi intercettare la descrizione dell'errore per capire.
Stefano Passatordi

http://blogs.dotnethell.it/stem/

NeoMatrix77 Profilo | Newbie

Ciao, ho un tuo problema analogo. Sei per caso riuscito a risolverlo? Quello che ho notato io è che l'applicazione che cerco di avviare sul client, in realtà viene avviata come processo sul server.

balfaz Profilo | Expert

io ho avuto un problema simile, l'ho sistemato usando il Href per chiamare il file, si fai una prova te ne accorgerai. Preme ctrl + alt + canc e vedrai nel server che l'applicazione voleva eseguirsi ma non è riuscita, dovuto a che stai nel server chiamando dal client il .exe che si trova dove????? (domanda per farti riflettere), questo porta problemi di sicurezza e autorizzazione, come dicevo prima ho risolto con il href usando un file .rtf, ho trovato un software molto buono ma un po caro chiamato aspose che ti gestisce senza problemi questo fatto.

Con questo non dico che non cè una soluzione, anzi se la trovi comunicala un po a tutti noi, quello che ti ho riferito è per darti una dritta del percorso che ti consiglio di seguire
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

NeoMatrix77 Profilo | Newbie

Ciao,
grazie per la risposta, ma non so dove mettere il href

posto tutto quello che ho messo:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Pagina senza titolo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script type="text/javascript" language="Javascript">
void function Run()
{
WSH = new ActiveXObject("WScript.Shell");
WSH.Run("C:\masterizza.vbs");
}
</script>
<asp:Button ID="RLU008" runat="server" CssClass="inputButtonDx" Text="Masterizza"/>

</div>
</form>
</body>
</html>


Qualcuno sa darmi una mano?

balfaz Profilo | Expert

solo per provare usa questa riga per vedere se può soddisfare la tua necessita

System.Diagnostics.Process.Start("C:\windows\notepad.exe")
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5