問題タブ [shell32]

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 投票する
2 に答える
212 参照

c++ - C++を使用して他のアプリケーションからデバイスの起動時に生成されたエラー メッセージ ボックスを閉じる方法は?

test.exeモバイルデバイスを起動するたびにアプリケーションが起動するように設定しています。

また、dummy.logファイルをMyDevice\Windows\startup\フォルダに保存したので、デバイスを再起動すると、ファイルのエラー メッセージ ボックスが表示されdummy.logます。

shell32上記の構成でデバイスを起動するたびにサイズが増加することをタスクマネージャーで確認しました。

test.exeまた、デバイスの起動後にエラー メッセージ ボックスが表示されるたびに、shell32 のサイズが増加することにも注意してください。

エラー メッセージ ボックスを閉じると、shell32サイズが小さくなりtest.exe、問題は発生しません。

上記の状況ではサイズのみShell32が増加しますが、それ以外の場合は問題なく動作します。

error message boxがアプリケーションにどのようにリンクされているかわかりませんtest.exe

私はデバッグしてチェックしましたが、私の頭に浮かんだ唯一のオプションは、アプリケーションからエラーメッセージボックスを閉じることですi.e. test.exe

編集されたセクション:-

アプリケーション、つまり「test.exe」からエラーメッセージボックスを確認して閉じる方法を誰か教えてもらえますか?

2回目の編集:-

また、エラー メッセージ ボックスを私のアプリケーション、つまり "test.exe" にリンクする方法を教えてください。タイマーと関係ありますか?アプリケーションの外側のウィンドウに対して何もしていません

返信よろしくお願いします。

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

c# - P/Invoke with Shell32、Interop.Shell32.dll 生成をバイパス

したがって、次のコードを使用して、すべての拡張ファイル属性をデバッグコンソールにダンプしています...

Shell32 は管理されていないライブラリであるため、プログラムに DLL リソースを直接埋め込むことはできず、相互運用ヘルパー DLL を生成する必要があります。

相互運用 DLL の全世代を回避するために、Shell32 のこれらの関数の DLLImport コマンド ラインを知っている人はいますか? pinvoke.net を確認しましたが、Shell32 エントリの下に、探しているものが含まれていないか、期待どおりの名前が付けられていません。

これを達成するために DLLImport を使用することができない場合、マネージ DLL を使用してファイルに関するすべての拡張属性を取得する方法、または少なくとも生成する必要がない場所でそれを行う方法を知っている人はいますか?ヘルパー DLL を作成し、開発中のアプリケーションにインストーラーが必要ですか?

本当にありがとう!

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

c# - Shell32 メソッド呼び出しを最適化するにはどうすればよいですか?

私はメディア プレーヤーを設計しており、Movie クラスを設計しました。Movie クラスには、MediaInfo を継承する MovieInfo メンバーがあります。MediaInfo には、ファイル長、ファイル サイズ、ファイル パスなど、ムービー ファイルのメタデータを表すプロパティがいくつかあります。この情報を抽出するために、Shell32 を使用します。

問題は、Shell32 で提供されるメソッドが非常に遅いことです。データベースにムービーが 1 つある場合は問題ありませんが、ムービーが 10 個あると顕著になり始め、ムービーが 100 個あると、プログラムのロードに約 5 分かかります。実行時にムービーが表示され、プログラムの流れが再び停止します。

MediaInfo コンストラクターは Initialize メソッドを呼び出します。

Shell32Processing.GetShellFolder メソッドは次のとおりです。

そして、Shell32Processing.GetShellFolderItem メソッド:

GetDetailsOf (Shell32 で提供されるコード) への各呼び出しの処理には、信じられないほどの時間がかかります。最初は、プログラムの速度を大幅に低下させている原因を特定できなかったため、ANTS プロファイラーを使用してこれを見つけました。

問題は、Shell32 メソッドを最適化するにはどうすればよいか、できない場合は別の方法があるかということです。

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

visual-studio-2010 - .Net4.0プロジェクトでShell32.dllを使用できません

Shell32.dllを使用するC#VS2010プロジェクトがあります。Shell32.dllはzipファイルの作成に使用されます。マシンはWin764ビットです。.netターゲットバージョンが2.0または3.5の場合、プロジェクトはコンパイルされ、正常に実行されます。ただし、4.0に変更すると、コンパイルが失敗します。Shell32.dllへの参照を削除して再度追加し、ターゲットプラットフォームをX86に変更してみました。しかし、それでもコンパイルに失敗しました。理由と解決策を探しています。

更新:新しいプロジェクトを作成して、Shell32.dllへの参照を追加してみました。今回は、C:\ Windows \ System32ではなくC:\ Windows\SysWOW64からdllを参照しました。今回は問題なくコンパイルされました。しかし、このプロジェクトが32ビットウィンドウとXPおよびその他のバージョンで実行されるかどうかはわかりません。

0 投票する
0 に答える
870 参照

c# - Internet Explorer がキオスク モードのときに PDF を前面に表示する

Internet Explorer のキオスク モード ウィンドウに Flash プロジェクトを表示する必要があるプロジェクトに取り組んでいます。さらに、Flash はソケットを使用して、Flash 自体では実行できないさまざまなタスクについて C# アプリケーションと通信します。これらのタスクの 1 つは、PDF を開いて前面に表示することです。フラッシュのセキュリティにより、ネットワーク モードまたはローカル モードの選択が強制されるため、フラッシュは PDF を直接開くことができず、このプロジェクトではネットワークが唯一の選択肢です。

私が抱えている問題は、IE 8 を使用する Windows XP です。キオスク モードは、Internet Explorer を最小化したり、PDF を前面に表示したりするための Shell32 コマンドと競合しているようです。これを Windows 7 で動作させることができました (Vista をテストできません) が、Windows XP では一貫して動作するようには見えません。

次のように C# プロセスを使用してウィンドウを起動します。

エクスプローラーが開き、キオスク モードになります。次にPDFを開きます。

最後に、Shell32.dll コマンドの ShowWindow を使用して、PDF の最大化を呼び出し、ユーザーにその PDF への注意を促します。

Windows 7 では、PDF が最大化され、キオスク モードの Internet Explorer ウィンドウが PDF の背後にあります。このようにして、PDF を閉じると、ユーザーはキオスク モードのウィンドウに戻ります。Windows XP では、PDF はバックグラウンドで開かれ、ShowWindow 呼び出しの量が Explorer インスタンスより前に表示されるようには見えません。Explorer インスタンスを最小化しようとしましたが、IE や PDF で表示/非表示/復元などの他の Windows イベントを実行して、XP を必要なものに誘導しようとしましたが、成功しませんでした。これが本当に XP のせいなのか、XP で IE9 と IE8 を使用している Windows 7 (私にとって) のせいなのかはわかりません。

他の誰かがこれに遭遇したか、XP をだまして PDF を前面に出すための回避策を知っていますか?

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

c# - IShellView2インターフェースへのポインターを取得する方法

アプリケーションでエクスプローラーのようなブラウザーウィンドウをホストする必要があります。Windows XPとの互換性を維持する必要があるため、新しいIExplorerBrowserを使用できません。

主な問題は、デフォルトで「大きなアイコン」モードでアイテムを表示する必要があることです。残念ながら、FOLDERSETTINGS.viewMode = 0x1 / * LargeIcon * /を指定してIShellVIew.CreateViewWindow()を呼び出しても、表示モードは目的のモードに変更されません。ただし、ウィンドウのコンテキストメニューを使用して手動でこれを行うことができます。

そのため、「大きなアイコン」の表示モードを設定する必要があります。ビュー自体のコンテキストメニューをプログラムで取得する方法が見つかりませんでした。

次に、IShellView2に進む方法が必要であることがわかりました。IShellView2.CreateViewWindow2()は、事前定義されたconstではなくGUIDとしてビューモードを受け取ります。しかし、インターフェースにアクセスできません!

IShellFolder.CreateViewObject(hwndOwner、typeof(IShellView).GUID)は、正しいインスタンスを返します。しかし、IShellFolder.CreateViewObject(hwndOwner、typeof(IShellView2).GUID)を試してみると、「指定されたキャストが無効です」という例外が発生します。

IShellView2インターフェイスのオブジェクトを取得するにはどうすればよいですか?

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

c# - Folder.GetDetailsOfが間違ったアイテムタイプを返します

Shell32ライブラリを使用して.mp4ファイルからデータを取得する作業をしています。

私が持っているコードはローカルホストで動作しますが、IISサーバーで使用すると、ファイルが「MP4ビデオ」ではなく「MP4ファイル」として返され、ビデオデータ(幅、高さ、フレームレートなど)が返されません。 ) 取り戻します。

GetDetailsExを使用して正しいデータを取得できることを読みましたが、このメソッドはFolderクラスに存在しないようです。

Web.configなどに設定を変更して機能させる必要がありますか?

編集:私は反対票を投じられたようですが、それを行った人々はその理由を説明できますか?私の問題について詳しく説明したい

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

c# - ファイルがごみ箱に送られた日付を取得する

ファイルがごみ箱に送られた日付を取得する呼び出しはありますか。

のItems オブジェクトShell32lastmodified日付を示しますが、いつごみ箱に送られるかは示しません。

特定の日付に削除されたファイルを復元できるようにしたい。

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

c++ - マウスを右クリックしたときにショートカットの表示名を取得するにはどうすればよいですか (c++/c#)

filecontextmenu に関する dll を構築しています。マウスの右クリック時に実行パスとショートカット displaynem を取得する必要があります。これでパスを取得できますが、表示名を取得する方法がわかりません。例: デスクトップの IE ショートカット。「iexplore.exe」ではなく、ユーザーが編集できる「IE」という名前が必要です。

ここに非常によく似たリファレンスがありますが、デスクトップのショートカットが

私が非常に感謝する提案があれば、ここに私のコードと感謝があります。

0 投票する
0 に答える
97 参照

explorer - NSE: ファイル更新通知

質問があります。名前空間拡張 (NSE) を設計しました。私の NSE は、ファイルに PIDL を提供します。PIDL にさまざまな情報を格納します。なんらかの事情でファイルの PIDL が変更されたのですが、名前が古いままです。古い PIDL は無効で、新しい PIDL は有効です。これらの変更についてエクスプローラーに通知するにはどうすればよいですか? 関数 SHChangeNotify() は、そのようなことをエクスプローラーに通知します。SHChangeNotify() 呼び出しで古い PIDL と新しい PIDL を許可するのは SHCNE_RENAMEITEM フラグのみのようです。しかし、ファイルの名前は変更されません!