私たちはIE9とJava 1.7 Update 51(WIN7)を環境で実行しており、次のポップアップを取り除くのにかなりの時間がかかっています。
アップデート55がリリースされて以来、ユーザーはJavaページに移動すると、次のプロンプトが表示されます。もちろん、後でヒットすると、Javaアプリが実行され、世界は安全ですが、人々はさまざまなことにぶつかり、正しい方向に牛を群れにするのが私の仕事です。
私が見つけたのは、HKCUに次のRegKeyを追加することです
HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentProperties /vdeployment.expiration.check.enabled/t REG_SZ/d false/f
プロンプトを抑制します。そのため、すべてのユーザープロファイルを繰り返し処理し、キーを追加することを計画していました。しかし、再起動後、私のキーは削除され、Javaアプリの次回の起動時に、プロンプトが表示されます。
私は自分の環境用にUpdate55を準備しており、Javaの将来のリリースのためにこのプロンプトを削除したいと思います。
また、次のデータを含むdeployment.properties
ファイルを使用しようとしました。
deployment.expiration.check.enabled = falsedeployment.expiration.decision.suppression.10.51.2 =真のdeployment.expiration.decision.10.51.2 =後で
Javaのインストール後、そのファイルをユーザーディレクトリC:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment
に配置しました。
それもうまくいきませんでした。
私もその煩わしさに取り組んできましたが、HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentProperties
レジストリキーは、ユーザーのdeployment.propertiesファイルから値を取得します。ファイルを削除して再作成し、必要なプロパティ/値を書き込んでからJavaロードします。すべてのユーザーから実行しています。Windows732ビットで正常に起動します。過去2日間の64ビットテストコンピューター。
これが私のために働いたPowerShell関数です:
Function JavaProperties
{
$userProfile = $Env:USERPROFILE
Remove-Item -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" -Force
New-Item -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment" -ItemType File -Name "deployment.properties"
$deployFroperties = Get-ChildItem -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment" -Force -ErrorAction SilentlyContinue | Where{$_.Name -eq "deployment.properties"} | Select -ExpandProperty FullName
$expDecision = New-TimeSpan -Start $($(Get-Date).ToString()) -End "January 1, 2020 11:59:00 PM" | Select -ExpandProperty TotalMilliseconds
$expDecision
Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.suppression.10.51.2=true" -Force
Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.10.51.2=later" -Force
Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.timestamp.10.51.2=$expDecision" -Force
Add-Content -Path $deployFroperties -Force -Value "deployment.system.tray.icon=true"
}#End Function JavaProperties
さらに、私が発見したいくつかのものJava web start c:\ Program Files(x86)\ Java\jdk1.8.0_66 ** jre\bin\plugin2\npjp2.dll ** IDA6Hexraysで
これらの設定が含まれます:
HKEY_CURRENT_USER, SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties\pending
deployment.expiration.decision.11.66.2 = update|block|later
deployment.expiration.decision.suppression.11.66.2 true
deployment.expiration.decision.timestamp.11.66.2 86401..18446744073709551616 (<- 0xFFFFFF FFFFFF)
HKEY_CURRENT_USER, SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties
deployment.expiration.decision.11.66.2
deployment.expiration.decision.suppression.11.66.2
deployment.expiration.decision.timestamp.11.66.2
deployment.webjava.enabled false
deployment.expiration.decision.ttl.11.66.2 86401..18446744073709551616 (<- 0xFFFFFF FFFFFF)
Windows Vistaの下では、「SOFTWARE\AppDataLow \」の部分を省略します
ですから、これを自由に試してみてください。これらの値を次のように試すこともできます環境設定このように
Startbrowser.cmd
set deployment.expiration.decision.11.66.2=later
set deployment.expiration.decision.suppression.11.66.2=true
Firefox.exe %*
わかりました。
最後にいくつかの擬似コード。ヒントとしてそれを取りなさい。そして、真剣にしないでください-混乱する場合は、無視してください。
BOOL __stdcall DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
StringCompare
~otherStrings~ VIA mbscmp
~timestamp~ VIA sscanf "%llu" (<-unsigned long long int)
GetFromEnvOrReg_Depl_pending FORALL
deployment.expiration.decision.11.66.2
deployment.expiration.decision.suppression.11.66.2
deployment.expiration.decision.timestamp.11.66.2
deployment.expiration.decision.11.66.2 ==
update 1
block 2
later 3
if NoValidValue
GetFromEnvOrReg_Depl FORALL
deployment.expiration.decision.11.66.2
deployment.expiration.decision.suppression.11.66.2
deployment.expiration.decision.timestamp.11.66.2
deployment.expiration.decision.suppression.11.66.2
true
deployment.expiration.decision.timestamp.11.66.2
GetFromEnvOrReg_Depl
deployment.webjava.enabled
false
if success return false
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unfinished
deployment.expiration.decision.ttl.11.66.2
ttl+604800 (or +10 if decision is 'later' )
compare is bigger as timestamp
if ... decision is not 'block' return false
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FUNC GetFromEnvOrReg_Depl_pending ( $Value )
MSVCR100.getenv
if success return $result
RegOpenKeyExA
HKEY_CURRENT_USER
isVistaOrAbove
SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties\pending
SOFTWARE\JavaSoft\DeploymentProperties\pending
RegQueryValueExA $Value
if success Return $result
FUNC GetFromEnvOrReg_Depl ( $Value )
*same* but with
SOFTWARE\JavaSoft\DeploymentProperties
FUNC isVistaOrAbove
GetVersionExA
VersionInformation.dwPlatformId == VER_PLATFORM_WIN32_NT (2) &&
VersionInformation.dwMajorVersion >= 6