1. 程式人生 > >如何通過程式程式碼開啟EXE應用或者檔案

如何通過程式程式碼開啟EXE應用或者檔案

通過Java後臺呼叫本地exe程式

JAVA後臺無法實現開啟客戶端上的應用程式以及檔案,是由於JAVA本身的安全性限制,只能開啟伺服器本地的程式以及檔案,直接上程式碼,測試執行即可。

import java.awt.Desktop;  
import java.io.File;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;
public class exec {
    /**
     * @author Sunxy Create By 2017-9-18 上午11:49:38
     * @do TODO
     * @param args
     * @throws IOException 
     */
public static void main(String[] args) throws IOException { useProcessBuilder(); useAWTDesktop(); useRuntimeExec(); } /** * 藉助java.lang.ProcessBuilder開啟 * @throws IOException */ private static void useProcessBuilder() throws IOException{
//new ProcessBuilder("notepad.exe", "C:/Users/Jadyer/Desktop/test file/readme.txt").start(); List<String> commands = new ArrayList<String>(); commands.add("D:/softWare/WeChat/WeChat.exe"); //commands.add("F:/C.Project/便籤.txt"); new ProcessBuilder(commands)
.start(); } /** * 藉助java.awt.Desktop開啟 * @see 開啟的目錄或檔名中允許包含空格 */ private static void useAWTDesktop() throws IOException{ Desktop.getDesktop().open(new File("F:/C.Project/便籤.txt")); } /** * 藉助java.lang.Runtime開啟 * @see WPS文字--------Runtime.getRuntime().exec("cmd /c start wps") * @see WPS表格--------Runtime.getRuntime().exec("cmd /c start et") * @see WPS演示--------Runtime.getRuntime().exec("cmd /c start wpp") * @see Office Word---Runtime.getRuntime().exec("cmd /c start winword") * @see Office Excel--Runtime.getRuntime().exec("cmd /c start excel") */ private static void useRuntimeExec() throws IOException{ /* * 若開啟的目錄或檔名中不包含空格,就用下面的方式 */ Runtime.getRuntime().exec("cmd /c start D:/softWare/WeChat/WeChat.exe"); Runtime.getRuntime().exec("cmd /c start F:/C.Project/便籤.txt"); /* * (可以'執行'或'Win+R',然後輸入'cmd /?'檢視幫助資訊) */ //Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "D:/my local/測試用例.xls"}); /* * 藉助本地安裝程式開啟 * 若開啟的目錄或檔名中包含空格,它就無能為力了..不過本地程式的安裝目錄允許含空格 */ String etCommand = "D:/Program Files/WPS/8.1.0.3526/office6/et.exe"; String filePath = "D:/mylocal/測試用例.xls"; Runtime.getRuntime().exec(etCommand + " " + filePath); } /** * public static void main(String[] args) { String path = "D:\\public.bat"; Runtime run = Runtime.getRuntime(); try { // run.exec("cmd /k shutdown -s -t 3600"); Process process = run.exec("cmd.exe /k start " + path); InputStream in = process.getInputStream(); while (in.read() != -1) { System.out.println(in.read()); } in.close(); process.waitFor(); } catch (Exception e) { e.printStackTrace(); } } */ }

JS開啟客戶端上的應用程式或者檔案(登錄檔方式)

如果要實現通過點選頁面上,開啟本地程式,則使用js程式碼來是實現。

  1. 使用記事本(或其他文字編輯器)建立一個openWeChat.reg檔案,並寫入以下內容(還可以傳遞引數)
Windows Registry Editor Version 5.00 
[HKEY_CLASSES_ROOT\openWeChat]  
@="URL:openWeChat Protocol" 
"URL Protocol"="D:\\softWare\\WeChat\\WeChat.exe" 
[HKEY_CLASSES_ROOT\openWeChat\DefaultIcon]  
@="D:\\softWare\\WeChat\\WeChat.exe" 
[HKEY_CLASSES_ROOT\openWeChat\shell]  
[HKEY_CLASSES_ROOT\openWeChat\shell\open]  
[HKEY_CLASSES_ROOT\openWeChat\shell\open\command]  
#@="cmd /c set m=%1 & call set m=%%m:openNotepad:=%% & call \"D:\\softWare\\Notepad++\\notepad++.exe\" %%m%% & exit"
@="D:\\softWare\\WeChat\\WeChat.exe"
  1. 修改引數,按下圖修改這幾處後,儲存為xxx.reg檔案,雙擊執行,登錄檔註冊成功。 在這裡插入圖片描述 在這裡插入圖片描述
  2. 呼叫,在html中引用<a href="openWeChat:">微信</a> openWeChat 對應登錄檔中的名稱,注意後面的冒號不要丟掉
<!-- 操作 選單 -->
<li class="menu-item">
    <div class="menu">
        <a class="menu-hd"  style="width:68px;">操作<b class="bt"></b></a>
            <div class="menu-bd" style="width:80px;line-height:1.7;" role="menu" aria-hidden="true" id="menu-4">
                <div id = "oper">
                    <a href="openWeChat:">微信</a>
                </div>
            </div>
    </div>
</li>

在這裡插入圖片描述

老生常談