問題タブ [advapi32]

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 に答える
3999 参照

c# - アプリケーションの起動中に advapi32.dll で EntryPointNotFoundException が発生する

Windows 7 x64 SP1 の Visual Studio 2013 Update 5 で WPF アプリケーションを開発しています。プログラムを開始したら、http 経由で xml ファイルをダウンロードして解析します。今日まですべて正常に機能していましたが、問題は突然例外が発生し始め、プロジェクトに大きな変更が加えられず、新しい参照が追加されなかったことです。

プログラムを開始すると、 「メソッドまたは操作が実装されていません」というSystem.Windows.Markup.XamlParseExceptionメッセージがスローされ、以前にも発生したためコードの1行も実行されませんでした。次に、Visual Studio のIntelliTraceウィンドウを調べたところ、一連の例外が見つかりました。その先頭には、 「DLL 'advapi32.dll' で 'EventSetInformation' という名前のエントリ ポイントが見つかりません」というメッセージが表示されています。 InitializeComponent()System.EntryPointNotFoundException

検索すると、 Windows 8以降のみのこれこの話が得られます。したがって、Windows 7にはこのメソッドがありませんが、ここでは例外ですが、(プログラム)がWindows 8とは少しEventSetInformationも関係がないのに、どのように私のプログラムがこのメソッドを参照できますか? Visual Studio 内に、この advapi32 メソッドをトリガーできる Update-5 関連のコンポーネントがいくつかあると仮定することもできますが、もしそうなら、どうすればこの機能を無効にできますか?


.NET 4.5 を使用してプログラムを編集する

例外情報:

Edit2
スティーブとハンスがコメントで気付いたように、実際の問題は最終的にadvapi32ライブラリに関連していませんでした。私はいくつかのカスタムのものWindowExから派生したクラスを持っていましたWindow、そして私のビジュアルウィンドウは this から派生しましたWindowEx。たぶん、私のカスタムクラスはいくつかのメソッドを見逃していましたが(例外メッセージを信じるなら)、基本クラスを元に戻し、WindowカスタムロジックWindowExをビジュアルウィンドウに直接配置した後、エラーはなくなりました.

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

windows - Go で記述された Windows サービスの失敗アクションを構成するにはどうすればよいですか?

golang.org/x/sys/windows/svcパッケージを使用して Go で Windows サービスを作成しています。

これまでのところ、すべてうまく機能しており、とても簡単に使い始めることができます。気に入っています。

自動更新機能をいくつか書きましたが、更新が完了したときにサービスを再起動したいと考えています。

を使用してサービスを再起動するプロセスを生成しようとしましたSCMが、ローカル システムとして実行中にサービスを制御しようとしたことに関係していると思われるエラー メッセージがログに記録されます。

より良い/より簡単な方法os.Exit(1)は、サービスをFailure Actionsに設定することRestart on Failureです。これは見事に機能します!

唯一の問題は、Go を使用してプログラムでこれらのオプションを構成する機能がないように見えることです。

私はいくつかの掘り下げを行いましたが、構造体をChangeServiceConfig2in に渡すことによって構成されているようですadvapi32.dll-クラッシュ時に再起動するサービスを作成する方法

golang /sys/blob/master/windows/svc/mgr/config.go で-func updateDescription(handle windows.Handle, desc string) error

コードwindows.ChangeServiceConfig2は、DLL 呼び出しへのリンクであるを既に呼び出しています。

SERVICE_FAILURE_ACTIONS構造体の Microsoft ドキュメントはこちらです。

Goを使用してその構造体を構築して渡す方法を理解するのに苦労しています - 誰か洞察を持っていますか?

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

c# - ユーザーがサービスを開始できるかどうかを確認する

私はウェブでたくさん検索しましたが、助けが見つかりませんでした。私は独自の Windows サービスを持っていますが、メインのソフトウェアから構成できるはずです。

インストール、開始、停止、変更、アンインストールに問題はありません。他のユーザー資格情報を使用してサービスをインストールすることもできます。

しかし、問題があります。サービスをインストールする前に ("cmd" call sc create SERVICENAME [...] ) 入力した資格情報を持つユーザーがサービスを開始できるかどうかを確認したい。そのため、彼がローカルの「サービスとしてログオン」セキュリティ ポリシーに登録されているかどうかを確認する必要があります。ポリシーを変更したくありませ。彼がこれを行うことが許可されているかどうかを確認したいだけです。

このチェックをC#で簡単に行うことはできますか?

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

c# - advapi32.dll を使用した 64 ビット システムへの Windows サービスのインストール

Service Manager にサービスをインストールして実行したいと考えています。私のコードは次のとおりです。

このコードは、私の 32 ビット コンピューターでは完全に機能しますが、64 ビット コンピューターでは機能しません。64ビットで同じ作業を行うにはどうすればよいですか?

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

windows - GoでEnumServicesStatusExを呼び出す、メモリ割り当て?

Windows サービスから Windows API と対話するアプリを作成しています。

@chowey hereからの多くの支援の後、私はちょっとコツをつかみ、GitHub hereに置いた基本的なライブラリを開始しました。

「サービス」に移りました。マシン上のすべての Windows サービスを一覧表示し、開始、停止、再起動する必要があります。操作するサービス ハンドルを取得すると、開始/停止/再起動は非常に簡単に見えますが、インストールされているサービスのリストを取得するのに苦労しています。

Advapi32.dllの EnumServicesStatusEx は、呼び出す必要がある関数ですが、ENUM_SERVICE_STATUS_PROCESS構造体の配列用に事前に割り当てられたメモリへのポインターが必要です。

null ポインターを使用して関数を呼び出すと、必要なメモリ割り当てサイズが返されますが、Go でメモリを直接割り当てる方法はないと思います。

最初は、メモリ割り当て要件を取得し、 unsafe パッケージを使用して構造体の SizeOf で割り、その要素数を含むスライスを作成し、最初の要素へのポインタを関数に渡すことができると思っていましたが、メモリは文字列データ用のスペースを含める必要がありますが、これはそうではありません。

これをどのように達成できるか知っている人はいますか?:)。