记录解决 <应用程序无法正常启动(0xc0000142) > 的过程

前一天电脑还是可以正常工作,但是隔一天电脑开机后发现命令行CMD启动报错-----应用程序无法正常启动(0xc0000142)

猜测是不是出现杀毒软件误杀的可能,于是排查%windir%\system32\cmd.exe,发现无异常,于是上网狂搜,看了N多个帖子,无非说是dll文件未注册,需要重新注册,有的说软件冲突,还有的说要更改Unicode语言,有的说检查磁盘损坏,还有的说跟屏幕分辨率有关,反正说啥的都有,一个个尝试吧。

首先想到安全模式下尝试打开cmd,结果报错。

然后按照网上的教程,将Windows进程隐藏,禁用其余所有服务,reboot,结果依旧报错。

有说卸载flash player,显卡driver的,尝试都卸了之后 运行依旧报错。

改Unicode语言的话本机已经是中文简体了。

网上还有说修改注册表LoadAppInit_DLLs值为0的(其本质为注册dll)打开位置发现默认值就是0。

分辨率调了又调,貌似没啥作用。

磁盘损坏么?检测工具一上,无异常,甚至内存我都顺便检测了下,无异常。

看来只剩下注册dll了,要注册dll,就要打开cmd,关键是没办法使用cmd,连powershell一样都不可用,用就给你报0xc0000142,实在没办法了只能上win PE了

诡异的是Win PE里面居然能正确打开C盘的cmd.exe(不是win PE自己的),于是按照网上的教程

首先尝试  SFC /SCANNOW

然后反手就给我报一个Windows 资源保护无法启动修复服务。

那就只能尝试使用注册命令了(注意,命令里面必须把盘符加上,否则默认执行的是WIN PE的regsvr32.exe)

for %i in (C:\Windows\system32\*.dll) do C:\Windows\System32\regsvr32.exe /s %i
for %i in (C:\Windows\system32\*.ocx) do C:\Windows\System32\regsvr32.exe /s %i

前面顺利,最后报错

 感觉注册很顺利啊,除了这个看不懂的报错,后来百度了下,百度查出来的结果是 “0x00007ff指令中引用的0x000007ff内存,该内存不能为READ是因为计算机的应用程序出错。”

应用程序出错的解决方法是使用for语句重新注册,wtf,这不又绕回来了么,不管了,reboot

进系统,毫无意外的依旧报错,到目前为止,能尝试的都已经尝试了,这个时候又突然发现system32里面很多的exe陆续开始报错,无法打开。

主要这是我的工作机器,重装系统的代价很大,已经走投无路了。

最后抱着死马当活马医的心态,最后放手一搏,打开虚机(纯净版win7),关掉杀软(不关掉杀软复制的时候杀软会频繁弹出警示框),直接暴力复制虚机的system32文件夹到主机,结果由于权限问题报错,于是尝试system32下除子文件夹外的文件都复制,没有报错,复制完成后,小心翼翼的点开cmd,居然开了????

居然没报错!

好嘛,万幸啊万幸,这要是真走到重装系统那一步,那损失可就有点大了。这时候有个虚机备份就体现出重要性了。

所以赶紧记录下来,虽然操作是很简单,但是提供了一条除了普通方法以外的思路。

PS:如果电脑上没有虚机,那么可行的替代方法是找另外一台正常的机器,然后再复制其system32文件夹到本机进行替换

其实回过来溯源的话,感觉应该是杀软误杀然后更改了系统某些文件,线索是杀软记录的log

rundll32.exe 也检查没问题,可能一些原因误杀导致某些应用或者配置不可用,而cmd又依赖这些配置或者服务,导致报错。其实在Win PE上CMD可用就说明程序本身没问题,但是如果要具体追溯哪个底层配置出问题可就有点工作量了,索性暴力复制吧。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
VS2010应用程序无法正常启动0xc0000142错误代码通常是由于部分DLL文件未能被系统注册,导致动态库调用错误所致。 解决该问题的方法有多种,以下是其中一种方法:首先,按下键盘上的Windows徽标键+R,然后输入regedit.exe打开注册表编辑器。接着,依次展开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows路径,找到并修改“LoadAppInit_DLLs”键的值,将其从1改为0。 这样一般可以解决VS2010应用程序无法正常启动0xc0000142错误代码的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Windows系统提示应用程序无法正常启动(0xc0000142)解决方法](https://blog.csdn.net/weixin_44285120/article/details/104693199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [应用程序提示0xc0000142无法正常启动怎么办](https://blog.csdn.net/qq_29508575/article/details/120510185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值