2010-05-10 63 views
10

Tôi đang tạo báo cáo HTML bằng C# để in cặp tệp trong bảng có 3 cột: hai cột đầu tiên được sử dụng cho tên tệp và cột thứ 3 là siêu liên kết So sánh - Tôi muốn liên kết này chạy WinMerge để so sánh đến hai tệp và tôi hiện không biết cách thực hiện.Cách chạy chương trình bên ngoài, ví dụ: notepad, sử dụng siêu liên kết?

+2

Điều này là không thể nói chung, bởi vì bạn không thể biết những chương trình nào là availab trên một máy tính cụ thể. – Raedwald

Trả lời

15

Hãy thử điều này

<html> 
    <head> 
     <script type="text/javascript"> 
     function runProgram() 
     { 
      var shell = new ActiveXObject("WScript.Shell");     
      var appWinMerge = "\"C:\\Program Files\\WinMerge\\WinMergeU.exe\" /e /s /u /wl /wr /maximize"; 
      var fileLeft = "\"D:\\Path\\to\\your\\file\""; 
      var fileRight= "\"D:\\Path\\to\\your\\file2\""; 
      shell.Run(appWinMerge + " " + fileLeft + " " + fileRight); 
     } 
     </script> 
    </head> 

    <body> 
     <a href="javascript:runProgram()">Run program</a> 
    </body> 
</html> 
+0

Đây là những gì tôi muốn. Tôi thử và lưu ý rằng chúng tôi cũng cần cho phép trình duyệt chạy javascript và ActiveX. Cảm ơn rất nhiều! –

13

Xin lỗi câu trả lời này rất tệ, nhưng bạn không thể khởi chạy bất kỳ ứng dụng bên ngoài nào thông qua nhấp chuột, vì đây sẽ là vấn đề bảo mật nghiêm trọng, chức năng này không có sẵn trong HTML hoặc javascript. Hãy nghĩ đến việc chỉ tung ra cmd.exe với args ... bạn muốn khởi động WinMerge với các đối số, nhưng bạn có thể thấy các vấn đề bảo mật được giới thiệu bằng cách cho phép điều này cho bất cứ điều gì.

Các chỉ thể ngoại lệ khả thi tôi có thể nghĩ đến sẽ là một xử lý giao thức (vì đây là những rõ ràng xử lý được xác định), như winmerge://, mặc dù cách tốt nhất để vượt qua 2 thông số tập tin Tôi không chắc chắn của, nếu đó là một lựa chọn đáng để xem xét, nhưng tôi không chắc chắn bạn là ai hoặc không được phép làm gì với khách hàng, vì vậy đây có thể là một giải pháp không khởi động.

5

Cách hợp lý cách khởi chạy ứng dụng từ HTML là thông qua các lược đồ url. Vì vậy, bạn có thể khởi chạy email qua liên kết mailto: và irc qua các liên kết irc:. Các ứng dụng riêng lẻ có thể triển khai các lược đồ này, nhưng tôi không chắc rằng WinMerge có thực hiện điều này hay không.

2

Thực hiện một tập tin thực thi và gọi file bacth trong Window.open. Dưới đây như thế nào nó hoạt động

  1. tạo ra một tập tin trong notepad
  2. viết kịch bản của bạn: bắt đầu wmplayer "\ DotNet \ sc \ 1234.mp4"/toàn màn hình
  3. tiết kiệm như: test.bat trong \ DotNet \ sc \ test.bat

trong html

window.open ('file: //dotnet/sc/test.bat')

Thưởng thức ..

Các vấn đề liên quan