2009-02-26 2 views
2

最近(今日)Delphi内からレジストリでmeddelingを開始しました。 :) すべてがうまくいき、私のカスタムファイルタイプがプログラムで開きますが、解決できない2つの問題があります。Windowsレジストリファイルの関連付けメニュー

1)私は

reg := TRegistry.Create; 
    reg.RootKey := HKEY_CLASSES_ROOT; 
    reg.LazyWrite := false; 
    reg.OpenKey('*\OpenWithList\EncryptionSystem', true); 
    reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"'); 
    reg.CloseKey; 
    reg.free; 

を追加しましたので、私はregeditを使用レジストリに見れば、あるように思わなければならないとして、それは必ずありますすべての種類のファイルから「で開く」オプションを望んでいたが、私は右ファイルをクリックすると、それはそこではありませんで開く]を選択します...

だから私は、この

reg.OpenKey('*\shell\Encrypt\command', true); 
    reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"'); 
    reg.CloseKey; 

を追加しました。これは、すべてのファイルのための作業を行いますが、オプションが "正しい「オープン」でトップにあり、編集 "。 ほとんどのプログラムのように、メニューのサブセクションに表示されてほしいと思っています... 私はshellextで遊ぶ必要があることに気づきましたが、コンテキストメニューハンドラでどのように動作するのかを理解できませんでした...とにかくレジストリを読んで私が持っていたことすべてを学んだ...私はshellextの名前が "。*"の後に現われることを知っているが、大きなジッバーリッシュキーの意味についてはわからない。

答えて

6

"Open with"メニューには、そのレジストリキーだけが入力されていないようです。私はリストという推測を思い切ってしたい

ます。HKCU \ Software \ Microsoft \ Windowsの\ CurrentVersionの\ Explorerの\ FileExts

:次の場所にエクスプローラで保存された拡張機能固有のリストで捏造ですあなたのアプリケーションを追加しているのは、エクスプローラの方が使い勝手が良くない場合にのみ使用されるためです。つまり、独自の「Open with」リストが定義されていないファイルに対してのみです。

また、「Open with」レジストリエントリは、使用しているレジストリエントリとは異なるフォームになっているようです。キーは、ExcryptionSystem.exeなど、EXEファイルの名前でなければなりません。そのキーのデフォルト値は、存在する場合は空の文字列でなければなりません。私は自分のシステム上のレジストリに表示されているものに基づいています。

Introduction to File AssociationsFile Types MSDNの記事をご覧ください。

+0

いや.exeの拡張子の追加とregestryエントリ内のデータリンクの除去は、それを固定しているようだ...にいますティがどこにあるのかを伝えた。メー.... – Arthur

1

レジストリを見ると、あなたの行が変更されるはずです。

reg.OpenKey('*\OpenWithList\EncryptionSystem.exe', true); //note exe 
reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"') 

reg.OpenKey('*\OpenWithList\EncryptionSystem', true); 
reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"') 

から

は、最初にこれを確認してください。

0

私のW7Pでは参照されていません。代わりに、彼らは笑私はデータリンクがどのようにあったように知らない,,

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 
関連する問題