問題タブ [windows-shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1148 参照

winapi - c:\windows\installer で終わるリンクで機能する .lnk ターゲットを解決する方法はありますか?

lnk を解決する通常の方法には、そのように WShell.WshShortcut または IShellLink を使用することが含まれます。

ただし、その方法で解決できないリンクがあります。たとえば、解決策はc:\windows\installer\{some-guid}\python_icon.exeになります。ほとんどの Office プログラムにもこの問題があります。

CodeProject には、lnk 形式http://www.codeproject.com/KB/shell/ReadLnkFile.aspxをリバース エンジニアリングすることによって行われる別のソリューションがありますが、これらのケースでは機能しません。

他の方法はありますか?

この c:\Windows\Installer フォルダは何ですか? そして、そこに入れられているこのsomething_icon.exeは何ですか?

0 投票する
3 に答える
2799 参照

windows-shell - ファイル拡張子で拡張子名とアイコンを取得する最速の方法は?

特定の拡張子 (フル パスなし) の説明と既定のアイコンを取得するには、いくつかの方法があります。たとえば、"*.doc" の場合、"Microsoft Word ドキュメント" と関連するアイコンを取得したいのですが、どちらが最速だと思いますか?次のいずれか:

  1. レジストリを検索します。

    • レジストリで、「HKCR.{拡張子}」に移動し、デフォルト値を読み取ります(ファイルタイプと呼びましょう)
    • "HKCR{filetype}\DefaultIcon" で、デフォルト値を読み取ります。これは、アイコン ファイル (または、アイコン リソースが埋め込まれた .exe などのアイコン コンテナー ファイル) へのパスです。
    • 必要に応じて、前述のファイルからアイコン リソースを抽出するお好みの方法を使用してください。
  2. API ShGetFileInfo を呼び出します。これは少し遅いと思います。

  3. ロブによると、ここ: Delphi を使用してファイル拡張子からアイコンと説明を取得する方法は?

IExtractIcon インターフェイスを「より柔軟で効率的な」代替手段として呼び出します。ただし、推奨される順序は、IShellFolder インターフェイスを使用し、次に GetUIObjectOf を呼び出してファイルの IExtractIcon インターフェイスを取得し、それに対して GetIconLocation と Extract を呼び出してアイコンのハンドルを取得することです。(しかし、このメソッドは拡張機能の説明を読み取ることができませんか?)

システム内のすべてのファイルタイプの情報を読み取る必要があるため、速度は非常に重要です。

どうもありがとうございました!

0 投票する
3 に答える
789 参照

winapi - CSIDL_PROFILES の #define が見つからないのはなぜですか?

ShGetFolderPathを使用して、ユーザー プロファイル フォルダーのパスを特定しようとしています。ドキュメントには、CSIDL_PROFILES がこのフォルダーを定義すると記載されています。

CSIDL_PROFILES (0x003e)

バージョン 6.0。ユーザー プロファイル フォルダーを含むファイル システム ディレクトリ。一般的なパスは C:\Documents and Settings です。

CSIDL_PROFILESVisual Studio 2005 SP1 を使用していますが、Platform SDK のインクルード ファイルで定数の定義が見つかりません。Platform SDK の新しいバージョンが必要ですか?

そこで、シンボルの代わりに ID 0x3e を使用して、さらに実験を行いました。ただし、0x3e は、CSIDL_* 引数を受け入れるシェル関数に対する有効な引数ではないようです (無効な引数エラーが返されます)。

したがって、CSIDL_PROFILES は有効な引数ではなく、このシンボルについて言及している MSDN ページの少なくとも一部は間違っていると思います。Win32/MSDN のドキュメントを何年も扱ってきましたが、似たような状況を思い出すことはできません。

0 投票する
1 に答える
2966 参照

icons - フォルダーのパスに従って LPITEMIDLIST ポインターを取得する方法は?

指定したフォルダのシステム アイコンを取得したいのですが、アイコンを取得するには SHGetFileInfo() メソッドを使用するしか方法がないかもしれません。SHGetFileInfo()メソッドの第一引数はLPITEMIDLISTのポインタです。

フォルダーの絶対パスしかない場合、パスに従ってポインターを取得するにはどうすればよいですか?

0 投票する
1 に答える
1217 参照

delphi - コードで TShellListView の永続的な列幅を設定する

コードを使用して vsReport モードで Delphi 2007 TShellListView の列幅を永続的に設定する方法はありますか? 通常の ShellListView.Columns[0].Width プロパティは、現在のディレクトリの幅のみを設定し、その幅は、現在のディレクトリの変更またはファイル リストの更新 (コードを介して行われた更新およびディレクトリの変更を含む) のたびにリセットされます。フォルダをダブルクリックするなど)。

0 投票する
1 に答える
164 参照

button - VistaShellviewヘルプボタン

VC 2005で名前空間拡張機能を作成しました...ビスタツールバーにある[ヘルプ]ボタンを使用して、製品のヘルプドキュメントを表示する方法を考えていました。現在、ヘルプボタンを使用できますが、クリックしても何も起こりません。

これはXPのような以前のWindowsバージョンでは利用できなかった新機能であるため、Vistaおよび7でヘルプボタンを処理する方法を考えていました。

0 投票する
2 に答える
1206 参照

c++ - デフォルトのWindowsXPシェルの代わりにアプリケーションを実行するにはどうすればよいですか?

私は同僚と次のことが可能かどうかについて話し合っていました。

  1. Windows XPのUSBドライブからMFCアプリケーションをインストールします(このインストールは、ソフトウェアをインストールするのに十分な権限を持つユーザーによって手動で開始されます)。
  2. 再起動後、このアプリケーションはデフォルトのWindows XPシェル(explorer.exe)の代わりに起動するはずです。

誰かが私がこれを達成する方法を知っていますか?

0 投票する
3 に答える
678 参照

windows - Windowsエクスプローラーに新しいボタンを追加するにはどうすればよいですか?

Windowsエクスプローラーで新しいボタンを追加する方法を知りたいです。新しいツールバーを作成したくありません。IEではなく、同じWindowsエクスプローラーの標準ボタンツールバーに新しいボタンを追加したいだけです。

可能な限りの助けに感謝します。

よろしく

0 投票する
5 に答える
2928 参照

.net - .NETで共通のデスクトップパスを取得する

Windowsの一般的なデスクトップにファイルを保存する必要があります。このアプリケーションは、1台の特別なPC(デバイスの準備)用の非常に特別なアプリケーションであるため、技術者以外のユーザーが構成ファイルを簡単に見つけて変更できる必要がありました。ここでドメインに切り替えました。さまざまな人(さまざまなアカウントを持つ)がソフトウェアを使用する必要があるため、すべてのユーザーが見ることができる共通の場所にある必要があります。だから、なぜそれがデスクトップにあるのか尋ねないでください;)

以前は、を使用していEnvironment.GetFolderPath(Environment.SpecialFolder.Desktop)ました。列挙にはいくつかの共通フォルダーがありますSpecialFolderが、共通デスクトップはそこにないようです。私は何かが足りないのですか、それともp / invokeSHGetSpecialFolderPathする必要がありCSIDL_COMMON_DESKTOPDIRECTORYますか?