用AutoHotkey插入噗浪隱藏版表情符號

由於噗浪多了一些隱藏版的表情符號必須自行輸入代碼文字(完整符號請參考如何手動輸入Plurk的表情圖示?),其中的俄羅斯轉圈圈娃娃還打不出來,只能用複製/貼上的方法(tears)...趁空使用AutoHotkey寫了個插入這些額外圖示文字的小工具,歡迎有需要的網友取用或再修改。

plurk-tool

plurk.exe執行時會讀取plurk.ini裡的設定,設定參數只有3個:x與y是設定小視窗的顯示座標,在結束時會將最後位置寫回plurk.ini,第3個參數key則是顯示小視窗的熱鍵。預設的熱鍵是〔Win+A〕,使用AutoHotkey的按鍵表示式能額外再指定另一個熱鍵,例如plurk.ini裡也使用了〔Win+B〕可以顯示小視窗。按鍵的表示方法請參考輕鬆學會彈指神功-揭露AutoHotkey絕技

Plurk.exe小視窗資訊

  • Plurk.exe程式-如果沒有安裝AutoHotkey的話,請下載下列兩個檔案:
    1. plurk.exe
    2. plurk.ini
    3. plurk.exe的MD5 sum是「4f3ec3e8480d0d42004a036da4b252ab」。
      亦可下載plurk.md5做驗證。
  • 已安裝AutoHotkey則可下載原始腳本檔,執行前需要plurk.ini:
    • 下載plurk.ahk
    • 下載plurk.ico
    • 產生執行檔指令:ahk2exe /in plurk.ahk /icon plurk.ico
  • 如果用GreaseMonkey寫應該會和瀏覽器整合得更好,請會寫的高手幫忙...
  • 表情符號的圖檔會自動下傳到與Plurk.exe的所在資料夾。
  • 已知問題:在要插入符號的噗浪網頁出現後,必須再啟動小視窗一次,否則輸出的對象不會是噗浪網頁!

Plurk.ini設定檔內容

  
[SETUP]
x=500
y=400
key=#b

Plurk.ahk腳本檔內容

 
;;================================================================================
;; 顯示插入噗浪隱藏版表情符號的小視窗。
;;
;; @author emisjerry http://jdev.tw/blog 歡迎取用與修改,但請保留本行文字與網址連結。
;; @version 2010/10/23 V0.3
;;================================================================================
DIR := A_WorkingDir  ;;取出目前資料夾
;; 由plurk.ini讀出上次的視窗顯示位置
IniRead, xx, %DIR%\plurk.ini, SETUP, x
IniRead, yy, %DIR%\plurk.ini, SETUP, y
IniRead, key, %DIR%\plurk.ini, SETUP, key
if (key != "ERROR") {  ;; 設定使用者自訂熱鍵
  Hotkey, %key%, USER_HOTKEY, On  
  if ErrorLevel in 5,6
    MsgBox 自訂熱鍵無法使用!
}
if (xx = "" || xx = 0) {
  xx := 500
}
if (yy = "" || yy = 0) {
  yy := 400
}
TrayTip, 噗浪隱藏版表情符號小視窗(by emisjerry), 預設按[Win+A]顯示`n或在plurk.ini裡自行指定熱鍵。也可由系統匣圖示的右鍵功能表顯示。, 20, 17
;; 由網路將圖檔下載到plurk.exe所在資料夾
checkFiles(DIR, "47d20905d017c396d67b4a30c9ac9b10.png")
checkFiles(DIR, "5a2a63fa773e68797ec69a1303bfa3b9.png")
checkFireworks(DIR, "7256dae81d56d150120ccd0c96dd2197.gif")
checkDanceBzz(DIR, "4ad099fba019942f13058610ff3fc568.gif")
checkRussian(DIR, "deda4d9f78ad528d725e3a6bfbf6352f.gif")
checkCode(DIR, "0efc4d55d28704f4370ef874ae906161.gif")
checkFiles(DIR, "4c40d16a0d369b895c08f2e33d062ec8.gif")
checkIcon(DIR)

format1 := "表情文字"
Menu, tray, icon, %A_WorkingDir%\plurk.ico,1
MENU TRAY,NoStandard
Menu, Tray, Add, 顯示小視窗, Toggle
Menu, Tray, Add, 結束, GuiClose
;; 取出啟動本程式的當時的視窗代碼
WinGet, k_ID, ID, A

#a::
  WinGet, k_ID, ID, A
  ;; 顯示小視窗
  symbols(xx,yy)
  return

Toggle:
  WinGet, k_ID, ID, A
  symbols(xx,yy)
  return

USER_HOTKEY:
  WinGet, k_ID, ID, A
  symbols(xx,yy)
  return

;; 由Plurk網站把圖檔下載到本機的plurk.exe資料夾裡
checkFiles(dir, file) {
  if (!FileExist(dir + "\\" + file)) {
    UrlDownloadToFile,http://statics.plurk.com/%file%,%dir%\%file%
  }
}

checkIcon(dir) {
  if (!FileExist(dir + "\\plurk.ico")) {
    UrlDownloadToFile,http://www.plurk.com/favicon.ico,%dir%\plurk.ico
  }
}

checkFireworks(dir, file) {
  if (!FileExist(dir + "\\" + file)) {
    UrlDownloadToFile,http://qjuklq.bay.livefilestore.com/y1pCjlPjbikdRJyQPb3yf0RMcvvQq0OPVk3hYKqSCqfEIz_9aILTuQExNK_UkK1IxHHwKWcaYhfJ0Y6q8gakgAPEUrnxvtRorcb/7256dae81d56d150120ccd0c96dd2197.gif,%dir%\%file%
  }
}
checkDanceBzz(dir, file) {
  if (!FileExist(dir + "\\" + file)) {
    UrlDownloadToFile,http://qjuklq.bay.livefilestore.com/y1p5BCKXw0b-VJsESgpYDXK2RuyCGXiKgQN_rpi9PqjBVvsI0PaYIpGMDfCL20a2SYVB_8DUqO_7fSbJIOD1U8b4VhA_oLHZc6g/4ad099fba019942f13058610ff3fc568.gif,%dir%\%file%
  }
}
checkCode(dir, file) {
  if (!FileExist(dir + "\\" + file)) {
    UrlDownloadToFile,http://public.bay.livefilestore.com/y1p_5y7bpnpJW1i2E2vcR6i1LrSl_CyZ9sVbqDWkS5yhkQ13kh_kgD1Ekrx5n-wIVfKAA46YAEJxJ5oyOfXm68tDg/0efc4d55d28704f4370ef874ae906161.gif,%dir%\%file%
  }
}
checkRussian(dir, file) {
  if (!FileExist(dir + "\\" + file)) {
    UrlDownloadToFile,http://public.bay.livefilestore.com/y1plunZGSjtUQUDXC1WPzd1Eyju7ZaVwc_d2_IIwA0tLBPVrvV5j2FbcrzTPWqwjz21qoS_7I2EKFu08ebBiNiDJw/deda4d9f78ad528d725e3a6bfbf6352f.gif,%dir%\%file%
  }
}

;; 表情符號小視窗
symbols(xx,yy) {
gui +AlwaysOnTop
Gui, Add, Picture, x12 y59 w30 h30 gPicGoal, %A_WorkingDir%\47d20905d017c396d67b4a30c9ac9b10.png
Gui, Add, Picture, x62 y59 w30 h30 gPicBzzz, %A_WorkingDir%\5a2a63fa773e68797ec69a1303bfa3b9.png
Gui, Add, Picture, x112 y49 w48 h48 gPicFireworks, %A_WorkingDir%\7256dae81d56d150120ccd0c96dd2197.gif
Gui, Add, Picture, x162 y49 w48 h48 gPicDanceBzz, %A_WorkingDir%\4ad099fba019942f13058610ff3fc568.gif
Gui, Add, Picture, x212 y49 w48 h48 gPicRussian, %A_WorkingDir%\deda4d9f78ad528d725e3a6bfbf6352f.gif
Gui, Add, Picture, x262 y49 w48 h48 gPicCode, %A_WorkingDir%\0efc4d55d28704f4370ef874ae906161.gif
Gui, Add, Picture, x312 y49 w48 h48 gPicYarr, %A_WorkingDir%\4c40d16a0d369b895c08f2e33d062ec8.gif
;-----
Gui, Add, Button, x320 y2 w70 h40 , 關閉
Gui, Font, S12 CDefault, Verdana
Gui, Add, Text, x12 y9 w80 h48 +Center, 輸出方式:
Gui, Add, Radio, x92 y2 w90 h40 checked  gFormat, 表情文字
Gui, Add, Radio, x192 y2 w90 h40  gFormat, 圖形網址
;;Gui, Add, Radio, x292 y9 w90 h48  gFormat, 圖片標籤
; Generated using SmartGUI Creator 4.0
Gui, Show, x%xx% y%yy% h130 w400 autosize, 噗浪隱藏版表情符號
WinActivate,Symbols
Return
}

send_emotion(symbol,format) {
  if (Format = "表情文字") {
    ;;sendInput symbol
  } else if (Format = "圖形網址") {
    if (symbol = "(goal)") {
      symbol := "47d20905d017c396d67b4a30c9ac9b10.png"
    } else if (symbol = "(fireworks)") {
      symbol := "7256dae81d56d150120ccd0c96dd2197.gif"
    } else if (symbol = "(bzzz)") {
      symbol := "5a2a63fa773e68797ec69a1303bfa3b9.png"
    } else if (symbol = "(dance_bzz)") {
      symbol := "4ad099fba019942f13058610ff3fc568.gif"
    } else if (symbol = "(fireworks)") {
      symbol := "7256dae81d56d150120ccd0c96dd2197.gif"
    } else if (symbol = "(???????)") {
      symbol := "deda4d9f78ad528d725e3a6bfbf6352f.gif"
    } else if (symbol = "(code)") {
      symbol := "0efc4d55d28704f4370ef874ae906161.gif"
    } else if (symbol = "(yarr)") {
      symbol := "4c40d16a0d369b895c08f2e33d062ec8.gif"
    }
    symbol = http://statics.plurk.com/%symbol%
  } else if (Format = "圖片標籤") {
    if (symbol = "(goal)") {
      symbol := ":-))"
    }
  }
  sendInput %symbol%
}

PicGoal:
  WinActivate, ahk_id %k_ID%
  send_emotion("(goal)",format1)
  return

PicBzzz:
  WinActivate, ahk_id %k_ID%
  send_emotion("(bzzz)",format1)
  return

PicFireworks:
  WinActivate, ahk_id %k_ID%
  send_emotion("(fireworks)",format1)
  return

PicDanceBzz:
  WinActivate, ahk_id %k_ID%
  send_emotion("(dance_bzz)",format1)
  return

PicRussian:
  WinActivate, ahk_id %k_ID%
  send_emotion("(???????)",format1)
  return

PicCode:
  WinActivate, ahk_id %k_ID%
  send_emotion("(code)",format1)
  return

PicYarr:
  WinActivate, ahk_id %k_ID%
  send_emotion("(yarr)",format1)
  return

Format:
  format1 := A_GuiControl
  return

Button關閉:
  Gui, Hide
  return

GuiClose:
  ;; 把目前視窗位置寫回plurk.ini
  WinGetPos,xx, yy,,, A
  IniWrite, %xx%, %DIR%\plurk.ini, SETUP, x
  IniWrite, %yy%, %DIR%\plurk.ini, SETUP, y
  ExitApp

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,好奇心強。

您可能也會喜歡…

8 個回應

  1. 阿憲憲表示:

    謝謝版大

  2. 簡睿表示:

    抱歉,我把連結又整理了一次,應該可以連了。

    但因為已經有噗友寫了Bookmarklet能在網頁上選隱藏表情圖示了,請使用這個Bookmarklet,會更方便。詳情請看 如何手動輸入Plurk的表情圖示?

  3. 阿憲憲表示:

    請問版主
    主程式的檔案還有嗎???
    現在這個連結還是不能使用
    煩請版主在作確認
    謝謝版主

  4. 小貓表示:

    檔案好像不能下載耶..

    用提供的程式碼作檔好像也不行ˊˋ”

  5. CHEN+SHIN表示:

    不好意思 載點好像失效了 :(?

    • 簡睿表示:

      Sorry, 不知那裡弄錯,SkyDrive的連結好像改變了…我重新連好了,歡迎試用。但最新的okok還沒有哦。

  6. 謝謝分享!
    先拿來試看看囉!
    有問題會再回報^^辛苦囉!!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *