問題タブ [restartmanager]
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.
vbscript - Windows再起動マネージャー用のVBScript?
こんにちは、
Microsoft Word を閉じて再度開くための再起動マネージャー(こちらのリンクを参照)コード用の VBScript コードはありますか?
例として Microsoft Word を使用しました。特定のアプリケーションを閉じるためにメッセージをRestartManagerに送信したかっただけです。
msdn - Windows 再起動マネージャーの RmGetList が ERROR_ACCESS_DENIED を返すのはなぜですか?
Restart Managerセッションを開始し、いくつかのファイルでRmRegisterResourcesを呼び出すコードがあり、 RmGetListを呼び出すと、 ERROR_ACCESS_DENIED (5) が返されます...しかし、50ms のスリープを追加してから再試行すると...動作します... どうして?何か案が?RmGetList を正常に呼び出すためにスリープ以外にできることはありますか。
windows - Windows再起動マネージャーは、コマンドプロンプトによって開かれたフォルダーを使用中として認識しません
Restart Managerを使用しているときに、コマンド プロンプト ウィンドウで現在の作業ディレクトリとして現在開いているRmRegisterResourcesへのパスを追加すると、 RmGetListはそれを返さず、代わりに他のロックされたファイルに関する情報を返します (たとえば、 WinDBG)。
どうしてこんなことに?
このフォルダーを削除しようとするとerror 32: ERROR_SHARING_VIOLATION
、.
c++ - Windows 再起動マネージャーのコールバック API にバグがあるのでしょうか?
Windows 8 でしか再現できない奇妙なクラッシュを調査していたところ、またはEBX
の呼び出しからレジスタが復元されていないことがわかりました。Windows 8 での実行で最初に見つけた違いは、これらの関数の win7 バージョンが使用 (したがって復元) している間に使用していることです。(私は他の Windows バージョンを詳細に調査していませんが、Vista ではバグが再現されないことに気付きました。)RmShutdown
RmRestart
ECX
EBX
RM_WRITE_STATUS_CALLBACK
さらに掘り下げてみると、 への呼び出しはスタックから引数をポップすることによってスタックを復元しないことに気付きました。RstrtMgr!CRestartManager::ShutdownApplications
そのため、呼び出し時RstrtMgr!_EH_epilog3
に間違ったレジスタ値がスタックからポップされます。しかし、少なくともESP
は適切に復元され、最後には、呼び出しと終了の間で使用されないRmShutdown
を含む、使用したレジスタが適切にリセットされます...EBP
CRestartManager::ShutdownApplications
したがって、Windows 7では、すべて問題ありませんでした...しかし、Windows 8バージョンは、のECX
代わりに使用されているため、復元されず、呼び出しコードがそれに依存している場合... BOOM !!!EBX
EBX
これを修正するために、使用するコールバック関数を単純に変更しました__stdcall
(これは、実際のRM_WRITE_STATUS_CALLBACK
型を使用できず、API が期待するものに型キャストするか、GetProcAddress
XP で同じコードを実行するために必要な手法を使用する必要があることを意味します)。とりあえず)。
何か足りないのでしょうか、それとも本当に API の問題なのでしょうか? EDI
とはどうESI
ですか?Windows 7 でも適切に復元されません。
これについてマイクロソフトにバグを報告すると思います...誰かがより良い説明を思いつかない限り...
wix - アンインストール/アップグレード時に Wix サービスを停止: 「再起動ポップアップ」を防止 (ファイル使用中の状況)
アンインストール(またはアップグレード)するときに、再起動マネージャーが使用中のファイルについて不平を言っているため、再起動を強制しているという問題があります。
RESTART MANAGER が訴えているサービスは、Java ベースのサービスです。サービス (ここでは myservice.exe と呼ばれます) は、Java 子プロセスを再帰的に開始しています。
myservice.exe --run
↳ javaw.exe --someArguments
↳ someother.exe --someArguments
↳ javaw.exe --someMoreArguments
サービス定義の Wix スニペット:
さて、興味深い部分:
- インストール時にサービスを開始できました
アンインストール時:
- 実行されていない場合は削除されます
- 実行中の場合、再起動に同意するだけ
- 実際、約2〜3秒以内に停止します(StopServicesアクションによると思います)
- 正常に削除されました (RemoveServices アクションによって)
Service* Tables のエントリは、これまでのところ良いようです。
したがって、すべてを
分析すると、Restart Manager は Java プロセスが子プロセスであり、StopServices アクションによって停止されることを認識していないようです。
ここで同様の問題をいくつか見つけました:
https
://www.mail-archive.com/wix-users@lists.sourceforge.net/msg57924.html
この問題を解決するための助けを事前にありがとう!
wix - Windows インストーラーでの再起動マネージャーの動作
Windows インストーラー 4.0 と再起動マネージャーを使用すると、「再起動マネージャー」がアプリケーションのシャットダウンを処理するため、ファイルを保持しているプロセスのシャットダウンを処理するためのカスタム アクションの必要はないと想定しても安全でしょうか。 ?
「Restart Manager」がアプリケーションをシャットダウンしない例外はありますか? もちろん、DisableAutomaticApplicationShutdown などのポリシーが適用されると、Restart Manager が無効になることは理解しています。
シャットダウンするプロセスは、Restart Manager によってシャットダウンできるようにするために、いくつかの基準を満たす必要がありますか? msi パッケージをサイレント モードで実行しています。
「Restart Manager」が有効になっている場合でも、msi パッケージが再起動を要求する場合、どう推測しますか?
winapi - RmGetList() API は、ファイルが Ez ファイル ロッカーを使用してロックされている場合に失敗しますが、別のファイル ロック ユーティリティでは機能します
Restart Manager API で奇妙な問題が発生しています: RmGetlist()。ファイル ロックのシナリオをシミュレートするために、次のサード パーティのファイル ロック ユーティリティを使用しています。
Ez ファイル ロッカー - http://www.xoslab.com/efl.html -
ファイルロッカー http://www.jensscheffler.de/filelocker
ここでの奇妙な問題は、これらのユーティリティは両方とも特定のファイルをロックしますが、最初のファイル ロック ユーティリティ (Ez ファイル ロック) では RMGetList() がアクセス拒否エラー (5) で失敗し、2 番目のファイル ロック ユーティリティでは機能することです。
ここで何が間違っている可能性がありますか?あるファイル ロック ユーティリティでは RmGetList() が失敗するのに、別のユーティリティでは機能するのはなぜですか?
以下は、使用されているコードです。