自訂 Surface Pen 4 對應OneNote 2016 ( by AutoHotKey )

新增下載點

先感謝前面幾位先進的感召跟 Reddit forum 上頭的幾位高手文章,我也修改一版 AutoHotkey 來對應 Surface Pro 4 上的Surface Pen 4

我希望達成的目標

1) 頂部按鈕按一下可啟動 OneNote 2016 桌機版
1.1) 如果OneNote 2016 桌機版已啟動,但是不是在前景(也就是你現在有別支程式擋在OneNote 2016前方),則切換到已啟動的那個OneNote 2016 執行序去 (現在的Surface App 會自動開個新的...)
1.2) 如果OneNote 2016 桌機版已啟動,而且已經在前景,則會自動開個新頁面
1.3) 如果目前在Power Point 的投影模式,則不管OneNote,而改成自動跳下一頁slide

2) 頂部雙擊會啟動OneNote 2016 的螢幕截圖功能 (可用筆或滑鼠選擇截圖區域,選取後存到剪貼簿)
2.1) 如果OneNote 2016 的小工具還未載入 (沒載入不能執行 OneNote 2016的截圖功能),則先載入再截圖
2.2) 如果目前在Power Point 的投影模式,則不管OneNote,而改成自動跳回前一頁slide

[2015-12-23 12:21更新]
3) 新增在PowerPoint 投影模式時長按頂部鍵可讓你的Surface Pen在 筆/雷射光點 模式之間切換。平常時依舊照樣啟動你原本透過Surface App設定的長按鍵功能 (不喜歡這種功能的人就可以整個忽略 #F18:: 開始後面那幾行)


也在此感謝原始Script的撰寫者討論
感謝PowerPoint 切換筆模式的原作

P.S. 以下這組Script是對應 OneNote 2016 32位元版, 如果你是裝 64 位元版,請把兩段路徑的" (X86)"都拔掉
P.P.S. 如果你的Office 不是2016,(話說OneNote 2016都已經免費了...)或者你的Office不是裝在預設位置,也請自己改掉script裡的對應路徑


使用法:
1)去下載 AutoHotKey 後並執行 (AutoHotKey 官網在這裡)
2)把下面這段廢話...呃我是指script,copy/paste 存成一個 SurfacePen.ahk 檔(或是存進純文字檔再改副檔名為 ahk,主檔名其實是隨便你取的)
3)點擊兩下這個ahk檔
4)可以開始使用啦! (請記住AutoHotKey是每次開機後得重新執行這組script才會有效,想不想加個開機自動執行就看個人了)



#F20::
PathOneNote := "C:\Program Files (x86)\Microsoft Office\root\Office16\OneNote.exe"
IfWinExist ahk_class screenClass
{
Send {Space}
return
}
IfWinNotExist ahk_exe OneNote.exe
{
Run, %PathOneNote%
return
}
IfWinActive ahk_exe OneNote.exe
{
Send, ^n
return
}
IfWinExist ahk_exe OneNote.exe
{
WinActivate
return
}
#F19::
IfWinExist ahk_class screenClass
{
Send {Left}
return
}
else
{
ProcessOneNoteSnip = ONENOTEM.exe
PathOneNoteSnip := "C:\Program Files (x86)\Microsoft Office\root\Office16\OneNoteM.exe"

Process, Exist, %ProcessOneNoteSnip%
If (ErrorLevel = 0){
run, %PathOneNoteSnip%
sleep 500
}
send, {LWin down}{Shift down}{s}
Sleep, 500
send, {Shift up}{LWin up}
Sleep, 500
return
}
;(New)Add Pen/Laser Mode Switching in PowerPoint Presentation Mode
#F18::
IfWinExist ahk_class screenClass
{
if (PenMode != 0){
Send, ^l
PenMode = 0
}
else {
Send, ^p
PenMode = 1
}
return
}
else
{
send, #{F18}
return
}
AutoHotKey真不錯用,可以自行擴充許多控制輸入裝置的功能,抱括鍵盤、滑鼠、搖桿,
甚至一些特殊的多媒體搖控器都可以拿來重新定義它的按鈕功能。

但如果遇到一些沒標準對應鍵symbol的輸入裝置,就要參照這篇的作法:
https://autohotkey.com/board/topic/38015-ahkhid-an-ahk-implementation-of-the-hid-functions/
通常需要一些try and error找出要擷取裝置的輸入,
再加上一些"反向工程"觀察擷取資料與按鈕動作的關係,再從上述網址的範例改出script。
我的Wacom筆按鈕花了約半天改出來,給大家參考看看。

另外補充一點,這一段code只支援兩種筆的切換:
smallce wrote:
if (PenMode != 0){
Send, ^l
PenMode = 0
}
else {
Send, ^p
PenMode = 1
}

若會寫程式,還可以擴充成在更多種功能作循環切換。
不過我常用的就那兩種功能,所以當初寫code的時候以簡單為原則。
您好!謝謝您這麼棒的分享!

不過我在PowerPoint中切換雷射筆與畫筆時,有時會失敗,變成退回上一步,不知您有沒有遇到這樣的情形呢?

rjhuang wrote:
您好!謝謝您這麼棒...(恕刪)


大概是我不常在 PowerPoint 裡頭切筆,所以比較沒遇到你所說的問題 :(

另外,如果你不想要每次開機都得自己去啟動這組(或其他組) AutoHotKey 的script 檔

請用 Win+R 打開執行視窗,然後輸入 Shell:Startup

他會開啟startup menu,你可以直接把autohotkey的 script檔扔進去,下次開機跑完開機程序(大概會是你看到桌面出來可以操作後幾秒之後,不是馬上)就會自己帶這個autohotkey 的 script 了。

smallce wrote:
新增下載點先感謝前面...(恕刪)

感謝高手分享,終於可以直接按鈕呼叫2016版本,還外帶簡報換頁功能,太強了。

黑拉比 wrote:
感謝高手分享,終於...(恕刪)


我先編譯在磁鐵上那顆按鈕,
問題是要怎找出他跟PC對應是甚麼?
請問有軟體可以知道嗎?
理論上應該是 RButton, 不過可能要測過才知道。

改這個可能要頗小心,因為應該會影響到所有你用到 Right Click 的地方 (當然一招是只讓這個在特定程式執行或是在focus時才生效,平常 bypass)

smallce wrote:
理論上應該是 RButton...(恕刪)


有軟体可以測的出來嗎?
我也在想這顆用途在那?
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!