ファイル名ではなく、説明ではなく、タイトルでショートカットのタイトルを取得したい。それを取得する方法は?
私はここからそのターゲットパスを解決することを学びました、c#で.lnkを解決する方法
しかし、私はそのタイトルを取得する方法を見つけられません。
(出典:ggpht.com)
(出典:ggpht.com)
ファイル名ではなく、説明ではなく、タイトルでショートカットのタイトルを取得したい。それを取得する方法は?
私はここからそのターゲットパスを解決することを学びました、c#で.lnkを解決する方法
しかし、私はそのタイトルを取得する方法を見つけられません。
(出典:ggpht.com)
(出典:ggpht.com)
JRLが示唆しているように、リンクが指すファイルのタイトルを取得しようとしているようです。
そうしない場合は、これらの.lnkファイルの1つをXVI32などの16進エディターで開くことをお勧めします。表示されている中国名が.lnkファイルに埋め込まれているのか、それとも別の場所にあるのかは、おそらくそこからわかります。
他の場所にある場合は、拡張ファイルプロパティである可能性があります。その情報の取得に役立つ可能性のあるソースコードがいくつかあります。拡張ファイルのプロパティ
万が一.lnkファイル内にある場合は、 Windowsショートカット仕様を参照して、そのデータの場所に関するオフセット情報などを取得することをお勧めします。
ショートカットディレクトリにDesktop.ini隠しファイルがあり、Desktop.iniファイルレコードはショートカットの文字列情報を表示します。
Desktop.iniファイルのサンプル:
[LocalizedFileNames] Windows Update.lnk = @%SystemRoot%\ system32 \ wucltux.dll、-1 デフォルトのPrograms.lnk=@%SystemRoot%\ system32 \ sud.dll、-1
コードパックの最新リリースでプロパティシステムAPIを使用できます。
(システム内のすべての670以上のプロパティは、単純なプロパティアクセサーを使用してアクセスできます)
http://code.msdn.microsoft.com/WindowsAPICodePack
私はあなたの現在の必要性がlnkファイルの限られたタイトルだけであることを知っています。上記のライブラリを使用すると、サンプルコードは次のようになります。
ShellLink myLink = ShellObject.FromParsingName( "c:\ somepath \ myLink.lnk");
文字列タイトル=myLink.Properties.System.Title.Value;
//これが指しているものです...stringtarget = myLink.Properties.System.TargetParsingPath.Value;
「タイトル」を定義してください。関連性があると思われる属性は、ショートカットのファイル名、ターゲットのファイル名、および.lnkファイルの説明データのみです。
リンク自体ではなく、リンクが指すファイルのタイトルを意味し、Windowsについて話しているとすると、NTFSの機能である代替ストリームを介して行われます。この記事のコードを使用して、これらのストリームにアクセスできます。
ショートカットの作成を見て回ると、スクリプトオブジェクトを使用してフープをジャンプすることがたくさんあるようです。しかし、私は何かが欠けていますか?ショートカットへのパスがある場合、名前は、検索する必要のある属性ではなく、パスで見つけたものとまったく同じである必要があります。
Dim f As FileInfo = New FileInfo("C:\Name of shortcut.lnk")
Dim title As String = f.Name.Replace(".lnk", String.Empty)