Uruchomienie pliku exe po stronie klienta

Odpowiedz Nowy wątek
2012-12-11 15:20
0

Witam.

Próbuję uruchomić program na komputerze klienta poprzez stronę internetową. Założenie ma być proste. Klient klika w link i uruchamia dany program (putty). Niestety rozwiązanie jakie chciałem zastosować nie działa.

<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 
        APPLICATIONNAME="Application Executer" 
        BORDER="yes"
        CAPTION="yes"
        SHOWINTASKBAR="yes"
        SINGLEINSTANCE="yes"
        SYSMENU="yes"
        SCROLL="yes"
        WINDOWSTATE="normal">
    <script type="text/javascript" language="javascript">
        function RunFile() {
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Exec("c:/windows/system32/calc.exe", 1, false);
        }
    </script>
</head>
<body>
    <input type="button" value="Run Calc" onclick="RunFile();"/>
</body>
</html>

Powyższa wersja niestety nie działa ale może ktoś z was wie jak to zrobić aby uruchomić program z parametrami?


Linux [Debian], Arduino, Raspberry Pi, ESP8266, C++, Python.

Pozostało 580 znaków

2012-12-11 15:31
0

Jeśli klient ma uruchomić putty link powinien wystarczyć ("ssh://[email protected]") (system sam się domyśla co ma być uruchomione, tak u mnie działają linki do gaduGadu: "<a href="gg:2481235">").
Możliwość uruchamiania bezpośrednio programów takich jak kalkulator, to była by po prostu wielka dziurą bezpieczeństwa.
Jeśli się da, to by zadziałało, twoja strona musi mieć specjalne uprawnienia (np być na liście zaufanych witryn).

W sumie to nie napisałeś czy shell ci działa.

Na dodatek powinieneś najpierw sprawdzić jak ci działają takie przykłady.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 5x, ostatnio: MarekR22, 2012-12-11 15:51

Pozostało 580 znaków

2012-12-11 15:56
0

no właśnie odwołanie do protokołu ssh mi nie działa a nie mogę na każdym komputerze informować aby użytkownik dodał wpis do rejestru bo przy kilkuset osobach i przyszłych nowych będzie to problemem. dlatego szukam jakiegoś sposobu typu javascript aby uruchomić program będący w stałej ścieżce. Wiem że w php można uruchamiać aplikacje exe na komputerze ale na serwerze nic mi to nie daje. Liczyłem na to że po stronie klienta da się jakoś.

Nadal szukam sposobu :(


Linux [Debian], Arduino, Raspberry Pi, ESP8266, C++, Python.

Pozostało 580 znaków

2012-12-11 16:02
0

To działa mi lokalnie:

<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 
            APPLICATIONNAME="Application Executer" 
            BORDER="yes"
            CAPTION="yes"
            SHOWINTASKBAR="yes"
            SINGLEINSTANCE="yes"
            SYSMENU="yes"
            SCROLL="yes"
            WINDOWSTATE="normal">
    <script type="text/javascript" language="javascript">
        function RunFile() {
            if (window.ActiveXObject) {
                try {
                    var excelApp = new ActiveXObject("WScript.Shell");
                    excelApp.Run("calc");
                }
                catch (e) {
                    alert (e.message);
                }
            }
            else {
                alert ("Your browser does not support this example.");
            }
        }
    </script>
</head>
<body>
        <input type="button" value="Run Calc" onclick="RunFile();"/>
</body>
</html>

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
tyle, że on to chce magicznie ze strony internetowej odpalać - Rev 2012-12-11 16:03
nie wiadomo czego on chce dokładnie, ja jedynie naprawiłem jego przykład. Na IE działa na FF nie. Dzięki alertom przynajmniej od razu wiadomo co się dzieje. - MarekR22 2012-12-11 16:05

Pozostało 580 znaków

2012-12-11 16:04
Rev
0

Podaj jakiś szerszy kontekst. Do czego ci to ma służyć, po co chcesz to putty uruchamiać? Prowadzisz firmę hostingową czy co? Skoro klient ma mieć zainstalowany konkretny program w konkretnej lokalizacji to dlaczego nie możesz wymusić dodania odpowiedniej ścieżki do rejestru czy zainstalowania innej aplikacji klienckiej, która ci w tym pomoże?


edytowany 1x, ostatnio: Rev, 2012-12-11 16:05

Pozostało 580 znaków

2012-12-11 16:06
0

Służyć ma do uruchomienia terminala ssh z ip i portem podanym już do programu dzięki czemu użytkownik klikając w jeden link uruchomi program putty bez konieczności ręcznego dodawania ip i portu komputera na jaki chce się zalogować.


Linux [Debian], Arduino, Raspberry Pi, ESP8266, C++, Python.

Pozostało 580 znaków

2012-12-11 16:12
Rev
0

Możesz skonfigurować komputer po stronie klienta, by uri ssh odpalał przez putty albo użyć np. podpisany applet javy, który po akceptacji użytkownika będzie w stanie uruchomić aplikację na jego komputerze.


Pozostało 580 znaków

2012-12-11 16:25
0

IMO najrozsądniej jest dać linka userowi do oprogramowania, które skonfiguruję obsługę SSH (najlepiej spróbować to wykryć czy jest to konieczne), niż kombinować z ActiveX (gdzie user musi dodać stronę do białej listy i zmienić poziom zabezpieczeń), szczególnie, że takie rozwiązania prowadzą do stron "IE Only".


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2012-12-11 17:42
0

Poziom zabezpieczeń to nie problem - najważniejsze aby link uruchamiał putty tak na windowsie jak i na linuksie i najlepiej w każdej przeglądarce. Jeżeli nie uda mi się tego dokonać to niestety będę musiał użyć terminali ssh napisanych w html5 lub ajaxie i wpleść je w serwis a tego chciałbym uniknąć. Dlatego właśnie szukam rozwiązania aby zrobić tylko wywołanie pliku exe lub polecenia w linuksie do putty.

Niestety jeszcze nic takiego nie udało mi się znaleźć co by zadziałało. Mogło by być oparte nawet o certyfikaty bezpieczeństwa czy inne pierdoły byle by działało jak trzeba.


Linux [Debian], Arduino, Raspberry Pi, ESP8266, C++, Python.

Pozostało 580 znaków

2012-12-11 18:01
0

Ale skoro zakładasz że putty zawsze jest w określonej ścieżce (taa, takiej samej na linuksie i windowsie :P) - to chyba konfigurujesz każdy kliencki komputer sam?
Jeżeli tak - parę linijek w node.js i postawisz mały serwerek http, który po określonym żądaniu (np. pobranie "obrazka" z 127.0.0.1) uruchomi jakiś proces.

edit: generalnie nie ma opcji żebyś bez specjalnego przygotowania komputerów klienckich coś sobie uruchamiał wg uznania, bo tak to co druga strona odpalałaby "format C:"..


edytowany 1x, ostatnio: dzek69, 2012-12-11 18:03

Pozostało 580 znaków

2012-12-11 18:08
0

właśnie to nie problem bo wystarczy sprawdzić jakiego systemu używa użytkownik i zastosować odpowiedni parametr w funkcji. niestety masz rację że z uwagi na bezpieczeństwo jest to mało prawdopodobne i niestety coraz bardziej dąży do tego że będę musiał użyć terminala ssh wbudowanego w serwis :(


Linux [Debian], Arduino, Raspberry Pi, ESP8266, C++, Python.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0