4

新しいWindowsVistaシェルをコーディングするにはどうすればよいですか?

4

2 に答える 2

13

シェルとして実行する必要があることはすべて文書化されていないため、ファイル変更通知などにいくつかの問題があります。基本は次のとおりです。

  1. SystemParametersInfo(SPI_SETMINIMIZEDMETRICS、... MINIMIZEDMETRICS)(文書化されていない?)フラグ8
  2. シェルとして登録します(SetShellWindow、SetProgmanWindow、ShellDDEInit、RegisterShellHookなど)
  3. シグナルを設定してウェルカム画面を非表示にします( "msgina:ShellReadyEvent"および "ShellDesktopSwitchEvent")
  4. レジストリ実行キーを開始し、menu\startupおよびShellServiceObjectsを開始します
  5. レジストリExplorer\SessionInfoを設定します

良いことは、あなたが新しいシェルを最初に書いたわけではないということです。周りを見回すと、いくつかのあいまいな必要な情報を見つけることができます。開始するためのリストは次のとおりです。

于 2010-02-17T19:06:40.537 に答える
1

開始するのに適した場所は、入力をトークン化して解釈できるコマンドラインパーサーを構築する方法を調査することです。ANTLRのようにこれを支援できるツールがあります。または、独自のツールを作成してみてください。

入力を解析したら、実行するアクション(プロセスの起動、プロセス間のパイピング、出力のリダイレクト)を決定し、それらのシステムコールを実行する必要があります。

シェルの構築に興味があるのではなく、より強力なシェルを探している場合は、 PowerShellを試してみてください。

于 2010-02-16T04:11:35.920 に答える