9

フロントエンド トークンが実行可能かどうかを検出するにはどうすればよいですか? または、フロント エンド トークンの実行に失敗したかどうかを検出するにはどうすればよいですか?

例: 何も選択されていない場合、[編集] -> [コピー] コマンドは使用できません。 FrontEndTokenExecute["Copy"]この場合、単にビープ音を鳴らしますが、失敗したことを示す (プログラムによる) 表示はありません。

4

1 に答える 1

5

2 番目の質問に対処する方法を見つけましたが、エレガントではありません。

  1. マイナー ユーザー インターフェイス警告ビープ音とコンソールPreferences > Interface > Message and Warning actionsへの出力に設定します。
  2. メッセージ ウィンドウに少なくとも 1 つのエラー メッセージがあることを確認します。
  3. メッセージ ウィンドウ ノートブックへのハンドルを取得します (Notebooks[]などを使用)
  4. を使用して、最後のセルをメッセージ ノートブックに保存し NotebookGet[NotebookObject[FrontEndObject[LinkObject["55d_shm", 1, 1]], 1]]/. Notebook[{___, Cell[a___]}, ___] :> Cell[a]ます (もちろん、ハンドルの外観は異なります)。
  5. あなたの呼び出し: FrontEndTokenExecute["Copy"]
  6. 最後のエラー メッセージを取得し、手順 4 で保存したものと異なるかどうかを確認します。
  7. エラーセルは次のようになりますCell["You tried to edit a cell that is not editable. You can make the \ cell editable by choosing Cell Editable in the Cell Properties \ submenu.", "Message", "Message", "MSG", PageWidth -> WindowWidth, ShowCellLabel -> True, CellChangeTimes -> {3.534442831*10^9}, CellTags -> "cantEditLockedCell"]
  8. 適切に行動する
于 2012-01-01T22:03:08.167 に答える