2012-01-17 8 views
1

コマンドまたはアプリケーションによって使用されるオプション(何の手動入力を持たないを取得する方法があるかどうか私は知りたいのですが、ある例:シェル/端末コマンド/アプリケーションのオプションを知る方法はありますか?

に位置アプリケーションScreenSaverEngineについて:

/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ 

は私がデスクトップの背景として、現在のスクリーンセーバーを設定することを可能にするオプション-backgroundを持っている。

./ScreenSaverEngine -background 

今、私はこのアプリケーションで他のものをやりたい、または少なくとも私は他のものを行う可能性があるかどうかを知りたいと思います。だから私はスクリーンセーバーエンジンのすべての他のオプションを知りたい。私はいくつかのオプションがアプリケーションにコード化されていると思ったので、何かを試しました。

strings ScreenSaverEngine | grep "-" 

結果は表示されません。 ScreenSaverEngineはそう

man ScreenSaverEngine 

が助けにはなりません、マニュアルを持っていません。私はどんな提案にも満足しています:-)。

(ちなみに私はMAC OS Xを使っています)

+0

' -h' - 'に共通のスイッチの一部です?は、アプリケーションが提供するヘルプ情報を一覧表示します。 – zrvan

+0

いいえ、私は論文を試して、スクリーンセーバーを起動するとサポートしていないオプションを引き起こしました: -/ – justSaid

+0

AppleのDeveloperエリアのドキュメントを見てきましたか?[ScreenSaver](https://developer.apple.com/ライブラリ/ mac/navigation /)ここに4つの便利な探している文書が私のために来た。 –

答えて

4

関数(C言語)に渡されたパラメータargvは、プログラムが望む方法で格納、解析、アクセスすることができるため、これはできません。それは、ファイルにパラメータを書き出し、使用するオプションを知りたいときにファイルを読むことさえできます。

ただし、コマンドラインオプションが既に文書化されているようです。 CocoaDevから:

ScreenSaverEngineは、デバッグに を支援するためにいくつかの特別なコマンドラインフラグをサポートしています。

-background - すべてのスクリーンセーバーウィンドウがFinderのアイコンの後ろが、目の前に(他のすべてのウィンドウの後ろに表示されますデスクトップイメージ)。 パスワードとガンマフェード機能は無効になっています。マウスまたはキーボードのアクティビティが で終了しません。

-debugは - -backgroundのように、デスクトップ上でマウスの動きを除いて、それが終了します。 ScreenSaverEngineを GDBで実行すると非常に便利です。 ( を終了させずにこのモードでコンピュータを回そうとすると、子供としてフロアを触らないでください)

-module - ユーザーが指定したモジュールではなく、指定されたモジュールを読み込みますデフォルト。 〜/ Library/Preferences/ByHost/com.apple.screensaver。* .plistのmoduleNameノードと同じ値を受け入れます。 の場合、Flurry、Abstract、またはSpectrum。とても それは典型的な スクリーンセーバーのフォルダのいずれかに目的のモジュールを配置し、ファイル名の拡張子なしでそれを参照する必要があります、しかし、.slideSaver、または.qtzファイルを.saverする フルパスまたはURLを受け入れるように表示されません。 。

0

ここで私は私の道に入れたいスクリプトです: `--help`、` -help`、 `、

#!/bin/bash 

usage() { 
    echo "usage: $0 [options]" 
    echo " -background Screen saver windows appear behind all other windows" 
    echo " -debug  Like -background, except mouse movement over the" 
    echo "     desktop causes it to exit" 
    echo " -module  Loads the specified module by name" 
} 

engine=/System/Library/Frameworks/ScreenSaver.framework/Resources\ 
/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine 

while getopts "hbackgrounddebugmodule" opt; do 
    case "${opt}" in 
     h) 
      usage 
      exit 0 
      ;; 
    esac 
done 

$engine "[email protected]" 
関連する問題