【已解决】Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法

时间:2022-06-24 22:40:32
chrome用户在安装了一些第三方的chrome插件后,每次打开浏览器的时候都会出现“请停用以开发者模式运行的扩展程序”的提示,只有每次点击取消之后才能正常使用扩展。如下图所示

【已解决】Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法
那么有没有什么方法可以永久性的解决chrome“请停用以开发者模式运行的扩展程序”的提示的方法呢?今天我们就为大家收集整理的两种方法。

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

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

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

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

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

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

<# :
@echo off
copy/b "%~f0" "%temp%\%~n0.ps1" >nul
powershell -Version 2 -ExecutionPolicy bypass -noprofile "%temp%\%~n0.ps1" "%cd% " "%~1"
del "%temp%\%~n0.ps1"
pause
exit /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 = "(?<channel>$rxChannel-.{1,100})-68-(?<flag>`$1-.{6}`$2)",
"68-(?<flag>`$1-.{6}`$2).{300,500}E8.{12,32}(?<channel>$rxChannel)",
"E8.{12,32}(?<channel>$rxChannel).{300,500}68-(?<flag>`$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://*.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
 

【已解决】Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法的更多相关文章

  1. Chrome提示&colon;"请停用以开发者模式运行的扩展程序"的解决办法

    操作步骤 1.开始 -> 运行 -> 输入gpedit.msc -> 回车确定打开计算机本地组策略编辑器(通过Win + R快捷键可以快速打开运行),如图所示: 2.在打开的本地组策 ...

  2. &lbrack;转&rsqb;关闭 Chrome 浏览器的启动时提示 - 请停用以开发者模式运行的扩展程序

    最新版本 69.0.3497.92 (x64) 解决办法: https://www.cnblogs.com/liuxianan/p/disable-chrome-extension-warning.h ...

  3. Selenium启动Chrome浏览器提示&OpenCurlyDoubleQuote;请停用以开发者模式运行的扩展程序”的解决办法

    安装了python selenium,运行下面代码: 1 from selenium import webdriver 2 3 browser = webdriver.Chrome() 4 brows ...

  4. 最新解决Chrome&lpar;版本76&period;0&period;3809&period;100&rpar; &OpenCurlyDoubleQuote;请停用以开发者模式运行的扩展程序”的方法

    最新解决Chrome(版本76.0.3809.100) “请停用以开发者模式运行的扩展程序”的方法 最近在远景论坛上发现了最新的解决Chrome浏览器提示:请停用以开发者模式运行的扩展程序的问题.该方 ...

  5. 彻底禁用Chrome的&OpenCurlyDoubleQuote;请停用以开发者模式运行的扩展程序”提示

    前言 作为一个前端程序员,难免会有一些专属自己的小扩展,没必要每一个都发到Chrome应用商店去,虽然可以勾选"开发者模式"来运行本地插件,但是每次启动都会有一个烦人的" ...

  6. 禁用Chrome的&OpenCurlyDoubleQuote;请停用以开发者模式运行的扩展程序”提示

    1.前言 每次启动都会有一个烦人的“请停用以开发者模式运行的扩展程序”提示,这个提示有多烦人,接触过的人都知道,启动的时候它不立即提示,等过了几秒钟等你打开某个网页开始执行某些操作时它突然弹出来干扰你 ...

  7. 彻底禁用chrome请停用以开发者模式运行的扩展程序弹框

    首先上图 怎么解决呢? 进入安装目录-->下图目录(一串数字的目录) 2. 找到chrome.dll 3.下载patch.exe   下载网址 https://itdocs.pipipan.co ...

  8. 屏蔽谷歌浏览器&quot&semi;请停用以开发者模式运行的扩展程序&quot&semi;提示

    目标: 对于强迫症患者那是相当难受~~~ 解决方案: 1:进入chrome://extensions/ 右上角开启开发者模式 点击打包扩展程序: 2:扩展程序目录为选择插件(*.crx解压后)的根目录 ...

  9. 去除Chrome&OpenCurlyDoubleQuote;请停用以开发者模式运行的扩展程序”提示

    将version.dll放在chrome同级目录,重启浏览器( 79.0.3945.79版本后已失效)                    

随机推荐

  1. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  2. Netbeans快捷键

    一.常用快捷键:1.在文件中查找指定内容 Ctrl+F2.在文件中替换指定内容 Ctrl+H3.在整个项目中查找指定内容 Ctrl+Shift+f4.自动复制整行代码 Ctrl+Shift+上/下方向 ...

  3. Windows 7无线网卡启用wifi共享蓝屏!

    我的笔记本是联想Y460P,装的是Windows 7 Ultiame(x64)系统,通过设置笔记本的无线(Intel WiFi Link 1000 BGN)搭建Wifi环境并共享,使手机能够通过笔记本 ...

  4. 最简单的Java框架

    框架framework的目的是定义骨架式方案,处理各种相同的底层细节:而开发人员使用框架时,能够依照自己的需求实现自己的功能--仅仅须要填入自己的东西/flesh. 最简单的框架,类似于JUnit,它 ...

  5. flask-session组件

    简介 flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis mem ...

  6. Elasticsearch 通关教程(四): 分布式工作原理

    前言 通过前面章节的了解,我们已经知道 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以一个之前从未有过的速度和规模,去探索你的数据.它被用作全文检索.结构化搜索.分析以及这三个 ...

  7. &lbrack;skill&rsqb;&lbrack;makefile&rsqb; makefile 常用内容记录

    其实,makefile有点复杂. 文档看了又看,还是要经常翻,做个记录备忘 :) 1.  隐含命令 implicit rules 与 implicit rule 相对应的有 pattern rules ...

  8. 20180824 SSRS Line Chart 绘制

    (很多时候我都会只记录遇到的问题点,很少详细的写整个过程) 1. 安装ReportBulider 客户端,不需要填写server url ,可以先放空,后面再维护. 安装包官网可以下载,是免费的,现在 ...

  9. C&plus;&plus;的成员初始化列表和构造函数体(以前未知)

    成员的初始化列表和构造函数在对成员指定初值方面是不一样的.成员初始化列表是对成员初始化,而构造函数,是对成员赋值 成员初始化列表使用初始化的方式来为数据成员指定初值, 而构造函数的函数体是通过赋值的方 ...

  10. Samsung&lowbar;tiny4412&lpar;驱动笔记02&rpar;----ASM with C&comma;MMU&comma;Exception&comma;GIC

    /**************************************************************************** * * ASM with C,MMU,Exc ...