LoginSignup
6
5

More than 3 years have passed since last update.

WiresharkでLuaスクリプトを使った GUI 表示の方法

Last updated at Posted at 2016-02-06

WiresharkでLuaスクリプトを使った GUI 表示の方法

WiresharkでLuaスクリプトを使用してメニュー項目を追加したりダイアログの表示を行ったりする事が出来ます。

メニュー項目の追加

メニューバーに新規メニューを追加する。

function menu_func()

    debug("menu_func calling!")

end

-- Register a menu item in one of the main menus.
register_menu("Menu item name", menu_func, MENU_TOOLS_UNSORTED)

上記のコードでメニューバーのTools直下にMenu item nameと表示されたメニュー項目を追加する事が出来ます。
これによりMenu item nameを選択する度にmenu_func()を呼び出す事が出来ます。

register_menu(name, action [,group])

Description

メインメニューにメニュー項目を追加する

Parameters

引数名 型の種類 備考
name string メニューのラベル名
action function メニューが押された時に呼び出す関数
group(option) MenuGroup メニューを追加する場所(default:MENU_STAT_GENERIC)

group(option)

menu group destination menu 備考
MENU_STAT_UNSORTED Statistics 統計
MENU_STAT_GENERIC Statistics (first section)
MENU_STAT_CONVERSATION Statistics/Conversation List
MENU_STAT_ENDPOINT Statistics/Endpoint List
MENU_STAT_RESPONSE Statistics/Service Response Time 統計/サービス応答時間
MENU_STAT_TELEPHONY Telephony テレフォニー
MENU_ANALYZE Analyze
MENU_ANALYZE_CONVERSATION Analyze/Conversation Filter
MENU_TOOLS_UNSORTED Tools ツール

備考は日本語版で追加される場所を示しています。
「?」になっている部分は表示がされなかったパラメータです。
例えば MENU_ANALYZEは「分析」の場所に追加されていそうでしたが追加されませんでした。

ダイアログの追加

新規ダイアログを追加する。

function dialog_func(Data1, Data2, Data3)

    debug("Data1=" .. Data1 .. "(" .. type(Data1) .. ")")
    debug("Data2=" .. Data2 .. "(" .. type(Data2) .. ")")
    debug("Data3=" .. Data3 .. "(" .. type(Data3) .. ")")

end

-- 
new_dialog("Dialog Title", dialog_func,"入力1", "入力2", "入力3")

上記のコードでダイアログを呼び出すことが出来る。
ダイアログにはパラメータを入力できる項目を任意数用意出来る。
これにより任意の値を引数にしてdialog_funcを呼び出す事が出来る。

new_dialog(title, action, field1 [,field2 ...])

Description

ダイアログの表示、ダイアログには OK と Cancel のボタンが含まれる

Parameters

引数名 型の種類 備考
title string ダイアログのタイトル
action function ダイアログのOKボタンが押された時に呼び出す関数
field1 string ダイアログのフィールドラベル1(必須)
[,field2 ...] string ダイアログのフィールドラベル2~(任意)

Example

メニューボタンを押したらダイアログが表示するサンプル

function dialog_func(Data1, Data2, Data3)

    debug("Data1=" .. Data1 .. "(" .. type(Data1) .. ")")
    debug("Data2=" .. Data2 .. "(" .. type(Data2) .. ")")
    debug("Data3=" .. Data3 .. "(" .. type(Data3) .. ")")

end

-- show this dialog when the user select "Dialog Open" from the Tools menu
function begin_dialog_menu()

    new_dialog("Dialog Title", dialog_func, "データ1", "データ2", "データ3")

end

-- Register a menu item in one of the main menus.
register_menu("Open Dialog", begin_dialog_menu, MENU_TOOLS_UNSORTED)

これを行うことで好きな時に任意の関数を呼び出す事が出来るので色々使い道はありそうです(主にデバッグとか)

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5