英語フランス語スペイン語

Ad


OnWorksファビコン

FvwmScript - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks 無料ホスティング プロバイダーで FvwmScript を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド FvwmScript です。

プログラム:

NAME


FvwmScript - グラフィック ユーザー インターフェイスを構築するモジュール

SYNOPSIS


FvwmScript は Fvwm によって生成される必要があります。 コマンドラインからは機能しません。

DESCRIPTION


FvwmScript は、次のような多くのグラフィカル アプリケーションを構築できるモジュールです。
デスクトップ アクセサリ、ポップアップ メニューを備えたボタン パネル、モーダル ダイアログ... 起動時に、
FvwmScript はコマンドラインで指定されたファイルを読み取ります。 このファイルには、
脚本。 このスクリプトはFvwmの設定ファイルには含まれていません。

FvwmScript スクリプトは、キーボードを使用して完全に制御できます。 (Shift)-タブを循環させます
ウィジェットの周りで、Return はマウスのクリックをシミュレートし、矢印はカーソルを移動するか変更します
ウィジェットの値と Escape は、Menu と PopupMenu を「キャンセル」します。

呼び出し


FvwmScript は、「Module FvwmScript name_of_script」という行を
.fvwm2rc ファイル。 ファイル「name_of_script」はスラッシュで始めることができます。その場合、
完全修飾パスを指定すると、ファイルが読み取られます。 「スクリプトの名前」が
スラッシュを使用すると、FvwmScript はいくつかの異なる場所で検索されます。 .fvwm2rc に
コマンドライン `*FvwmScript: Path path_of_the_script_directory'、FvwmScript はそれを試みます
ディレクトリ。 それが機能しない場合、FvwmScript はシステム構成ディレクトリを試し、
fvwm man の「Read」コマンドで説明されているユーザー構成ディレクトリ
ページで見やすくするために変数を解析したりすることができます。

FvwmScript を開始するコマンドは、FvwmScript を開始する場合、単独で XNUMX 行に配置できます。
fvwm の初期化中に生成されるか、メニューやマウス ボタンにバインドされるか、
後で呼び出すにはキーストロークを押します。

CONFIGURATION OPTIONS


次のコマンドは構成ファイルで使用できます (「 fvwm(1)、セクション モジュール
コマンド 詳細については)。 これらは、対応するスクリプト コマンドが使用できない場合にのみ使用されます。
スクリプトで使用されます。

*FvwmScript: デフォルトフォント フォント
使用するデフォルトのフォントを指定します。 このコマンドまたは
Fontコマンドを使用したスクリプトでは、固定フォントが想定されます。

*FvwmScript: DefaultFore カラー
使用するデフォルトの前景色を指定します。 これで指定しない場合
コマンドまたは ForeColor コマンドを使用したスクリプトでは、黒が使用されます。

*FvwmScript: デフォルト戻る カラー
使用するデフォルトの背景色を指定します。 これで指定しない場合
コマンドまたは BackColor コマンドを使用したスクリプトでは、grey85 が使用されます。

*FvwmScript: DefaultHilight カラー
使用するデフォルトのハイライト色を指定します。 このコマンドで指定しない場合
または、HilightColor コマンドを使用したスクリプトでは、grey100 が使用されます。

*FvwmScript: DefaultShadow カラー
使用するデフォルトの影の色を指定します。 このコマンドで指定しない場合
または、ShadowColor コマンドを使用したスクリプトでは、grey55 が使用されます。

*FvwmScript: デフォルトカラーセット カラーセット
モジュールにカラーセットを使用するように指示します カラーセット デフォルトのカラーセットとして。 を参照してください。
カラーセットの詳細については、FvwmTheme のマニュアル ページを参照してください。

アナトミー OF A SCRIPT


FvwmScript は特定のプログラミング言語を使用します。 スクリプトは XNUMX つの部分で構成されます。
見出しには、ウィンドウの一般的な特性とすべてのデフォルトのプロパティが含まれます。
ウィジェット。 XNUMX 番目の部分には、システムの起動時に実行される命令が含まれています。
脚本。 XNUMX 番目の部分には、XNUMX 秒ごとに実行される定期的なタスクが含まれています。 の
XNUMX 番目の部分には、終了時に実行される命令が含まれています。 そして最後の部分には以下が含まれます
ウィジェットの説明。 ウィジェットは、テキスト ラベル、
単一行のテキスト入力、ラジオ ボタン、チェックボックス、プッシュ ボタン、水平および垂直
スクロールバー、四角形、ポップアップ メニュー、swallowexec、ミニ スクロールバー。

HEADING OF A SCRIPT


構文は次のとおりです。

ウィンドウタイトル 文字列
このオプションはウィンドウのタイトルを設定します。

ウィンドウサイズ 高さ
このオプションはウィンドウ サイズを設定します。 & 高さ は数値です。

ウィンドウ位置 x y
このオプションはウィンドウの位置を設定します。 x & y は数値です。

前景色 {カラー}
このオプションは、すべてのウィジェットのデフォルトの前景色を設定します。

バックカラー {カラー}
このオプションは、すべてのウィジェットのデフォルトの背景色を設定します。

ハイライトカラー {カラー}
このオプションは、すべてのウィジェットのデフォルトのハイライト色を設定します。

シャドウカラー {カラー}
このオプションは、すべてのウィジェットのデフォルトの影の色を設定します。

カラーセット {n}
このオプションは、すべてのウィジェットのデフォルトのカラーセットを設定します。

フォント {フォント}
このオプションは、すべてのウィジェットのデフォルトのフォントを設定します。

Gettext を使用 [ロケールパス]
WindowLocaleTitle によって使用される gettext メカニズムの使用を有効にします。
LocaleTitle、ChangeLocaleTitle 命令、および Gettext 関数。 いいえの場合
引数が指定されている場合、デフォルトの FvwmScript ロケール カタログが使用されます。 このカタログは
ロケール fvwm インストール ディレクトリの下にあり、テキスト ドメインは FvwmScript です
(install_prefix/share/locale/*/LC_MESSAGES/FvwmScript.mo)。 これをリセットできます
カタログを作成するか、カタログを追加する場合とまったく同じ方法でカタログを追加します。 ロケールパス fvwm
コマンド (fvwm マニュアル ページを参照)。 この命令は、
WindowLocaleTitle 命令。

ウィンドウロケールタイトル 文字列
このオプションはウィンドウのタイトルを設定しますが、で定義されたロケール カタログを使用します。
Gettext を使用します。

初期化


この部分には、起動時に実行される命令が含まれています。 例えば:
その中に
始める
「実行 cat tada.voc > /dev/dsp」を実行します。
ワープポインター 1
$ToDo=再起動を設定します
終わり
これらの命令は、サウンドを再生し、ポインタをウィジェット 1 に移動し、ウィジェット XNUMX に移動するために使用されます。
起動するたびに $ToDo を「再起動」するように初期化します。

定期的 TASKS


スクリプトのこの部分には、毎秒実行される命令が含まれています。 ために
例:
定期タスク
始める
If (RemainderOfDiv (GetTime) 10)==0 then
{xcalc を実行} を実行します
終わり
この例では、xcalc を 10 秒ごとに起動する方法を示します。

QUITを FUNCTION


スクリプトのこの部分には、スクリプトの終了時に実行される命令が含まれています。
(Quit 命令の後、または Close、削除、または Destroy でウィンドウを閉じた場合)
fvwmコマンド)。 例えば
QuitFunc
始める
{エコーバイバイ}
終わり
KillModule fvwm コマンドを使用してスクリプトを閉じた場合、
間の通信リンクの存在に依存する命令または機能。
script と fvwm は実行されません (Do コマンドなど)。 スムーズに倒すには
fvwm コマンドを使用したスクリプトについては、を参照してください。 コマンド のセクションから無料でダウンロードできます。

メイン OF A SCRIPT


スクリプトの XNUMX 番目の部分には、スクリプト内のすべてのウィジェットの説明が含まれています。
各ウィジェットの説明は XNUMX つの部分で構成されます。 最初の部分では初期プロパティについて説明します。
XNUMX 番目の部分には、ウィジェットがメッセージを受信したときに実行される命令が含まれています。
すべてのウィジェットはメッセージを送受信できます。 すべてのメッセージは番号によって識別されます。 の
ユーザーがウィジェットを操作すると、メッセージ「UserAction」がウィジェットに送信されます。 構文
最初の部分は次のとおりです。
ウィジェット ID # 1 ~ 999 の数値
プロパティ
文字列型
サイズ幅高さ
位置xy
タイトル { 文字列 }
値 int
MaxValue int
MinValue int
フォント文字列
前色 { カラー }
BackColor { カラー }
HilightColor { カラー }
ShadowColor { カラー }
カラーセット整数
フラグ flagsOpt
Flags の flagsOpt オプションは、次の XNUMX つ以上を含むスペース区切りのリストです。
キーワード 隠されました, いいえレリーフ文字列, フォーカスなし, / センター / . 隠されました に使用されている
起動時にウィジェットを非表示にするかどうかを指定します。 いいえレリーフ文字列 文字列を描画するかどうかを指定します
安堵の有無に関わらず。 フォーカスなし ウィジェットがキーボード フォーカスを取得できるかどうかを指定します。
デフォルトでは、Rectangle、HDipstick、VDipstick を除くすべてのウィジェットがフォーカスを取得します。
さらに、NoFocus ウィジェットは、
(Shift-)Tab ショートカット。 / センター / テキストの位置を指定します。 これらが当てはまります
ItemDraw、List、Menu、PopupMenu、および PushButton のみ。 デフォルトは センター アイテムドロー用
プッシュボタンと 他のウィジェットの場合。

LocaleTitle は、で定義されたロケール カタログを使用するために、Title の代わりに使用できます。
Gettext を使用します。

すべてのウィジェットの位置を指定する必要があります。

XNUMX 番目の部分の構文は次のとおりです。
メイン
ケースメッセージ
シングルクリック:
始める
# 実行される命令のリスト
# ウィジェットが受信したときに実行される
# メッセージ「シングルクリック」。 このメッセージは
# ユーザーによって生成されます。
終わり
1:
始める
# 実行される命令のリスト
# ウィジェットが受信したときに実行される
# メッセージ 1
終わり
終わり

LIST OF ウィジェット


ウィジェットはXNUMX種類あります。

チェックボックス:チェックボックスを文字列で表示します。

役職: チェックボックスのタイトル。

: 値が 1 に等しい場合、ボックスはチェックされます。それ以外の場合はチェックされません。

  サイズ プロパティは無視されます。

HDリップスティック:水平レベルゲージを表示します。
このウィジェットを使用して、ディスク使用量を表示できます。

: ディップスティックの現在値を指定します。

最小値: ディップスティックの最小値を指定します。

最大値: ディップスティックの最大値を指定します。

最小サイズ 30x11 が課されます。

Hスクロールバー:水平スクロールバーを表示します。

:親指の位置。

最大値: 値の上限。

最小値: 値の下限値。

高さのプロパティは無視され、最小幅が適用されます。 幅は次のようにする必要があります
すべての値を選択可能にする場合は、少なくとも範囲に 37 を加えた値 (最小値は 0 など)
最大 10 の範囲は 11 であるため、最小幅は 48 にする必要があります。

アイテムドロー:アイコンや文字列を表示します。

役職: 表示する文字列。

アイコン: 表示するアイコン。

最大値: カーソルの x 座標。

最小値: カーソルの y 座標。

サイズは、タイトルやアイコンを含めるのに十分な大きさに作られています。

リスト:一覧を表示します。
リストを使用すると、ユーザーはさまざまなオプションから選択できます。

: どのオプションが選択されているかを指定します。

最小値: 最初に表示されるオプション。

役職: タイトルにはリストに表示されるオプションが含まれます。 構文は次のとおりです。
{オプション 1|オプション 2|...|オプション N}。 すべてのメニューはウィンドウの上部に表示されます。

少なくとも XNUMX つのアイテムの高さが課され、幅は少なくとも
108.

メニュー: ユーザーがオプションを選択できるメニューを表示します。
メニュー タイプの項目は、ウィンドウの上部に沿って左から右にレイアウトされます。
サイズと位置のプロパティは無視されます。

: どのオプションが選択されているかを指定します。

役職: タイトルにはメニューに表示されるオプションが含まれます。 構文は次のとおりです。
{オプション 1|オプション 2|...|オプション N}。

ミニスクロール: 非常に小さな垂直スクロールバーを表示します。

:親指の位置。

最大値: 値の上限。

最小値: 値の下限値。

サイズは19x34に設定されています。

ポップアップメニュー:ポップアップメニューを表示します。

: どのオプションが選択されているかを指定します。

役職: タイトルの構文は次のとおりです: {オプション 1|オプション 2|...|オプション N}."オプション
1|オプション 2|...|オプション N」は、マウスを押したときに表示されるポップアップ メニューです。


size プロパティは無視されます。

ボタンを押す:プッシュボタンをアイコンや文字列で表示します。

役職: この文字列の構文は次のとおりです {ボタンのタイトル|オプション 1|オプション
2|オプション3|...|オプションN}。 「オプション 1|オプション 2|...|オプション N」はポップアップ メニューです。
右ボタンを押すと が表示されます。

アイコン: 表示するアイコン。

ボタンは、アイコンやラベルが収まる十分な大きさに作られています。

ラジオボタン:ラジオボタンを文字列で表示します。

役職: ラジオボタンのタイトル。

: 値が 1 に等しい場合、ボックスはチェックされます。それ以外の場合はチェックされません。

size プロパティは無視されます

長方形:四角形を表示します。
このタイプのウィジェットはウィンドウを装飾するために使用できます。

ツバメエグゼク
このタイプのウィジェットにより、FvwmScript がプロセスを生成し、最初のプロセスをキャプチャします。
名前またはリソースが Title と等しいウィンドウをスクリプト内で表示します
窓。

役職: スクリプト内でキャプチャして表示するウィンドウ名を指定します。
窓。

ツバメエグゼク: プロセスを生成するために実行するコマンド ラインを指定します。 モジュールは次のことができます。
飲み込まれることもあります。

: 境界線の外観を指定します。 可能な値: -1、0、1。

サイズは少なくとも30x30になるように作られています

テキストフィールド:テキスト入力フィールドを表示します。
テキスト入力フィールドを使用して、単一行の文字列を編集できます。

役職: テキストフィールドの内容。

: 挿入ポイントの位置。

最小値: 選択範囲の終了位置。

最大値: タイトルの最初に表示される文字

高さのプロパティは無視され、幅は少なくとも 40 ピクセル広くなります。
当初の内容よりも。

Vディップスティック:垂直レベルゲージを表示します。

: ディップスティックの現在値を指定します。

最小値: ディップスティックの最小値を指定します。

最大値: ディップスティックの最大値を指定します。

サイズは11×30以上で作られております。

VScrollBar: 垂直スクロールバーを表示します。

:親指の位置。

最大値: 値の上限。

最小値: 値の下限値。

width プロパティは無視され、最小の高さが課されます。 高さは
すべての値を選択可能にする場合は、少なくとも範囲に 37 を加えた値にする必要があります (最小値は 0 など)
最大 10 の範囲は 11 であるため、最小の高さは 48 にする必要があります。

連絡先情報について


ここではすべての指示について説明します。

ウィジェットを非表示 id : 番号付きのウィジェットを非表示にします id.

ウィジェットを表示 id: 番号付きのウィジェットを表示します id.

変更値 id1 id2
番号付きのウィジェットの値を設定します id1 〜へ id2.

最大値の変更 id1 id2
番号付きウィジェットの最大値を設定します id1 〜へ id2.

最小値の変更 id1 id2
番号付きウィジェットの最小値を設定します id1 〜へ id2.

タイトルの変更 id1 id2
ウィジェットのタイトルに番号を付けて設定します id1 〜へ id2.

ウィンドウタイトルの変更 文字列
ウィンドウのタイトルを次のように設定します。 文字列.

ChangeWindowTitleFromArg 数値引数
ウィンドウのタイトルを次の値に設定します。 数値引数- 番目のスクリプト引数。

ロケールタイトルの変更 id1 id2
ChangeTitle として使用しますが、UseGettext で定義されたロケール カタログを使用します。

変更アイコン id1 id2
ウィジェットのアイコンに番号を付けて設定します id1 〜へ id2.

前の色の変更 id1 {カラー}
番号付きのウィジェットの前景色を設定します id1 に {カラー}.

戻る色を変更 id1 {カラー}
番号付きのウィジェットの背景色を設定します id1 に {カラー}.

カラーセットの変更 id1 id2
番号付きのウィジェットのカラーセットを設定します id1 〜へ id2。 ウィジェット 0 を指定すると、
メインウィンドウのカラーセット。

位置変更 id1 x y
番号付きのウィジェットを移動する id1 位置に(x,y).

サイズ変更 id1 高さ
番号付きのウィジェットのサイズを設定します id1 に(,高さ).

フォントの変更 id1 ニューフォント
番号付きウィジェットのフォントを設定します id1 〜へ ニューフォント.

ワープポインタ id
マウスポインタを番号付きのウィジェットにワープします id.

ファイルに書き込む ファイル名 {str1}{str2} など
ファイルに書き込む ファイル名 すべての引数を連結した文字列
str1, str2, etc.

する { command 引数}
Do ブロック内で fvwm コマンドを実行します。 「」で説明されている任意の fvwm コマンド
fvwm2 のマニュアルページを使用できます。 コマンドはこのモジュールから fvwm main に送信されます。
処理するためのプログラム。 コマンドと引数の長さは 988 を超えることはできません
文字。

$を設定するVAR={STR1} {str2} など
すべての引数を文字列に連結し、変数 $ を設定します。VAR この文字列に。

終了: プログラムを終了します。

送信信号 id1 id2
番号付きのメッセージを送信する id2 ウィジェットへ id1.

SendToScript id_script {str11} {str2} など
id_script で識別されるスクリプトにメッセージを送信します。 メッセージは、
str1、str2...の連結

キー キー名 変更 id SIG str1 str2
キーボードのキーを命令にバインドします

送信信号 id SIG

そして、「最後の文字列」を str1、str2... の連結に設定します (
LastString 関数)。 の キー名 & 修飾子 フィールドは fvwm のように定義されます
キーコマンド。

議論


ほとんどのコマンドは引数を使用します。 引数には数値と文字列の XNUMX 種類があります。 あ
数値引数は -32000 ~ +32000 の値です。 文字列は常に
中括弧で囲まれています。 変数は常に文字「$」で始まり、両方を含めることができます。
数値と文字列。

関数


すべての関数は引数を使用します。 関数は文字列と数値の両方を返すことができます。 構文
次のとおりです。
(関数の引数1 引数2 など)
引数の完全なリストは次のとおりです。

(タイトルを取得 id)
番号付きのウィジェットのタイトルを返します id.

(GetValue id)
番号付きのウィジェットの現在の値を返します。 id.

(GetMinValue id)
番号付きのウィジェットの現在の最小値を返します。 id.

(GetMaxValue id)
番号付きのウィジェットの現在の最大値を返します。 id.

(GetFore id)
番号付きのウィジェットの現在の RGB 前景値を返します。 id XNUMX進形式で
RRGGBB。

(ゲットバック id)
番号付きのウィジェットの現在の RGB 背景値を返します。 id XNUMX進形式で
RRGGBB。

(GetHilight id)
番号付きのウィジェットの現在の RGB ハイライト値を返します。 id XNUMX進形式で
RRGGBB。

(ゲットシャドウ id)
番号付きのウィジェットの現在の RGB シャドウ値を返します。 id XNUMX進形式で
RRGGBB。

(GetOutput {STR} intxnumx intxnumx)
コマンドを実行します STR、標準出力を取得し、その中にある単語を返します。
ライン intxnumx そしてその位置で intxnumx。 場合 intxnumx -1 に等しい場合、GetOutput は戻ります
完全なライン。

(NumからXNUMX進数まで int型)
の XNUMX 進値を返します int型.

(HexToNum {STR})
の XNUMX 進数値を返します STR, STR XNUMX 進値である必要があります。

(追加 intxnumx intxnumx)
(の結果を返します)intxnumx+intxnumx).

(マルチ intxnumx intxnumx)
(の結果を返します)intxnumx*intxnumx).

(Div intxnumx intxnumx)
(の結果を返します)intxnumx/intxnumx).

(StrCopy {STR} intxnumx intxnumx)
位置 int1 と int2 の間にある文字列を返します。 たとえば、(StrCopy
{Hello} 1 2) {He} を返します

(起動スクリプト{STR})
この関数は、str という名前のスクリプトを起動し、識別番号を返します。
この番号は、SendToScript および ReceiveFromScript 関数を使用するために必要です。
文字列 str には、スクリプト名といくつかの引数が含まれます。

(GetScriptArgument {int型})
この関数は、LaunchScript 関数で使用される引数スクリプトを返します。 もしも
int がゼロに等しい場合、GetScriptArgument はスクリプトの名前を返します。

(GetScriptFather)
この関数は、スクリプトの親の識別番号を返します。

(ReceivFromScript {int型})
この関数は、int 番号のスクリプトによって送信されたメッセージを返します。

(RemainderOfDiv {intxnumx intxnumx}):t
この関数は除算の余りを返します (intxnumx/intxnumx).

(時間をもらう)
この関数は時間を秒単位で返します。

(GetPid)
この関数は、スクリプトのプロセス ID を返します。

(取得テキスト {STR})
この関数は、次の翻訳を返します。 STR 定義されたロケール カタログを使用する
UseGettextを使用します。

(SendMsgAndGet {comId}{CMD} ブール)
コマンドを送信します CMD 識別子付き comId 準備ができている外部プログラムに
FvwmScript に固有のプロトコルを使用してスクリプトと通信します。 もしも ブール 0です
FvwmScript は外部プログラムからの応答を待ちません。 この場合、
戻り値は、メッセージを外部プログラムに送信できる場合は 1、そうでない場合は 0 です。
これはそうではありません。 もしも ブール が 1 の場合、FvwmScript は、
外部プログラムであり、戻り値はこの答えです(32000行以下)
文字)。 通信が失敗した場合、戻り値は 0 です。セクションを参照してください。
A COMMUNICATION プロトコル 使用される通信プロトコルの説明については、「」を参照してください。

(解析{STR} int型)
コラボレー STR 次の形式の文字列である必要があります。
X1S1X2S2X3S3...SnXn
ここで、Xn は XNUMX 桁の XNUMX 進数を含む数値であり、Sn は次の文字列です。
長さは正確に Xn です。 戻り値は文字列 S ですint型。 場合 int型 範囲外です
(例: >n) 戻り値は空の​​文字列です。 もしも STR 指定されたものではありません
この形式では、戻り値は予測できません (ただし、平均的には空です)。 この機能
SendMsgAndGet 関数によって返された文字列を処理するのに便利です。

(最後の文字列)
この関数は、Key 命令の「現在の作業文字列」を返します。
SendString コマンド ( コマンド セクション)。 起動時にはこの文字列は空ですが、
キー バインディングが検出されたとき (それぞれ、SendString コマンドが受信されたとき)、
次に、この文字列は命令に関連付けられた文字列に設定されます (それぞれ、
コマンドに)。

条件付き ループ


条件ループには XNUMX 種類あります。 「If-Then-Else」命令には、
次の構文:
$ToDo=={xcalc を開く} の場合
Do {Exec xcalc &} # 命令のリスト

始める
Do {Exec killall xcalc &} # 命令のリスト
{Exec echo xcalc kill > /dev/console} を実行します。
終わり
XNUMX 番目の部分「Else-Begin-End」はオプションです。 ループに命令が XNUMX つしか含まれていない場合、
Begin と End は省略できます。 「while-do」命令の構文は次のとおりです。
$i<5 の間、実行します
始める
Set $i=(Add i 1) # 命令のリスト
終わり
XNUMX つの文字列は「==」で比較でき、XNUMX つの数値は「<」、「<=」で比較できます。
「==、">=、">」。 ループ「For-Do-Begin-End」の構文は次のとおりです。
$i=1 ~ 20 の場合は実行します
始める
Do {Exec xcalc &} # 命令のリスト
終わり

コマンド


次の fvwm コマンドはいつでも実行できます。

モジュールに送信 スクリプト名 送信文字列 id SIG STR

一致するエイリアスまたは名前を持つモジュールに送信します スクリプト名 文字列

送信文字列 id SIG STR

FvwmScript がそのようなメッセージを受信すると、ウィジェットに送信します。 id 番号が付けられた信号
SIG と文字列 STR LastString関数で取得できます。 あげましょう
例。 ウィジェットを含むスクリプト MyScript があるとします。
ウィジェット50
プロパティ
タイプ プッシュボタン
タイトル {やめます}
...
メイン
ケースメッセージ

シングルクリック:
始める
やめます
終わり

1:
始める
$str = (最後の文字列) を設定します。
If $str == {終了} then
やめます

タイトル変更 33 $str
終わり

終わり
次に、コマンド
SendToModule MyScript SendString 50 1 str
str が "Quit" に等しい場合は MyScript を強制的に終了し、そうでない場合はタイトルを変更します。
ウィジェット 33 から str.

このコマンドはウィンドウのタイトルを変更するために使用できます。

モジュールに送信 スクリプト名 ウィンドウタイトルの変更 新しいタイトル 【旧称号】

これにより、一致するエイリアスまたは名前を持つモジュールが スクリプト名 そのを変更します
関連付けられたウィンドウタイトル 新しいタイトル。 オプションの引数 古いタイトル そこにあるときは意味があります
同じスクリプトの複数のインスタンスです。 これにより、名前の変更を避けることができます。
これらすべてのインスタンスは、ターゲット スクリプトに関連付けられたウィンドウの名前を指定して実行します。
(以下の例を参照してください)。

+ I モジュール FvwmScript FvwmStorageSend "/dev/hda6"
+ FvwmStorageSend を待ちます
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ I モジュール FvwmScript FvwmStorageSend "/dev/hda1"
+ FvwmStorageSend を待ちます
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA1 FvwmStorageSend

最後のケースで FvwmStorageSend 引数がなければ、SendToModule コマンドは次のようになります。
FvwmStorageSend の両方のインスタンスの名前が HDA1 に変更されました。


スクリプトの例は fvwm 構成ディレクトリにあります。

FvwmScript-BellSetup、FvwmScript-KeyboardSetup、FvwmScript-PointerSetup、および FvwmScript-
ScreenSetup は、X 設定を変更するスクリプトのセットです。 これらのスクリプトは設定を保存します
という名前のファイルに ~/.xinit-fvwmrc (別のファイル名を使用する場合は、そのファイル名を
スクリプトの最初の引数)。 起動時に毎回これらの設定をロードしたい場合は、
.xinitrc (または .xsession) ファイルに「.xinit-fvwmrc」という行を含める必要があります。
fvwmを起動します。

FvwmScript-BaseConfig は、fvwm フォーカスとページング マウス ポリシー、ウィンドウの配置、
移動およびサイズ変更コマンドの不透明度およびその他の機能、スナップ アトラクションおよびシェーディング
アニメーション。 このスクリプトは、ユーザーの環境設定を .FvwmBaseConfig という名前のファイルに保存します。
データ ディレクトリ (つまり、$HOME/.fvwm または設定されている場合は $FVWM_USERDIR)。 これらをロードしたい場合は、
起動するたびに設定を行うには、fvwm に「Read .FvwmBaseConfig」という行を追加する必要があります。
設定ファイル。 別のファイル名を使用する場合は、それを最初の引数として指定します
スクリプトの。 [OK] または [適用] をクリックすると、次の名前で定義できる fvwm 関数が適用されます。
BaseConfigOkFunc または BaseConfigApplyFunc が呼び出されます。 これにより、特定のリロードが可能になります
スクリプトによって破壊されたアプリケーション スタイル (例: AddToFunc BaseConfigOkFunc I Read)
MyAppStyle)。

FvwmScript-Buttons は、FvwmButtons を置き換えることができるボタン パネルです (このスクリプトは
ポップアップ メニューには xload、xクロック、FvwmPager、TkDesk が必要です)。 FvwmScript-Colorset により、
カラーセットを編集することができます (FvwmTheme を参照)。 FvwmScript-Date を使用すると、日付と
時間。 FvwmScript-FileBrowser は、他のスクリプトで使用されるファイル ブラウザです。 FvwmScript-
Find は、検索するための基本的なフロントエンドです。 FvwmScript-Quit を使用すると、fvwm を終了して再起動できます。
fvwm またはその他のウィンドウ マネージャーを使用するか、コンピューターをシャットダウンして再起動します。 FvwmScript-
ScreenDump はスクリーン ダンパーです。 FvwmScript-WidgetDemo は純粋なサンプル スクリプトです。 を参照してください。
FvwmScript-ComExample については次のセクションを参照してください。

A COMMUNICATION プロトコル


FvwmScript は弱い (しかし単純な) プログラミング言語です。 たくさんのことに対処する必要がある場合は、
データや複雑なアルゴリズムを使用する必要がある場合は、外部プログラム (Perl の場合) を使用する必要があります。
たとえば)、必要な情報を FvwmScript スクリプトに「送信」します。 最初
アプローチは、GetOutput 関数を使用することです。 これは簡単ですが、再実行する必要があります
外部プログラムからの情報が必要になるたびに、外部プログラムからの情報が必要になります (これによりパフォーマンスが低下する可能性があります)
問題)。 XNUMX 番目のアプローチは、拡張された SendMsgAndGet 関数を使用することです。
名前付きパイプ (fifo) を処理できる任意のプログラミング言語を使用した FvwmScript。 私たち
このソリューションについては、このセクションで説明します。 (XNUMX 番目のアプローチは、fvwm-themes-com を使用することです。
fvwm-themes パッケージですが、実際には SendMsgAndGet メソッドは次の実装です。
FvwmScript 内の fvwm-themes-com を使用すると、パフォーマンスが向上します)。

基本的に、FvwmScript から「外部」プログラム (略してプログラム) を開始します。
スクリプト(略してスクリプト)。 このプログラムはバックグラウンドで実行され、
スクリプト内の SendMsgAndGet 関数を使用して、質問したり、ユーザーに指示を与えたりすることができます。
プログラム。 プログラムは特定の通信プロトコルを厳密に尊重する必要があります。 の最初の
存在するのは識別子だけです comId 通信の場合、プロセス ID が含まれている必要があります
プロトコルを適切に実装するためのスクリプト (GetPid 関数を使用し、
  comId プログラムのオプション経由)。 このプロトコルは、fvwm ユーザーで XNUMX つの FIFO を使用します。
ディレクトリ名: .tmp-com-in-comId および .tmp-com-out-comId。 プログラムは、
.tmp-com-in で聞いてください。comId フィフォ。 次に、FvwmScript が次の関数を実行すると、
形:

$answer = (SendMsgAndGet {comId}{CMD} ブール)

FvwmScript は、 CMD このFIFOで。 このようにして、プログラムは CMD そして、することができます
適切なアクションを実行します (複数のアクションをサポートするには、in FIFO を削除する必要があります)
コミュニケーション)。 もしも ブール が 0 の場合、FvwmScript はプログラムからの応答を待たず、
前のアクションが成功した場合は 1 を返し、失敗した場合は 0 を返します (その後、プログラムは「
「戻る」を FIFO に戻します)。 ブール が 1 の場合、FvwmScript はからの応答を待ちます (20 秒)。
プログラムを実行し、その結果をスクリプトに返します (注意してください) ブール には渡されません
プログラムは、どのコマンドに応答が必要かを知る必要があるため)。 答えるために、プログラムは次のように作成します。
.tmp-com-out-comId fifo に答えを書きます。 プログラムは次まで待機する必要があります
FvwmScript は答えを読み取り、出力 FIFO を削除して入力 FIFO に戻る必要があります。
フィフォ。 答えは 32000 文字以内の XNUMX 行で構成する必要があります (ご覧ください)
Parse関数では複数行をXNUMX行として扱います)。

このプロトコルを理解し、それを使用するスクリプトとプログラムを作成する簡単な方法は次のとおりです。
(役に立たない) サンプル FvwmScript-ComExample と fvwm-script- を見てみましょう。
ComExample.pl (fvwm データ ディレクトリにあります)。 また、今回の実装では、
このプロトコルは、「スクリプトが不正な理由で終了した場合はどうすればよいですか?」という疑問を解決します。
プログラムが何らかの理由で終了した場合はどうすればよいでしょうか? ...等。

onworks.net サービスを使用してオンラインで FvwmScript を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad