Jest to wewnętrzna aplikacja internetowa, w której chcielibyśmy, aby strony WWW zawierały łącza do kilku narzędzi, które są Win32 EXE. Pliki EXE są nam zaufane i wyprodukowane. (nie przejmuj się, czy zapyta, czy można uruchomić lub zapisać). Próbowałem bezpośredniego łącza (np. C: \ notepad.exe), które działa tylko lokalnie. (To będzie udział w sieci). Próbowałem pliku: /// i nie działa. IE7 jest przeglądarką potrzebną.Jak uruchomić EXE ze strony internetowej (asp.net)
Odpowiedz
Jak o czymś takim:
<a href="\\DangerServer\Downloads\MyVirusArchive.exe"
type="application/octet-stream">Don't download this file!</a>
-1 - To by pobierało exe za każdym razem. Wymagałoby to każdorazowo pobrania i instalacji. Ale pytanie brzmi, jak uruchomić exe, który jest już na komputerze użytkownika. Całkowicie inny czajnik rybny. –
@Larry: Myślę, że mylisz się w swojej interpretacji. W mojej opinii PO mówi, że pliki wykonywalne są przez nich produkowane (być może określony dział w organizacji) i muszą być dostępne do pobrania, a następnie do realizacji całej organizacji. – Cerebrus
Jeśli chcesz uruchomić aplikację na pulpicie użytkownika po kliknięciu łącza lub przycisku na stronie internetowej, a Twoje aplikacje stacjonarne znajdują się w .NET, możesz skorzystać z opcji ClickOnce, aby wdrożyć aplikacje. ClickOnce ułatwi dystrybucję aplikacji w tym dworku. –
Czy próbowałeś UNC share?
\\server\share\foo.exe
Można zobaczyć, jak iTunes robi to za pomocą Skrzypek śledzić działania, gdy korzystając z linku: http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=80028216
- Pobiera plik js
- na oknach: plik js określa, czy program iTunes został zainstalowany na komputerze lub nie: szuka komponentu przeglądarki ACTIVEX IE, albo wtyczki przeglądarki czy FF
- Jeśli iTunes jest zainstalowany następnie przeglądarka jest przekierowany do Adres URL ze specjalnym transportem: itms: // ...
- Przeglądarka wywołuje procedurę obsługi (dostarczoną przez program exe programu iTunes). Obejmuje to uruchomienie exe, jeśli jeszcze nie działa.
- iTunes exe wykorzystuje resztę specjalnego adresu URL, aby wyświetlić określoną stronę użytkownikowi.
Należy zauważyć, że exe, po zainstalowaniu, zainstalował obsługę protokołów URL dla "itms" transportu z przeglądarkami.
Nie jest to prosty projekt inżynieryjny, który można powielać, ale zdecydowanie można go wykonać. Jeśli to zrobisz, rozważ utworzenie odpowiedniego oprogramowania o otwartym kodzie źródłowym.
Mówisz, że masz problemy z wstawieniem do strony internetowej linku do pliku, który ma rozszerzenie .exe?
Jeśli tak, to cofnij się o jeden krok. Wyobraź sobie, że plik ma rozszerzenie .htm lub rozszerzenie .css. Jak możesz to ściągnąć? Jeśli jest to łącze statyczne, odpowiedź jest jasna: plik musi znajdować się w katalogu docroot aplikacji ASP.NET. Usługi IIS + ASP.NET obsługują wiele rodzajów treści: pliki .htm, pliki .css, pliki .js, pliki obrazów, domyślnie. Wszystkie te pliki znajdują się gdzieś pod docroot, domyślnie c: \ inetpub \ wwwroot, ale dla twojego webappa z pewnością jest coś innego. Fakt, że plik, który chcesz eksponować ma rozszerzenie .exe, nie zmienia podstawowych praw fizyki IIS. Exe musi żyć pod dowrotem. Element sieciowy może działać w przypadku niektórych przeglądarek.
Alternatywą oczywiście jest dynamiczne zapisywanie zawartości pliku bezpośrednio do Response.OutputStream. W ten sposób nie potrzebujesz, aby plik .exe był w twoim docroot, ale nie jest to bezpośredni link do pobrania. W tym scenariuszu plik może zostać pobrany za pomocą kliknięcia przycisku.
coś takiego:
Response.Clear();
string FullPathFilename = "\\\\server\\share\\CorpApp1.exe";
string archiveName= System.IO.Path.GetFileName(FullPathFilename);
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "filename=" + archiveName);
Response.TransmitFile(FullPathFilename);
Response.End();
Tak, bardzo dobra odpowiedź i dzięki za przypomnienie. Jednak EXE ładuje ustawienia konfiguracyjne z folderu ładowania, więc musiałbym przepisać, aby załadować z konfiguracji witryny sieci Web. – JoeJoe
Alternatywą jest spakowanie rzeczywistej aplikacji wraz z jej plikiem konfiguracyjnym i wszystkim, czego potrzebuje, w samorozpakowującym archiwum ZIP (SFX), a następnie pobieranie THAT. SFX może określać polecenie execute-after-unpack, które może być poleceniem rozpakowanego pliku. Byłby wówczas w stanie normalnie załadować swój plik .config. Problem polega na tym, że przeciąłbyś przewód. Centralnej konfiguracji nie można zaktualizować. Po skopiowaniu do HD użytkownika, pozostanie tam. – Cheeso
ps: DotNetZip jest (bezpłatną) biblioteką .NET, która umożliwia tworzenie samorozpakowujących się archiwów za pomocą polecenia execute-after-unpack. W ramach wykonywania strony ASP.NET można dynamicznie utworzyć SFX, a następnie pobrać go do HD użytkownika za pomocą metody TransmitFile(). – Cheeso
W ramach solution sugerował, że Larry K, rejestrując swój własny protokół może być możliwe rozwiązanie. Strona internetowa może zawierać prosty link do pobrania i zainstalowania aplikacji, która następnie rejestruje swój własny protokół w rejestrze systemu Windows.
Strona internetowa zawierałaby wtedy odsyłacze z parametrami, które spowodowałyby otwarcie programu registerd i przekazanie do niego parametrów podanych w odnośniku. Istnieje dobry opis jak to zrobić na MSDN
Zakłada exe jest gdzieś wiesz na komputerze użytkownika:
<a href="javascript:LaunchApp()">Launch the executable</a>
<script>
function LaunchApp() {
if (!document.all) {
alert ("Available only with Internet Explorer.");
return;
}
var ws = new ActiveXObject("WScript.Shell");
ws.Exec("C:\\Windows\\notepad.exe");
}
</script>
Dokumentacja: ActiveXObject, Exec Method (Windows Script Host).
Działa to świetnie! Dla każdego, kto chce uruchomić aplikację z interfejsu użytkownika i może sobie pozwolić na ograniczenie dystrybucji do IE, jest to znacznie łatwiejsze niż budowanie interfejsu użytkownika w .NET lub Qt itp. Doskonałe również do pisania interfejsów użytkownika w celu testowania EXE. –
Jak możemy uruchomić Chrome w powyższy sposób? – Ganesh
'ActiveXObject' działał tylko dla IE – ashkufaraz
jeśli aplikacje są C#, możesz użyć ClickOnce deployment, co jest dobrym rozwiązaniem, jeśli nie możesz zagwarantować, że użytkownik będzie miał aplikację, jednak będziesz musiał ponownie zbudować aplikacje z opcjami wdrażania i pobrać niektóre kod z każdego projektu. Można także użyć Javascript.
Możesz też zarejestrować aplikację pod numerem handle a new web protocol, którą możesz zdefiniować. Może to być także protokół "wyboru aplikacji", więc za każdym razem, gdy kliknie się aplikacja, będzie ona łączyła się ze stroną w nowym protokole, cała obsługa tego protokołu jest następnie przekazywana do twojej "aplikacji selekcyjnej", która używa argumentów do wyszukiwania i uruchamiania aplikacja na komputerze klienta.
HTH
W oknach, określony protokół aplikacji może zostać zarejestrowany w Rejestrze. W tym msdn doc wyświetlono rejestrację aplikacji na schemacie URI.
Na przykład należy uruchomić plik wykonywalny "alert.exe". Poniższy element można zarejestrować.
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe"
Następnie można napisać html przetestować
<head>
<title>alter</title>
</head>
<body>
<a href="alert:" >alert</a>
<body>
- 1. jQuery post ze strony internetowej ASP.NET (WebMatrix)
- 2. zintegrować CMS ze strony internetowej istniejącej ASP.NET
- 3. Wyładuj CSS ze strony internetowej
- 4. Uzyskiwanie danych ze strony internetowej
- 5. Miniprofiler dla strony internetowej ASP.NET
- 6. Jak utworzyć mobilną wersję strony internetowej ASP.NET?
- 7. Pobierz tekst ze strony internetowej na ciąg
- 8. Pobieranie obrazu miniatury ze strony internetowej
- 9. Pobierz kod źródłowy ze strony internetowej Apple
- 10. Drukowanie na drukarce etykiet ze strony internetowej/aplikacji internetowej?
- 11. Jak uruchomić exe w InnoSetup?
- 12. Otwarte android aplikacji ze strony internetowej
- 13. pobierz wartość tagu body ze strony internetowej
- 14. Python XML parsing ze strony internetowej
- 15. Wklejanie obrazu ze schowka do strony internetowej
- 16. Przechwyć multimedialne klucze ze strony internetowej?
- 17. Wyciąg Meta Słowa kluczowe ze strony internetowej?
- 18. Programowe tworzenie pliku PDF ze strony internetowej
- 19. Jak uzyskać dostęp do strony Resource.resx ze strony ASP.NET?
- 20. Jak uruchomić program ASP.NET 5 bez otwierania strony w przeglądarce
- 21. zwiększyć wydajność strony internetowej?
- 22. Statyczny generator strony internetowej
- 23. Jak usunąć stronę z informacjami kontaktowymi ze strony internetowej?
- 24. Jak przechwycić każdą prośbę AJAX ze strony internetowej
- 25. Jak zdobyć JSON ze strony internetowej do skryptu Pythona
- 26. Jak można analizować zawartość dynamiczną ze strony internetowej?
- 27. Jak uzyskać favicon.ico ze strony internetowej za pomocą Java?
- 28. Jak pobrać wszystkie obrazy ze strony internetowej za pomocą wget?
- 29. Powracanie obiektu JSON ze strony ASP.NET
- 30. Jak mogę pobrać aktualnie zalogowane konto Windows ze strony ASP.NET?
prawdziwe odpowiedzi tutaj: http://stackoverflow.com/questions/3057576/launch-application-from-a-browser – pdem