博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法
阅读量:7061 次
发布时间:2019-06-28

本文共 7124 字,大约阅读时间需要 23 分钟。

最近不知道安装了什么插件导致没有chrome浏览器打开时都会提示“请停用以开发者模式运行的扩展程序”的提示,只有每次点击取消之后才能正常使用扩展。如下图所示

请停用开发者模式运行的扩展程序
每次都要去手动把这个关掉,我都快要吐了。。。在http://www.cnplugins.com/tool/stop-developer-mode.html 找到了方法。我用的是第2中方法,留着万一以后还要用呢。

一、通过组策略添加扩展程序白名单的方式屏蔽了这种提示。(注意:此方法仅适用windows系统)

1. 首先下载Chrome组策略管理模板 :下载地址:http://chromecj.com/utilities/2015-04/423/download.html 
2. 开始 -> 运行 -> 输入gpedit.msc -> 回车确定打开计算机本地组策略编辑器(通过Win + R快捷键可以快速打开运行),如图所示:
组策略添加扩展程序白名单
3.然后打开“本地组策略编辑器”,在左侧的树形菜单中,依次展开:计算机配置->管理模版,在“计算机配置”-“管理模板”中右键选择“添加/删除模板”安装刚才的那个chrome.adm文件,安装成功之后就可以在“管理模板”-“经典管理模板(ADM)”-“Google”下面看到“Google Chrome”了。这里需要说明两点,一是这个下面可能会有两个Google Chrome,一个有推荐字样,看看哪个下面有“扩展程序”,通常是不带推荐的那个;另外一点是按照chrome.adm的过程中如果策略编辑器长时间停止响应的话可以强制将其关闭之后在打开就可以了,不影响后面的操作。 
3. 接下来选择“扩展程序”,然后双击右侧的“配置扩展程序安装白名单”,如下图: 
组策略添加扩展程序白名单
4. 打开之后首先选择左边的”已启用“,然后选择下面的 显示 按钮,将安装之后的第三方插件的ID(打开Google Chrome的开发者模式之后会显示)输入到刚才的白名单对话框中确定保存即可。
5.关于chrome插件ID的获取方法,可以在chrome地址栏中输入:chrome://extensions/ 打开扩展程序的管理界面,点击开发者模式,即可看到已经安装的chrome插件的ID。
6.输入完成后点击确定保存,并关闭本地组策略编辑器,并在Chrome扩展管理界面关闭开发者模式,就可以正常地使用Chrome插件,并解决谷歌的停用开发者模式的警告了。
另外需要说明的是,这种情况下需要一直打开”开发者模式“,另外如果直接在开发者模式下通过加载插件开发目录形式加载插件也无效的话可以将其打包之后再安装就可以了,不过打包再安装之后其ID会发生变化。

二、打包导出报警提示的chrome插件重新安装

如果以上的方法还不行的话,那么就尝试找出是哪个插件导致提示“请停用以开发者模式运行的扩展程序”,然后将其打包导出扩展程序,方法参照:“打包扩展程序”这样在相应目录生成了 .crx 文件,然后直接拖到 chrome://extensions/ chrome扩展程序页面进行安装就行!如果不知道怎么安装CRX文件,请参照:

三、高手程序代码实现(说实话小编不懂,但是网友说给力)

复制以下代码并且另存为DevWarningPatch.bat 到任意位置,退出chrome,右键管理员运行即可。

<# :@echo offcopy/b "%~f0" "%temp%\%~n0.ps1" >nulpowershell -Version 2 -ExecutionPolicy bypass -noprofile "%temp%\%~n0.ps1" "%cd% " "%~1"del "%temp%\%~n0.ps1"pauseexit /b#>param([string]$cwd='.', [string]$dll)function main {    "Chrome 'developer mode extensions' warning disabler v1.0.10.20170114`n"    $pathsDone = @{}    if ($dll -and (gi -literal $dll)) {        doPatch "DRAG'n'DROPPED" ((gi -literal $dll).directoryName + '\')        exit    }    doPatch CURRENT ((gi -literal $cwd).fullName + '\')    ('HKLM', 'HKCU') | %{ $hive = $_        ('', '\Wow6432Node') | %{            $key = "${hive}:\SOFTWARE$_\Google\Update\Clients"            gci -ea silentlycontinue $key -r | gp | ?{ $_.CommandLine } | %{                $path = $_.CommandLine -replace '"(.+?\\\d+\.\d+\.\d+\.\d+\\).+', '$1'                doPatch REGISTRY $path            }        }    }}function doPatch([string]$pathLabel, [string]$path) {    if ($pathsDone[$path.toLower()]) { return }    $dll = $path + "chrome.dll"    if (!(test-path -literal $dll)) {        return    }    "======================="    "$pathLabel PATH $((gi -literal $dll).DirectoryName)"    "`tREADING Chrome.dll..."    $bytes = [IO.File]::ReadAllBytes($dll)    # process PE headers    $BC = [BitConverter]    $coff = $BC::ToUInt32($bytes,0x3C) + 4    $is64 = $BC::ToUInt16($bytes,$coff) -eq 0x8664    $opthdr = $coff+20    $codesize = $BC::ToUInt32($bytes,$opthdr+4)    $imagebase32 = $BC::ToUInt32($bytes,$opthdr+28)    # patch the flag in data section    $data = $BC::ToString($bytes,$codesize)    $flag = "ExtensionDeveloperModeWarning"    $stroffs = $data.IndexOf($BC::ToString($flag[1..99]))/3 - 1    if ($stroffs -lt 0) {        write-host -f red "`t$flag not found"        return    }    $stroffs += $codesize    if ($bytes[$stroffs] -eq 0) {        write-host -f darkgreen "`tALREADY PATCHED"        return    }    $exe = join-path (split-path $path) chrome.exe    $EA = $ErrorActionPreference    $ErrorActionPreference = 'silentlyContinue'    while ((get-process chrome -module | ?{ $_.FileName -eq $exe })) {        forEach ($timeout in 15..0) {            write-host -n -b yellow -f black `                "`rChrome is running and will be terminated in $timeout sec. "            write-host -n -b yellow -f darkyellow "Press ENTER to do it now. "            if ([console]::KeyAvailable) {                $key = $Host.UI.RawUI.ReadKey("AllowCtrlC,IncludeKeyDown,NoEcho")                if ($key.virtualKeyCode -eq 13) { break }                if ($key.virtualKeyCode -eq 27) { write-host; exit }            }            sleep 1        }        write-host        get-process chrome | ?{            $_.MainWindowHandle.toInt64() -and ($_ | gps -file).FileName -eq $exe        } | %{            "`tTrying to exit gracefully..."            if ($_.CloseMainWindow()) {                sleep 1            }        }        $killLabelShown = 0        get-process chrome | ?{            ($_ | gps -file | select -expand FileName) -eq $exe        } | %{            if (!$killLabelShown++) {                "`tTerminating background chrome processes..."            }            stop-process $_ -force        }        sleep -milliseconds 200    }    $ErrorActionPreference = $EA    $bytes[$stroffs] = 0    "`tPATCHED $flag flag"    # patch the channel restriction code for stable/beta    $code = $BC::ToString($bytes,0,$codesize)    $rxChannel = '83-F8-(?:03-7D|02-7F)'    # old code: cmp eax,3; jge ...    # new code: cmp eax,2; jg ...    $chanpos = 0    try {        if ($is64) {            $pos = 0            $rx = [regex]"$rxChannel-.{1,100}-48-8D"            do {                $m = $rx.match($code,$pos)                if (!$m.success) { break }                $chanpos = $m.index/3 + 2                $pos = $m.index + $m.length + 1                $offs = $BC::ToUInt32($bytes,$pos/3+1)                $diff = $pos/3+5+$offs - $stroffs            } until ($diff -ge 0 -and $diff -le 4096 -and $diff % 256 -eq 0)            if (!$m.success) {                $rx = [regex]"84-C0.{18,48}($rxChannel)-.{30,60}84-C0"                $m = $rx.matches($code)                if ($m.count -ne 1) { throw }                $chanpos = $m[0].groups[1].index/3 + 2            }        } else {            $flagOffs = [uint32]$stroffs + [uint32]$imagebase32            $flagOffsStr = $BC::ToString($BC::GetBytes($flagOffs))            $variants = "(?
$rxChannel-.{1,100})-68-(?
`$1-.{6}`$2)", "68-(?
`$1-.{6}`$2).{300,500}E8.{12,32}(?
$rxChannel)", "E8.{12,32}(?
$rxChannel).{300,500}68-(?
`$1-.{6}`$2)" forEach ($variant in $variants) { $pattern = $flagOffsStr -replace '^(..)-.{6}(..)', $variant "`tLooking for $($pattern -replace '\?<.+?>', '')..." $minDiff = 65536 foreach ($m in [regex]::matches($code, $pattern)) { $maybeFlagOffs = $BC::toUInt32($bytes, $m.groups['flag'].index/3) $diff = [Math]::abs($maybeFlagOffs - $flagOffs) if ($diff % 256 -eq 0 -and $diff -lt $minDiff) { $minDiff = $diff $chanpos = $m.groups['channel'].index/3 + 2 } } } if (!$chanpos) { throw } } } catch { write-host -f red "`tUnable to find the channel code, try updating me" write-host -f red "`thttp://stackoverflow.com/a/30361260" return } $bytes[$chanpos] = 9 "`tPATCHED Chrome release channel restriction" "`tWriting to a temporary dll..." [IO.File]::WriteAllBytes("$dll.new",$bytes) "`tBacking up the original dll..." move -literal $dll "$dll.bak" -force "`tRenaming the temporary dll as the original dll..." move -literal "$dll.new" $dll -force $pathsDone[$path.toLower()] = $true write-host -f green "`tDONE.`n" [GC]::Collect()}main

转载于:https://www.cnblogs.com/chromecj/p/7373572.html

你可能感兴趣的文章
鼠标悬停图片移动的效果
查看>>
YII2操作mongodb笔记(转)
查看>>
javaScript 比较数字大小
查看>>
从汇编来看c语言之指针
查看>>
sqlserver查询表索引
查看>>
JavaScript 基础知识系列:数据类型及slice(8,-1)
查看>>
String,StringBuffer,StringBuilder三者有什么异同?
查看>>
[LeetCode] Invert Binary Tree
查看>>
2018.3.31——(4)句子
查看>>
js call
查看>>
【原】Java学习笔记024 - 包装类
查看>>
如何写一手漂亮的 Vue
查看>>
2018.10.29-dtoj-3999-游戏(game)
查看>>
LNOI2019 游记
查看>>
php简单实现MVC
查看>>
json和jsonp的区别(转)
查看>>
轮播图
查看>>
我们为什么要当程序员?
查看>>
Bootstrap3系列:按钮组
查看>>
React笔记:组件(3)
查看>>