2012-07-27 6 views
0

Comment puis-je exécuter une autre application locale (application développée en utilisant C#) via le site Web ASP.net et envoyer des paramètres à l'application locale (comme le nom, le fichier source)?Exécuter une autre application locale dans le site Web ASP.net

(Je comprends qu'il y aura des risques de sécurité pour cela, mais je considérerai suggestions) Merci à l'avance,

Répondre

1

Vous pouvez gérer votre propre protocole d'URL comme Skype fait:

phone://123546 
localapp://data 

puis créer un lien

<a href="localapp://data">Open App</a> 

ou essayez de rediriger sur le Serverside

Response.Redirect("localapp://data"); 

and handle it

Exemple:

Local Application (c: \ localapp.exe):

using System; 
class LocalApplication 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
    Console.WriteLine(args[0]); 
    Console.ReadLine(); 
    } 
} 

Registre:

HKEY_CLASSES_ROOT 
    localapp 
      (Default) = "URL:Local App" 
      URL Protocol = "" 
      shell 
       open 
        command 
         (Default) = "c:\localapp.exe" "%1" 

Html:

<a href="localapp://Hello">Start LocalApp</a> 
+0

Merci pour l'idée. J'envisage cela aussi ... – lexeRoy

+0

Nous l'avons effectivement utilisé et cela fonctionne comme un charme. Mais il est limité aux paramètres simples –

+0

pouvez-vous me donner un exemple pour cela? Merci d'avance! – lexeRoy

0

Voulez-vous dire commencer un programme local sur le serveur ou sur le client?

Sur le serveur, vous pouvez start a process et passer les paramètres de la ligne de commande pour les informations dont vous avez besoin d'accéder.

+0

Démarrez le programme local le côté client de leur machine locale .. Merci ... – lexeRoy

+1

Pas possible. Restrictions de sécurité du navigateur – nunespascal

+0

@nunespascal - Eh ... peut-être un contrôle ActiveX (sont-ils encore là?) Quoi qu'il en soit, cela semble être une mauvaise idée. – Tommy

0

Cela n'est pas possible en raison des restrictions de sécurité sur la plupart des navigateurs modernes.

Si vous pouvez restreindre vos utilisateurs à IE (très mauvaise pratique), les contrôles ActiveX pourraient le faire. Voici un petit extrait de code.

<SCRIPT Language="JScript"> 
function runcmd() { 
File="cmd.exe"; 
WSH=new ActiveXObject("WScript.Shell"); 
WSH.run(File); 
} 
</SCRIPT> 
+0

Oui. Je le sais mais je pense que je ne peux pas les restreindre. – lexeRoy

Questions connexes