我要开发的插件功能极为简单,就是对用户选中的内容进行base64编码或解密工作.
其中所涉及的技术部分主要是GO语言程序开发和editplus插件配置的部分,首先我们来看一下GO语言代码的写法,如下:
package main
import ( "encoding/base64" "fmt" "os" )
const ( version string = "1.0" )
func main() { num := len(os.Args) if num < 2 || num > 3 { fmt.Println("請使用 -h 查看軟件使用方法, Go語言技術QQ群: 195112\n") return }
switch os.Args[1] { case "-a": //encode data := []byte(os.Args[2]) out := base64.StdEncoding.EncodeToString(data) fmt.Print(out) case "-x": //decode out, err := base64.StdEncoding.DecodeString(os.Args[2]) if err != nil { fmt.Println("") return } fmt.Printf("%s", out) case "-v": fmt.Println("ver:", version) return case "-h": //decode fmt.Println("\n說明:") fmt.Println(" 這個程式由 Seven (http://7di.net) 製作,用來對內容進行 base64 加/解密.") fmt.Println("\n參數:") fmt.Println(" -a 對內容加密") fmt.Println(" -x 對內容解密") fmt.Println(" -v 軟件版本") fmt.Println(" -h 使用幫助") fmt.Println("\n用法:") fmt.Println(" 加密: base64.exe -a 要加密的內容") fmt.Println(" 解密: base64.exe -x 要解密的內容") fmt.Println("\n交流:") fmt.Println(" Go語言技術QQ群: 195112") return default: fmt.Println("請使用 -h 查看軟件使用方法, Go語言技術QQ群: 195112\n") return } }
原理是执行编译好的exe文件时同时传递三个参数进来,然后用os.Args接收,接收之后要判断参数的数量,我们允许传递一个或两个参数进来,如果小于两个或大于三个参数则出错
两个参数是为了应付-h查看使用帮助或-v显示版本号,三个参数则是为了处理加密或解密工作.
我们把上边的代码存成.go文件,然后编译成.exe文件,最后把mail.exe改成base64.exe,并把base64.exe复制到editplus的stx目录下,并对editplus进行相应的配置,配制方法如下:
希望此为能起到抛砖引玉的功能,对大家开发插件能够有所帮助.
Go語言技術QQ群: 195112
|
请发表评论