6 Stimmen

Starten einer ausführbaren Datei von einer Website?

Wir entwickeln eine Website, die nur im Intranet läuft, und auf Computern mit Zugang zu diesem Intranet wird diese ausführbare Datei installiert. Wir können keine Aufforderungen wie "Möchten Sie [Dateiname].exe öffnen?" gebrauchen. Klicken Sie auf einen Link und das Programm wird gestartet.

Mir ist klar, dass es sehr, sehr schlecht ist, Websites die Möglichkeit zu geben, ausführbare Dateien auf dem Client-Rechner auszuführen, aber die Geschäftsleitung weigert sich, in diesem Punkt nachzugeben.

Die Rechner müssen mit Windows (XP oder höher) und Firefox 3 ausgestattet sein.

12voto

Jason Punkte 16509

Wir entwickeln eine Website, die nur im Intranet läuft, und auf den Computern, die Zugang zu diesem Intranet haben, wird diese ausführbare Datei installiert.

Bedeutet dies, dass die EXE bereits auf dem Desktop installiert ist? Sie wollen sie nur von der Website aus starten?

Wenn ja, können Sie die EXE mit einem MIME-Inhaltstyp und wenn der Benutzer darauf klickt, wird es gestartet.

Wählen Sie einen Inhaltstyp und eine Dateierweiterung, z. B. für Ihren EXE-Namen:

CauseChaos.exe
Associated with .chaos file extenstion
Content Type will be: application/chaos

Verknüpfen Sie die Dateierweiterung mit Ihrer EXE über die EXE-Installation. Ich zeige es hier, mit InnoSetup

[Registry]
Root: HKCR; Subkey: .chaos; ValueType: string; ValueData: CauseChaos; Flags: uninsdeletekey
Root: HKCR; Subkey: CauseChaos; ValueType: string; ValueData: CauseChaos Tool; Flags: uninsdeletekey 
Root: HKCR; Subkey: CauseChaos\DefaultIcon; ValueType: string; ValueData: {app}\CauseChaos.exe,0; Flags: uninsdeletekey
Root: HKCR; Subkey: CauseChaos\shell\open\command; ValueType: string; ValueData: "{app}\CauseChaos.exe ""%1"""; Flags: uninsdeletekey

Verknüpfen Sie den MIME-Inhaltstyp mit der Dateierweiterung, indem Sie die EXE-Installation durchführen.

[Registry] (continued...)
Root: HKCR; Subkey: HKCR\Mime\Database\Content Type\application/chaos; ValueType: string; ValueName: Extension; ValueData: .chaos; Flags: uninsdeletevalue

3voto

MSalters Punkte 166675

Das habe ich schon gemacht. MIME-Typen (akzeptierte Antwort im Moment füge ich dies hinzu) erfordert eine Menge Konfiguration auf Client und Server.Dies ist ziemlich viel Arbeit, und Sie enden mit temporären Dateien usw.

Unsere Lösung bestand darin, unseren eigenen "Custom URL Protocol Handler" hinzuzufügen. Grundsätzlich fügen Sie den URL-Typ x-our-intranet hinzu und machen Ihre Unternehmensanwendung zum URL-Handler dafür. Nun wird jeder Link Ihre Unternehmensanwendung starten, wobei "x-our-intrenet:foo" als Befehlszeilenargument übergeben wird. Alles, was es braucht, ist ein clientseitiger Registrierungseintrag, ähnlich wie bei den MIME-Typen.

1voto

Rutesh Makhijani Punkte 16545

Probieren Sie dieses JavaScript aus:

function executeCommands(inputparms)
{
// Instantiate the Shell object and invoke its execute method.

var oShell = new ActiveXObject("Shell.Application");

var commandtoRun = "c:\windows\Notepad.exe";

// Invoke the execute method. 
oShell.ShellExecute(commandtoRun, commandParms, "", "open", "1"); 
}

Sie müssen die Sicherheitseinstellungen des Browsers entsprechend anpassen, und dies funktioniert nur im IE.

0voto

TheTXI Punkte 36691

Die einzige Möglichkeit, die ich mir vorstellen kann, ist eine Art ActiveX-Steuerelement, das Ihre ausführbare Datei ausführt, aber ich weiß nicht, wie machbar das mit Firefox ist.

Dies sollte einer der Punkte sein, bei dem - Sie - sich weigern sollten, sich zu bewegen, nicht das Management.

0voto

Simon Punkte 74705

Ich empfehle Ihnen, einen Blick zu werfen auf Adobe Flex / Air Es wurde speziell für dieses Modell und das damit verbundene Sicherheitstor entwickelt, das es öffnet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X