建立動作有兩種方法:
使用「建立動作」桌上管理系統應用程式
人工建立動作定義
人工建立動作需要您編輯資料庫檔案。本章描述如何人工建立動作定義。
有關動作的簡介,請參閱 第 10章, 動作與資料類型簡介 。
有關使用「建立動作」的資訊,請參閱 第 11章, 使用建立動作來建立動作與資料類型。
有關動作定義的參考資訊,請參閱 dtactionfile(4) 線上援助頁。
指令
對應
TT_MSG
建立動作工具是設計來建立特定類型的 指令 與 對應 動作。所有的 TT_MSG 動作都必須以人工建立。
有關更多的資訊,請參閱 "建立動作的限制"。
指令動作 執行啟動應用程式的指令、執行 shell 指令集或執行作業系統指令。動作的定義包括要執行的指令(EXEC_STRING)。
建立「動作工具」工具可以用於建立最常見的指令動作類型。然而,可能會有一些您必須以人工建立動作的情況;但是,如果動作指定如下,您必須人工建立 指令 動作:
每個引數都有不同提示符號的多重檔案引數。
動作呼叫-動作調用其它動作的能力。
引數計數的相依行為-為不同數目的檔案引數建立有非常不同行為的動作能力。
遠程執行主機-在系統上而非包含動作定義者執行應用程式的能力。
使用者的變更-以不同的使用者執行動作的能力(例如,以 root 密碼提示然後以 root執行)。
對應動作 是 ``對應'' 至其它動作而非直接指定指令或 ToolTalk 訊息的動作。
對應提供指定動作的替代名稱的能力。例如,名為 IconEditor 的指令動作啟動圖像編輯器。資料庫也包括定義中限制為位元映射與圖素映射檔案(由 ARG_TYPE 欄位)的開啟動作,此動作對應至 IconEditor 動作。此讓使用者藉由選擇「檔案管理者」中的位元映射或圖素映射,然後從「所選項目」功能表選擇「開啟」來啟動「圖像編輯器」。
「建立動作」為「開啟」與「列印」動作提供了有限的映射。其它所有的對應動作都必須以人工建立。
TT_MSG 動作送出 ToolTalk 訊息。所有的 TT_MSG 動作都必須以人工建立。
本節解釋如何建立動作定義的配置檔案。
包含動作定義的配置檔案必須符合這些需求:
檔案必須使用命名習慣用法 name.dt
檔案必須位於資料庫(動作與資料類型)搜尋路徑上。內定搜尋路徑為:
個人的動作-HomeDirectory/.dt/types
整個系統的動作-/etc/dt/appconfig/types/language
內建的動作-/usr/dt/appconfig/types/language。您不應使用此目錄。
有關修改動作/資料類型搜尋路徑的資訊,請參閱 "設定搜尋路徑的值"。
開啟現存資料庫檔案或建立一個新的。
請參閱前一節, "動作的配置檔案"。
使用此語法建立動作定義:
ACTION action_name { TYPE action_type action_field ... }
其中:
action_name-用於執行動作的名稱。
action_type-指令(內定)、對應或 TT_MSG。
action_field-此類型動作的所需或選擇性的欄位之一。所有欄位都是由一個關鍵字與一個值所組成的。
本章中涵蓋許多的動作欄位。有關更多的資訊,請參閱 dtactionfile(4) 線上援助頁。
儲存檔案。
如果您想要動作圖像有個唯一的影像,請為此動作建立圖像。圖像的內定位置為:
個人的圖像:HomeDirectory/.dt/icons
整個系統的圖像:/etc/dt/appconfig/icons/language。內定 語言 為 C。
有關更多的資訊,請參閱 "指定由動作所使用的圖像影像"。
連按兩下 Desktop_Tools 應用程式群組中的重新載入動作。
建立動作的動作檔案。動作檔案在「檔案管理者」或代表動作的「應用程式管理者」中建立圖像。(如果動作的寫入目的是為了啟動應用程式,圖像就稱為 應用程式圖像。)
如果要建立動作檔案,請建立與 action_name 有相同名稱的可執行檔案。您可以將檔案放在任何您有寫入許可權的目錄中。您可以任意地建立動作檔案的數目。
下列步驟建立啟動在遠程系統 AppServerA 上的傳真應用程式的個人動作。啟動傳真應用程式的指令為:
/usr/fax/bin/faxcompose [filename]
建立檔案 HomeDirectory/.dt/types/Fax.dt。
將以下動作定義放在檔案中:
ACTION FaxComposer { TYPE COMMAND ICON fax WINDOW_TYPE NO_STDIO EXEC_STRING /usr/fax/bin/faxcompose -c%Arg_1% EXEC_HOST AppServerA DESCRIPTION Runs the fax composer
}
WINDOW_TYPE 與 EXEC_STRING 欄位描述動作的行為。
WINDOW_TYPE- NO_STDIO 關鍵字指定動作不需在終端機模擬器視窗中執行。
請參閱 "指定動作的視窗支援"。
EXEC_STRING-語法 %Arg _1% 接受定位檔案。如果連按兩下動作圖像,動作會開啟空白的傳真撰寫視窗。
請參閱 "建立指令動作的執行字串"。
儲存檔案。
使用「圖像編輯器」在 HomeDirectory/.dt/icons 目錄中建立下列的圖像影像檔案:
fax.m.pm,大小 32 乘 32 像素
fax.t.pm,大小 16 乘 16 像素
連按兩下 Desktop_Tools 應用程式群組中的「重新載入動作」。
建立您有寫入許可權的目錄(例如,您的主目錄)中名為 FaxComposer 的可執行的檔案。
假定您傳真的大部分檔案都是以「文字編輯器」所建立的而且是資料類型 TEXTFILE(名為 *.txt 的檔案)。
這些步驟將 ``傳真'' 功能表項目增加至資料類型的「所選項目」功能表。
開啟之前範例中所建立的檔案 HomeDirectory/.dt/types/Fax.dt。
增加此對應動作定義至檔案:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
儲存檔案。
從 /usr/dt/appconfig/types/language/dtpad.dt 複製 TEXTFILE 的資料屬性定義至新檔案HomeDirectory/.dt/types/textfile.dt。將傳真動作增加至 動作 欄位。
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd ... }
儲存檔案。
開啟「應用程式管理者」並連按兩下 Desktop_Tools 應用程式群組中的「重新載入動作」。
為了使新的或編輯的動作定義生效,桌上管理系統必須重新讀取資料庫。
開啟 Desktop_Tools 應用程式群組並連按兩下「重新載入動作」。
或,執行指令:
dtaction ReloadActions
ReloadActions 是其圖像標為 ``重新載入動作'' 的動作的名稱。
當使用者如下執行時,也會重新讀取動作資料庫:
登入
重新啟動工作區管理者
藉由從檔案功能表選擇儲存以在建立動作視窗中儲存動作
動作檔案 是建立以提供「檔案管理者」或「應用程式管理者」中的動作視覺表示方式的檔案。
既然動作檔案的圖像代表動作,有時它也稱為 動作圖像。如果隱藏的動作啟動應用程式,動作檔案圖像就稱為 應用程式圖像。
連按兩下動作圖像會執行動作。動作圖像也可以是定位區域。
例如,如果動作定義為:
ACTION MyFavoriteApp { EXEC_STRING Mfa -file%Arg _1% DESCRIPTION Runs MyFavoriteApp ICON Mfapp }
那麼動作檔案將會是名為 MyFavoriteApp 的可執行檔案。在「檔案管理者」與「應用程式管理者」中,MyFavoriteApp 檔案會使用圖像影像 Mfapp.size.type。連按兩下 MyFavoriteApp 的圖像將會執行動作的執行字串,而圖像的「關於項目」輔助說明將會是 說明 欄位的內容("runs MyFavoriteApp")。
如果動作定義包括 標籤 欄位,將會將動作檔案標示在「檔案管理者」與具有此欄位內容的「應用程式管理者」而非檔案名稱(action_name)中。例如,如果動作定義包括:
ACTION MyFavoriteApp { LABEL Favorite Application ... }
那麼動作圖像將會標示為 ``最喜愛的應用程式''。
使用 圖像 欄位來指定為動作所建立的動作圖像的「檔案管理者」與「應用程式管理者」所使用的圖像。
如果您未指定圖像,系統則使用內定動作圖像影像檔案 /usr/dt/appconfig/icons/language/Dtactn.*。
*actionIcon: icon_file_name
其中 icon_file_name 可以是基本名稱或絕對路徑。
基本檔案名稱
基本檔案名稱是包含圖像影像減去檔案名稱的大小 (m 與 t)與影像類型(bm and pm)字尾的檔案名稱。例如,如果檔案名為 GameIcon.m.pm 與 GameIcon.t.pm,請使用 GameIcon。
如果您使用基本檔案名稱,圖像檔案必須放在圖像搜尋路徑上的目錄中:
個人的圖像:HomeDirectory/.dt/icons
整個系統的圖像:/etc/dt/appconfig/icons/language
圖像檔案的絕對路徑,包括完整的檔案名稱
您應該只有當圖像檔案不是位於圖像搜尋路徑上時才使用絕對路徑。例如,如果圖像檔案 GameIcon.m.pm 是放在不在圖像搜尋路徑上的目錄 /doc/projects 中,圖像 欄位的值會是 /doc/projects/GameIcon.m.pm。
表 12-1 列出您應該建立的圖像大小與相等的檔案名稱。
像素的大小 |
位元映射名稱 |
圖素映射名稱 |
---|---|---|
48 乘 48 |
name.l.bm |
name.l.pm |
32 乘 32 |
name.m.bm |
name.m.pm |
16 乘 16 |
name.t.bm |
name.t.pm |
您可以修改您系統上任何可供使用的動作,包括內建動作。
當修改內建動作資料庫時,請小心使用。內建動作是設計來與桌上管理系統應用程式共同良好運作的。
尋找您想要修改的動作的定義。
動作定義的內定位置為:
如果有必要,請將動作定義的文字複製至這些目錄之一中的新的或現存檔案:
整個系統的動作:/etc/dt/appconfig/types/language
個人動作:HomeDirectory/.dt/types
既然您不應在 /usr/dt/appconfig/types/language 目錄中編輯檔案,您就必須複製內建動作。
編輯動作定義。
當您完成編輯時,請儲存檔案。
連按兩下 Desktop_Tools 應用程式群組中的「重新載入動作」。
當使用者調用動作時,系統會搜尋符合動作名稱的資料庫。當一個以上的動作以該名稱存在時,系統會使用優先順序規則來決定要使用何者。
如果未應用其它的優先順序規則,優先順序是以定義的位置為基礎。下表的優先順序是由高到低的順序:
個人動作(HomeDirectory/.dt/types)
整個系統的區域動作(/etc/dt/appconfig/types/language)
整個系統的遠程動作(hostname:/etc/dt/appconfig/types/language)。 搜尋的遠程主機就是列在應用程式搜尋路徑中的那一些。
內建動作(/usr/dt/appconfig/types/language)
在已知的目錄中,*.dt 檔案是以字母順序讀取的。
由 ARG_CLASS、ARG_TYPE、ARG_MODE 或 ARG_COUNT 所限制的動作對於未受限制的動作有優先順序。(此四個欄位的內定值為 *。)
其中應用一項以上的限制,由高到低的優先順序為:
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
其中有一項以上的受限制 ARG_COUNT 存在,由高到低的優先順序為:
特定的整數值 n
<n
>n
*
例如,試想下列部分的動作定義:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD ... }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 ... }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * ... }
連按兩下 EditGraphics 動作圖像會啟動 EditGraphics-2,因為未提供引數,而且 ARG_COUNT 0 有優先順序。 當 XWD 類型的檔案引數被提供時,會使用 EditGraphics-1,因為其指定 XWD ARG_TYPE。所有其它檔案引數都使用 EditGraphics-3。
指令 動作的最小需求為兩個欄位 -動作 與 EXEC_STRING。
ACTION action_name { EXEC_STRING execution_string }
執行字串是 指令 動作定義最重要的部分。它會使用與您將會在終端機視窗中所執行的指令行類似的語法,但還包括處理檔案與字串引數的其它語法。
執行字串可包括:
檔案與非檔案引數
Shell 語法
絕對路徑或可執行的名稱
引數是指令或應用程式要正確執行所需要的資訊。例如,試想您可以用以開啟「文字編輯器」中的檔案之指令行:
dtpad 檔案名稱
在此指令中,檔案名稱 是 dtpad指令的檔案引數。
就像應用程式與指令,動作可以有引數。指令 動作可以使用的資料有兩種類型:
檔案
字串資料
執行字串是直接執行的,而不是經由 shell。但是,您可以在執行字串中明確地調用 shell。
例如:
EXEC_STRING \ /bin/sh -c \ 'tar -tvf% (File)Arg_1% 2>&1 | \${PAGER:-more};\ echo "\\n*** 從視窗功能表選擇關閉 以關閉 ***"'
如果您的應用程式是位於路徑變數中列出的目錄中,您可以使用簡單的可執行名稱。如果應用程式是在它處,您必須使用絕對路徑於可執行的檔案。
使用您將會用以從指令行啟動應用程式的 EXEC_STRING 的相同語法。
為檔案引數使用此語法:
%Arg_n%
或
%(File)Arg_n%
既然供應至 Arg_n 的引數假定(按內定)為檔案,(檔案) 是選擇性的。(有 關 "解譯檔案引數為字串"(字串)Arg_%n 語法的使用,請見 %。)
此語法讓使用者在動作圖像上定位資料檔案物件,以啟動具有該檔案引數的動作。其在指令 行中代替 nth 引數。檔案可以是區域或遠程檔案。
此範例顯示只與目錄引數運作的動作的部分定義。當目錄定位於動作圖像上時,動作在具有 讀取及寫入的許可權的目錄中顯示所有檔案的列表。
動作 List_Writable_Files { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l%Arg _1% | grep rw-' ... }
為檔案引數使用此語法:
%(File)"提示符號"%
當使用者連按兩下動作圖像時,此語法建立顯示檔案名稱的提示符號的動作。
例如,此執行字串顯示提示 wc -w 指令的檔案引數的對話框:
EXEC_STRING wc -w%(File)"在檔案中計數字數:"%
為檔案引數使用此語法:
%Arg_n"提示符號"%
或
%(File)Arg_n"提示符號"%
此語法製造如下動作:
接受定位檔案為檔案引數。
當使用者連按兩下動作圖像時,顯示提示檔案名稱的對話框。
例如,此執行字串在定位檔案上執行 lp -oraw。如果動作是由連按兩下圖像所啟動的,會出現對話框以提示檔案名稱。
EXEC_STRING lp -oraw %Arg _1"列印的檔案:"%
為非檔案參數使用此語法:
%"提示符號"%
或
%(String)"提示符號"%
既然按內定解譯引號的文字為字串資料,(字串) 是選擇性的。此語法顯示提示非檔案資料的對話框;當提示檔案名稱時,請勿使用此語法。
例如,此執行字串執行 xwd 指令與要增加至每個像素的值的提示符號:
EXEC_STRING xwd -add% "增加值:"% -out %Arg _1"檔案名稱:"%
為引數使用此語法:
%(String)Arg_n%
例如,此執行字串列印具有包含檔案名稱的標題的檔案,使用指令 lp -t標題檔案名稱。
EXEC_STRING lp -t%(String)Arg_1%% (File)Arg_1"列印的檔案:"%
在執行字串中指定 shell:
/bin/sh -c 'command' /bin/ksh -c 'command' /bin/csh -c 'command'
此執行字串需要引數成為壓縮檔案。動作解壓縮檔案並使用 lp -oraw 列印。
EXEC_STRING /bin/sh -c 'cat%Arg _1 "列印的檔案:"% | \ uncompress | lp -oraw'
動作處理多重檔案引數的方法有三種:
動作可以重覆地執行,一次一個引數。當一個 EXEC_STRING 包含一個單一檔案引數與藉由在動作圖像上定位多重檔案所提供的多重檔案引數時,每個檔案引數的動作是分開執行的。
例如,如果供應多重檔案引數至以下動作定義:
ACTION DisplayScreenImage { EXEC_STRING xwud -in%Arg _1% ... }
DisplayScreenImage 動作是重覆地執行。
使用下列語法習慣用法之一:
如果您想要動作提示檔案名稱,使用此語法於每個檔案引數:
%(File)"提示符號"%
每個引數使用不同的 提示符號 字串。
例如,此執行字串提示兩個檔案。
EXEC_STRING xsetroot -cursor% (File)"游標位元映射:"% \ %(檔案)"遮罩位元映射:"%
使用下列語法習慣用法之一:
如果要建立接受多重定位檔案的動作,或在連按兩下時會顯示單一檔案提示符號的動作,請使用此語法於檔案引數:
%Arg_1"提示符號"%%Args%
動作將會以此格式發出指令:指令檔案 1 檔案 2 ...。
如果要接受多重定位檔案引數並執行指令行格式如下:
指令 檔案 1 檔案 2 ...
使用語法:
%Args%
指令 動作在桌上管理系統上支援視窗的方法有數種。
如果應用程式有其自己的視窗,便可以寫入動作以不提供其它的視窗支援。當動作執行不需要直接的使用者輸入且無輸出的指令時,也使用此選項。
如果應用程式必須在終端機模擬器視窗中執行,便可以寫入動作以開啟視窗,然後執行應用程式。有數種終端機選項。
使用 WINDOW_TYPE 欄位以指定如 表 12-2 中所示的動作所需的視窗支援類型。
表 12-2 WINDOW_TYPE 欄位與所提供的視窗支援
所提供的視窗支援 |
|
---|---|
無。如果應用程式有其自己的視窗,或是如果指令沒有可見的輸出,使用 NO_STDIO。 |
|
永久終端機模擬器視窗。動作開啟終端機視窗,此視窗會保持開啟直到使用者確實地關閉它。使用者可以將資料輸入視窗中。使用獲得一些輸入、製造一些輸出、然後終止的指令(例如,ls 目錄)。 |
|
暫存終端機模擬器視窗。動作會開啟指令一完成就關閉的終端機視窗。使用全螢幕的指令(例如,vi)。 |
使用動作定義中的 TERM_OPTS 欄位來指定終端機模擬器的指令行選項。
例如,下列執行主機的動作提示符號:
ACTION OpenTermOnSystemUserChooses { WINDOW_TYPE PERM_TERMINAL EXEC_HOST %(字串)"遠程終端機於:"% TERM_OPTS -title%(字串)"視窗標題:"% EXEC_STRING $SHELL }
由動作所使用的內定終端機模擬器是 dtterm。您可以將此變更為其它的終端機模擬器。內定終端機模擬器是用於當動作未明確地指定使用的終端機模擬器時。
由動作所使用的終端機模擬器必須有這些指令行選項:
-標題 window_title
-e 指令
兩項來源決定內定終端機模擬器由動作所使用:
remoteTerminal 來源指定由遠程應用程式所使用的終端機模擬器。
*remoteTerminal: 主機:終端機 [,主機:終端機...]
例如:
*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
限制動作為特殊類型的引數使動作更精確。例如,您應該限制 PostScript 檔案的查看器調用為只有 PostScript 檔案引數的動作;有了限制,如果指定非 PostScript 的檔案,動作將會回覆錯誤對話。
您可以限制動作,基於:
檔案引數的資料類型。
檔案引數的數目-例如,無引數對一個或多個引數。這樣會提供動作圖像的不同定位與連按兩下的行為。
引數的讀取/寫入模式。
使用 ARG_TYPE 欄位來指定其動作為有效的資料類型。使用資料屬性名稱。
您可以輸入資料類型的列表,以逗號分開登錄。
例如,以下動作定義假定 Gif 資料類型已建立。
ACTION Open_Gif { TYPE COMMAND LABEL "顯示 Gif" WINDOW_TYPE NO_STDIO ARG_TYPE Gif ICON xgif DESCRIPTION 顯示 gif檔案 EXEC_STRING xgif }
使用 ARG_COUNT 欄位以指定動作可以接受的引數數目。有效值為:
* (內定值)-任何數目的引數。其值值對於 * 有優先順序。
n-任何非負數的整數,包括 0。
>n-多於 n 個引數。
<n-少於 n 個引數。
ARG_COUNT 的用途之一就是提供不同的動作圖像行為,視使用者是否連按兩下圖像或在其上定位檔案而定。請參閱下節, "如果要提供不同的連按兩下與定位行為。"
使用此程序以建立接受定位檔案但當連按兩下動作圖像時不提示檔案的動作。
建立連按兩下功能的動作定義。
使用 ARG_COUNT 欄位以指定 0 引數。使用語法於不接受定位引數的 EXEC_STRING 。
建立定位功能的第二種動作定義。
使用 ARG_COUNT 欄位以指定 >0 引數。使用語法於接受定位檔案的EXEC_STRING。
例如,假定下列兩個指令行可以用於啟動名為 vedit 的編輯器:
如果要啟動具有開啟為唯讀文件的檔案引數的編輯器:
vedit -R 檔案名稱
下列兩個動作建立名為 Vedit 動作的定位與連按兩下功能。既然 ARG_COUNT 0 比定位功能定義的暗示 ARG_COUNT * 更特定,第一個動作在資料庫搜尋配對時有優先順序。
# 連按兩下功能 ACTION Vedit { TYPE COMMAND ARG_COUNT 0 WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit } # 定位功能 ACTION Vedit { TYPE COMMAND WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit -R%Arg _1% }
使用 ARG_MODE 欄位以指定引數的讀取/寫入模式。有效值為:
* (內定)-任何模式
!w-非可寫入的
w-可寫入的
討論到動作與遠程執行時,有兩個經常使用的名詞:
資料庫主機-包含動作定義的系統
執行主機-可執行檔案執行之處的系統
在大部分的情況中,動作與其應用程式是位於相同的系統上;既然動作的內定執行主機是資料庫主機,就不需要特殊的語法了。
然而,當執行主機與資料庫主機不同時,動作定義必須指定執行字串應執行之處。
在不同的系統上尋找動作與應用程式的能力是桌上管理系統的客戶機/伺服器架構的一部分。有關網路應用程式更深入的討論,請參閱 "管理應用程式服務"。
使用動作定義中的 EXEC_HOST 欄位以指定應用程式的位置。
EXEC_HOST 的有效值為:
%DatabaseHost%-定義動作之處的主機。
%LocalHost%-調用動作之處的主機(階段作業伺服器)。
%DisplayHost%-執行 X 伺服器的主機(不允許於 X 終端機)。
%SessionHost%-控制登入管理者正在執行的主機。
主機名稱-命名的主機。使用其中應永遠在一特定主機上調用動作的此環境值。
%"提示符號"%-每次調用動作時,提示使用者主機名稱。
內定值為 %DatabaseHost%、%LocalHost%。因此,當省略 EXEC_HOST 欄位時,動作會先嘗試在包含動作定義的主機上執行指令。如果失敗,動作會嘗試在階段作業伺服器上執行指令。
您可以將字串變數與環境變數納入動作與資料類型定義檔案中。
字串變數定義從定義的位置到檔案的結尾都一直維持有效。沒有整體的資料庫字串變數。
如果字串變數與環境變數有相同的名稱,字串變數有優先順序。
使用語法:
設定 variable_name=值
變數名稱可以包含任何文數字元與底線(_)。每個變數定義都必須在不同的行上。
例如:
設定 Remote_Application_Server=sysapp 設定 Remote_File_Server=sysdata
使用語法:
$[{]variable_name[}]
例如:
EXEC-HOST $Remote_Application_Server CWD /net/${Remote_File_Server}/doc/project
使用語法參考環境變數:
$[{]變數[}].
當載入資料庫時,變數會擴展(由其值取代)。如果字串變數與環境變數有相同的名稱,字串變數有優先順序。
例如,此執行字串會列印具有包含登入名稱的標題檔案。
EXEC-STRING lp -t$LOGNAME% (檔案)Arg_1%
桌上管理系統提供從指令行執行動作的 dtaction 指令。您可以使用 dtaction 以執行動作自:
指令集
其它動作
終端機模擬器指令行
dtaction [-user user_name] [-execHost hostname] \ action_name [argument [argument]...]
-使用者 user_name-提供以不同使用者來執行動作的能力。如果dtaction 是由 user_name 以外的使用者所調用,會有密碼的提示符號顯示出來。
-execHost 主機名稱-僅限指令 動作 ;指定將在其上執行指令的主機。
引數-動作的引數;通常是檔案引數。
dtaction 客戶機有其它的指令行選項。有關更多的資訊,請參閱 dtaction(1) 線上援助頁。
使用動作的 EXEC_STRING 中的 dtaction。
例如,以下動作使用名為Spell(拼字)(在「應用程式管理者」中標為``檢查拼字''的動作)的內建動作。新動作會執行「文字編輯器」與Spell(拼字)動作,在不同的終端機模擬器視窗中顯示拼字錯誤。
ACTION EditAndSpell { WINDOW_TYPE NO_STDIO EXEC_STRING /bin/sh -c 'dtaction Spell \ %Arg_1"檔案:"%; dtpad%Arg _1%' }
使用以下 EXEC_STRING 中的語法:
EXEC_STRING dtaction -user user_name action_name [file_argument]
新的使用者(user_name)必須經由下列機制之一,以到系統的顯示器存取權:
登入使用者的 .Xauthority 檔案上的讀取許可權
或,xhost 許可權
例如,下列兩個動作提供成為 root 與編輯 app-defaults 檔案的能力。
ACTION AppDefaults { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtaction -user root \ EditAppDefaults%Arg _1"檔案:"% } ACTION EditAppDefaults { WINDOW_TYPE TERMINAL EXEC_STRING /bin/sh -c 'chmod +w%Arg _1%; \ vi%Arg _1%; chmod -w%Arg _1%' }
資料類型的搜尋路徑包括語言相依的位置。桌上管理系統使用 LANG 的值以決定搜尋資料類型定義的位置。
本土化的動作定義必須放在沿著動作搜尋路徑的正確語言相依目錄中。
內定搜尋路徑為:
個人動作:HomeDirectory/.dt/types
整個系統的動作:/etc/dt/appconfig/types/language
內建動作:/usr/dt/appconfig/types/language
在合適的語言相依目錄中建立檔案(例如,在 /etc/dt/appconfig/types/japanese 中)。
將動作定義複製到語言相依的配置檔案。
例如,您可能會複製動作定義自
app_root/dt/appconfig/types/C/file.dt
至
app_root/dt/appconfig/types/japanese/newfile.dt
增加 LABEL(標籤) 欄位或修改現存的 LABEL 欄位。
LABEL 字串
「應用程式管理者」與「檔案管理者」使用標籤字串來識別動作的圖像。
在動作定義中本土化全部的下列欄位:
對於本土化的圖像:ICON(圖像)
對於本土化的關於項目輔助說明:DESCRIPTION(說明)
對於本土化的提示符號:任何 EXEC_STRING中稱的文字
以下資訊只應用於支援 ToolTalk 訊息的應用程式。
使用動作類型 TT_MSG
以建立送出 ToolTalk 訊息的動作。
ACTION action_name { TYPE TT_MSG ... }
ToolTalk 填寫位呎 欄位永遠是設定為 TT_PROCEDURE。
ToolTalk 配置 欄位內定為靜態訊息型樣中的規格。
下列為 TT_MSG
類型動作所不支援的:
ToolTalk 物件導向的訊息
訊息中的內容引數
表 12-3 顯示 TT_MSG 動作的關鍵字與用法。
表 12-3 TT_MSG 動作關鍵字與用法
關鍵字 |
用途 |
---|---|
TT_CLASS |
定義 ToolTalk 類別訊息欄位的值 |
TT_SCOPE |
定義 ToolTalk 範圍訊息欄位的值 |
TT_OPERATION |
定義 ToolTalk 作業訊息欄位的值 |
TT_FILE |
定義 ToolTalk 檔案訊息欄位的值 |
TT_ARGn_MODE |
定義第 n個訊息引數的 ToolTalk 模式屬性的值 |
TT_ARGn_VTYPE |
定義第 n個訊息引數的 ToolTalk vtype 屬性的值 |
TT_ARGn_VALUE |
定義第 n個訊息引數的值 |