問題タブ [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.
visual-studio-2010 - LNK2019ShellExecuteEx未解決の外部シンボルQtCreator
私はWindows7x64でc++言語で作業しています。
ShellExecuteEx関数を使用して、Webカメラにマーカーを表示したときにFirefoxブラウザーを開くプロジェクトを作成しました。私のプロジェクトは、VisualStudio2010でうまく機能します。
しかし、Qt Creatorを使用してプロジェクトを実行しようとすると、次のエラーが発生します。
コードは次のとおりです。
問題はshell32.libだと思います。もしそうなら、私は私のPCにこのライブラリを持っていません。どうすれば修正できますか?
手伝って頂けますか?
前もって感謝します!
windows - OS リリース間で GetDetailsOf 列番号が変更されるため、Windows でファイルの詳細を取得する正しい方法はありますか?
Shell32 Folder.GetDetailsOf(folderItem, column) を使用して、さまざまなファイルのファイル詳細と拡張ファイル詳細を取得しています。残念ながら、このコード例 (私たちのプロジェクトとは関係ありません)からわかるように、列番号が変更されるため、これは OS バージョン間で中断されます。
これを簡単に壊さない拡張ファイルの詳細を取得する正しい方法を見つけることができないようです.また、正しい列番号を(ハックではなく)見つける方法もありません. 質問ですが、これはどのように正しい方法で行われますか?
(編集:より具体的には、私たちが読み取る情報は、サイズ、fps、ビットレートなどのオーディオ、ビデオ、および画像情報です。)
vb.net - ToggleDesktop()(shell32.dll)が呼び出されても、フォームを最上位に維持します
デスクトップ表示イベントがトリガーされたときにキャプチャしてキャンセルするか、me.activateを実行して、フォームを表示する方法はありますか?
注:show desktopイベントは、一部のユーザーPCにインストールされている別のアプリによってトリガーされます。私は自分のフォームを常に他の開いているウィンドウの上に作成しようとはしていません。
前もって感謝します。
c# - .NET Windows サービスから Shell32.dll を呼び出す
Shell32 と Folder.GetDetailsOf() を使用して WTV ファイルからメタデータを取得する .NET 4.0 ライブラリがあります。コンソール アプリと Windows フォーム アプリで問題なく使用できました。しかし、何らかの理由で、.NET 4.0 Windows サービスからコンポーネントを呼び出すと、Shell クラスを開始するための呼び出しで COM エラーが発生します。
ライブラリ内で失敗するコード:
Shell32.Shell shell = new Shell();
エラー:
タイプ 'System.__ComObject' の COM オブジェクトをインターフェイス タイプ 'Shell32.Shell' にキャストできません。IID '{286E6F1B-7113-4355-9562-96B7E9D64C54}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーのために失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .
Apartment Threading、COM Interops、Dynamic、PIAなどを読みました:)しかし、私が見つけた解決策の組み合わせは問題を解決していません。Interop を認識できない別のスレッドからの呼び出しである必要があります。助けてください :)
vb.net - VB.net クラスが登録されていませんエラー
VB アプリケーションを作成中ですが、アプリケーションを実行するたびに、以下のエラーが表示されます。
「フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラーは次のとおりです: CLSID {11219420-1768-11D1-95BE-00609797EA4F} のコンポーネントの COM クラス ファクトリの取得に失敗しました: 次のエラーが原因でした: 80040154 クラスが登録されていません(HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))」。
shell32.dll ファイルの登録を試みました。レジストリでエントリ {11219420-1768-11D1-95BE-00609797EA4F} を調べましたが、存在しませんでした。このアプリケーションを x86 用にコンパイルしようとしました。
その他の情報: Windows 7 64 ビット マシンを使用しています。私は .Net 4.0 以前のバージョンを使用しており、Visual Studio 2012 で作業しています。また、プロジェクトに参照として shell32.dll を追加しています。この問題を解決するための助けをいただければ幸いです。
ありがとう。
c# - CLSID を使用して C# で COM オブジェクトをインスタンス化するにはどうすればよいですか?
これは私にとってやや未知の領域であるため、私の用語がオフになっている場合はご容赦ください。
を作成する必要があるプログラムがありますFolderShortcut
。Microsoft にはC++ での作成方法に関するドキュメントがあり、その指示を C# に翻訳しようとしています。説明には、CoCreateInstance
関数をパラメーターとして呼び出す必要があると記載さCLSID_FolderShortcut
れていますが、これは、COM オブジェクトをインスタンス化していることを意味していると推測されます。このオブジェクトの CLSID は です{0AFACED1-E828-11D1-9187-B532F1E9575D}
。
COM タブからShell32.dll への参照を追加しようとしましたが、FolderShortcut
オブジェクトが Intellisense に表示されません (タイプライブラリにないのでしょうか?)。も考えましたDLLImport
が、もちろん、それはオブジェクトではなく関数へのアクセスのみを許可します。
.Net でこのオブジェクトにアクセスするにはどうすればよいですか?
c# - C# - Shell.Namespace(pathFolder) は null を返します。存在する
次のコードを使用して、「スタートメニュー」フォルダーを介して再帰ループを実行しようとしています:
問題は、Shell.Namespace がすべてではなく一部のフォルダーで正常に機能することです。これらの機能していないフォルダーの場合、Shell.Namespace は、これらのフォルダーが存在する場合でも null を返します。
コードの何が問題になっていますか?
c# - スケジュールされたタスクのユーザーがログインしていない、ユーザーがログインした後にインタラクティブ モードに変更する方法
アプリを実行するスケジュールされたタスクがあります。notepad.exeとしましょう。タスクが「ユーザーがログインしている場合にのみ実行される」場合はメモ帳が表示されますが、タスクが「ユーザーがログインしているかどうかに関係なく実行される」場合、メモ帳は対話モードで実行されません。また、ログインしてこのモードでタスクを実行しても、タスク マネージャーで [すべて表示] を選択するまで、メモ帳ウィンドウまたはプロセスが表示されません。問題は、メモ帳にエラーがある場合です。ログイン時にそのエラーが表示されないため、エラーが何であるか、またはエラーが発生したときにメモ帳が何をしていたかを知る方法がありません。開始時にログインしているユーザーがいないため、タスクをインタラクティブ モードで実行できないようです。だから私の質問は: ユーザーがログインしたら、メモ帳をインタラクティブモードに変更する方法はありますか?
プログラムによる解決策を見ると、実行時に shell32 または user32 を使用してアプリケーションをインタラクティブ モードに変更する方法はありますか?
また、私の問題は明らかにメモ帳ではありません...単なる概念実証です。