一部のバッチ タスクを簡素化するために、COM 自動化インターフェイスを使用して Delphi ソフトウェア プロジェクトをアップグレードしています(WSH スクリプトを使用)。それ自体は簡単です...しかし、ソフトウェアの「実際の」ユーザーのほとんどは、このインターフェイスを必要とせず(または知っていても)、COMサーバーまたはエラーメッセージの登録を惜しみませんプログラムがcomサーバーを起動できないときにポップアップします(現在、ソフトウェアにはインストーラーがありません-コピーアンドゴーです。何かを登録することは、ユーザーにとって追加のステップになります。それは社内であるため、クライアントはそれに慣れています. ..)。
実際の質問は次のとおりです。ソフトウェアを実行している現在のユーザーが COM サーバーを登録するのに十分な権限を持っているかどうかをプログラムで確認し、(そうでない場合) サーバーを作成しないようにすることはできますか? ユーザーが十分な権限を持っていない場合、自動化サーバーが存在しない (エラー メッセージが表示されない) という動作が必要です。
の周りにtry-catchを追加しようとしましたTAutoObjectFactory.Create(...)
が、それはエラーを防ぎません。サーバーを有効にするコマンド ライン パラメーターを追加しても機能しません。スクリプトから自動化オブジェクトを作成すると、そのパラメーターなしでプログラムが開始され、サーバーも作成されないためです。