問題タブ [windows-api-code-pack]
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.
c# - C# WindowsApiCodepack PropertySystem AccessViolationException
WindowsAPICodePack を使用して、Win8/64bit でエクスプローラー/シェル処理を行っています。x64 プラットフォーム ターゲットでファイル プロパティを反復処理するときに、プロパティ システムに問題があり、AccessViolationException が発生します。PropVariant.cs に問題があるようです。x86 に切り替えると問題は解決しますが、ディレクトリ リストが不完全になります (system32/drivers に「etc」がありません)。何か案は?
c# - Windows XP マシンの Windows API Code Pack 機能
Windows のすべてのプラットフォームで動作する必要がある Windows アプリがあります。最近、Windows API Code Pack をインストールし、フォルダー ブラウザーを "CommonOpenFileBrowser" に置き換えました。これは、例外が発生した Windows XP マシンでプログラムを実行しようとするまでは素晴らしかったです。
PlatformNotSupportedException、CommonOpenFileDialog には Vista 以降が必要です。
Vista 以降で CommonOpenFileDialog を使い続けたいのですが、実行時に Windows XP オペレーティング システムが検出された場合、古いフォルダー ブラウザーに戻すことはできますか?
その他の考え:
以下を使用してオペレーティング システムを検出できます。
// Windows Vista 以降の
場合 if (Environment.OSVersion.Version.Major >= 6)
ただし、CommonOpenFileDialog が表示される前であっても、起動時に例外が発生します。コードを動的にロードすることについて聞いたことがありますが、これについてはほとんど経験がありません。
c# - MSI が変更されているかどうかを確認する最善の方法は何ですか?
私たちの組織では、ビルドが成功するたびに、自動化されたスクリプトがすべての MSI をビルドの場所から共有フォルダー内の新しいフォルダーにコピーします。150以上のプロジェクトがあります。私が直面している問題は、20 個のプロジェクトしか変更されていないにもかかわらず、自動化されたスクリプトが 150 個の MSI をすべて新しいフォルダーにコピーして貼り付けることです。したがって、最近のビルドでどのプロジェクトの MSI が変更されたかを特定できません。タイムスタンプが表示される場合、新しいフォルダー内のすべての MSI で同じです。
プログラムまたはツールを使用して手動で、変更された MSI のリストを特定する方法を誰かが提案できますか? 手動の場合、ファイルを 1 つずつ比較するべきではありません。
基本的に、2 つの共有フォルダーを比較して、変更された MSI のリストを生成したいと考えています。
注意 : ビルドの場所にアクセスすることはできません。また、既存の自動化されたスクリプトを変更する範囲もありません。しかし、私は新しいものを書くことができます。
java - kernal32 VirtualQueryEx を使用する Java JNA がゼロを返す (成功エラー コードなし)
kernal32.dll Windows API 関数から VirtualQueryEx を使用しようとしています。
この関数を呼び出す前に取得したすべてのポインター/アドレスは正しいです。
VirtualQueryEx の呼び出しは 0 を返します。これは、成功しなかったことを意味します。
また、GetLastError() は、アクセスが拒否されたことを意味するエラー コード 5 を返します):
私は何を間違っていますか?
- Windows 8、管理者権限。
JNA マッピング:
kernal32の内部
memory_basic 構造体:
ありがとう !
vba - ReadProcessMemory 関数の ByRef と ByVal
VBA/VB6 でWindows 関数ReadProcessMemorylpBuffer
を使用していますが、渡すメカニズムをByValに変更しても、関数がこの引数を介して渡された元のオブジェクトの値を変更する理由がわかりません。ドキュメントでは、この引数は参照によって渡される出力として指定されています。引き渡しメカニズムを値渡しに変更することで、元のインスタンスが変更されないようにするべきではありませんか? なぜそうしないのですか?