基於windows!!
模擬mailto://***x
主要參考:
1、在網頁上本地辦公
網頁應用越來越方便,基於mfc等可視介面的應用越來越乏力。需求:在網頁上開啟乙個本地的檔案
不過當檔案比較大的時候,經常會打不開,而且對網路要求比較高
3、檔案在cmdline中開啟的方式一般是: "***.exe 檔案路徑+檔名」
1、打通url鏈結與指定處理程式(.bat、.exe 都行)進行關聯以及傳參(檔案路徑+檔名)
開啟登錄檔編輯器,在 hkey_classes_root路徑下建立上圖所示的東東。
也可以建立乙個.reg檔案,自動新增一些東西。
windows registry editor version 5.00
[hkey_classes_root\share]
@="url:share protocol"
"url protocol"="c:\\cmd批處理\\share.bat"
[hkey_classes_root\share\defaulticon]
@="c:\\program files (x86)\\microsoft office\\root\\office16\\winword.exe,1"
[hkey_classes_root\share\shell]
@="open"
[hkey_classes_root\share\shell\open]
@="open"
[hkey_classes_root\share\shell\open\command]
@="c:\\cmd批處理\\urlfileopen.exe %1"
問題1,share按理說可以換成其他自定義的string,我試了乙個urlfileopen的字串,未成功!
問題2,defaulticon的值一定是 '***.exe,1' ,至於其他的,我也沒試
問題3,command的值需要對應於自己的批處理程式, %1 是形參接受
問題4,可能是我的reg檔案寫的不對,有些值沒新增上去,比著上面那個新增即可
2、批處理程式的編寫
import sys #引入模組
import os
from urllib.parse import unquote
import urllib
str = sys.ar**[1]
exepath=
# os.system('start')
print(str)
str=unquote(str)
#str=share://word?***
# 注意鏈結傳過來 ?-》/? 多乙個字元
str=str[8:]
print(str)
if str[:4]=="word":
print(str[5:])
os.system('start "'+exepath['word']+'" "'+str[6:]+'"')
elif str[:3]=="ppt":
os.system('start "'+exepath['ppt']+'" "'+str[5:]+'"')
elif str[:5] == "excel":
os.system('start "' + exepath['excel'] + '" "' + str[7:] + '"')
elif str[:3]=="rar":
os.system('start "'+exepath['rar']+'" "'+str[5:]+'"')
elif str[:3]=="txt":
os.system('start "'+exepath['txt']+'" "'+str[5:]+'"')
elif str[:3]=="pdf":
os.system('start "'+exepath['pdf']+'" "'+str[5:]+'"')
#轉exe
# pyinstaller -f d:\python\login.py
最後使用pyinstaller -f ***.py生成.exe檔案。
這裡需要說明兩點:
問題1:前端的a標籤的href="share://word?***" ,其中***是本地路徑加檔名
問題2:瀏覽器會對url鏈結進行encode, "?"前面會加乙個『/』(解碼後,使用chrome瀏覽器),所以os.system('start "'+exepath['pdf']+'" "'+str[5:]+'"')中,str切片後移乙個。
問題3:本來實現可以不用這麼麻煩,又python又exe的,其實乙個.bat檔案即可。由於水平有限,不會使用bat對url進行解碼(簡單的編碼轉換)。第乙個鏈結中給了乙個例子了,但沒有對url進行解碼
echo off
rem 接收uri位址(share://ppt?c:\users\liushaofeng\desktop\pluggableprotocol.pptx)
set protocol_address=%1
rem 接收到檔案型別和檔案位址(ppt?c:\users\liushaofeng\desktop\pluggableprotocol.pptx)
set file_type_path=%protocol_address:~8%
rem 檔案型別為ppt時,擷取檔案路徑,並傳遞給word
if %file_type_path:~0,3%==ppt (
rem 啟動本地word程式,並傳入檔案路徑位址
echo %file_type_path:~4%
start powerpnt %file_type_path:~4%
)rem 其他檔案型別,可以模仿著往下寫
exit
3、前端鏈結
前端的a標籤的href="share://word?***" ,其中***是本地路徑加檔名
android Intent開啟URL鏈結
一 開啟鏈結intent it new intent intent.action view,uri.parse it.setclassname com.android.browser com.android.browser.browseractivity getcontext startactivi...
shell指令碼測試url是否通
最近在寫雙機部署的shell指令碼,需要通過測試指定的url來確定專案 springboot 是否啟動成功,思路 通過curl命令來訪問指定的url curl引數說明 i head 僅返回頭部資訊,使用head請求 m 10 最多查詢10s o dev null 遮蔽原有輸出資訊 s silent ...
node開啟本地應用程式
最簡單的方法 const cp require child process cp.exec start 自動開啟預設瀏覽器 另一種方法是安裝open 依賴包 const open require open async opens the url in the default browser.awai...