
分类: 电脑/网络 >> *** 作系统/系统故障
问题描述:
不知怎的我竟把误电脑里的SYSTEM32 RUNDLL32 EXE删除掉[本想删除病毒的]现在想打开'我的电脑-属性却找不到打开程序[还有桌面-属性添加删除程序也打不开]不知要怎样才能把它'SYSTEM32 RUNDLL32 EXE'恢复过来帮我一下谢了
解析:
1从安装光盘解压缺少的一些重要文件
如果WindowsXP已经进入,但却发现少了某些文件,其中最常见的是Rundll32exe的丢失。下面就以恢复这个文件为例来说明:单击“开始”/“运行”,在该窗口中输入expand x:\i386\Rundll32ex_ c:\windows\system32\Rundll32exe(x代表光驱盘符,rundllex_代表需要解压的文件,c:\windows\ system32指的是目标文件夹,这些都要根据具体情况来定),即可将丢失的文件恢复至系统。当然也可以直接从其他正常运行的机器复制该文件至本机的相应目录下。
另外,对于丢失的dll链接文件,还可以通过Regsvr32这个程序文件来恢复,恢复的时候需要在运行窗口中输入Regsvr32 adll(adll代表丢失的链接文件),回车后即会在注册表中注册该文件,然后在d出的对话框中点“确定”即可。
2DLL文件的恢复
DLL文件的名称为动态链接库文件,一般存在于Windows\system32文件夹下,该文件丢失或者被替换,一般也可进入 Windows,但是执行应用程序时往往会出现系统报错。这种错误通常可以通过Sfc(系统文件检查器)。sfc是一个命令行程序,必须在 WindowsXP的“命令提示符”窗口下才能运行,为了实现多种功能,sfc提供了多个参数,使用格式为:sfc/参数1 /参数2……,各个参数之间要用一个空格隔开。下面介绍一下其几个主要的参数,以方便大家使用:
/scannow:用来扫描所有受保护的系统文件,也是应用比较广的一个参数,它主要是通过正确的系统文件代替错误的系统文件。该参数还可以将最新版本的受保护系统文件放入DLLCache文件夹,而且在 *** 作过程中可能需要WindowsXP的安装光盘,以及其补丁文件,如果你没有该光盘,而是在硬盘上备份了安装文件,可以通过修改注册表来完成该项功能。在运行窗口键入Regedit命令进入注册表编辑器窗口,找到 HKey_Local_Machine\sofare\Microsoft\Windows\CurrentVersion\setup项,在右侧的窗口中修改Installation Sources、ServicePacksourcePath和SoutcePath三个键值为硬盘上的系统安装程序路径,这样在修复时就不用再插入 WindowsXP安装光盘了。
/scanonce:下次启动时执行受保护系统文件的扫描,也需要读取安装光盘和补丁文件。这个命令常常在执行/scannow命令出现错误提示时才使用。
/scanboot:每次启动系统时都扫描所受保护的系统文件,这可能大大降低启动速度,一般不用,使用情况同/scanonce参数。
/purgecache:用来清除文件缓存(该文件默认情况下是在%systemroot%\system32\dllcache下)并立即扫描所有受保护的系统文件,常在其后还要加上“/cachesize=x”这个参数,这个参数是用来设置文件缓存大小的,以MB为单位,该参数如果设置较小可以节省硬盘空间,如果设置大一些可以保护系统文件,则可能尽可能地恢复更多的系统文件。
一般情况下执行sfc/scannow就可以对系统文件进行恢复了,时间一般在10分钟左右。
3系统还原显身手
如果用sfc/scannow还是出错的话,则可能想到用系统还原功能来恢复系统。特别是在增删某些软件后出现了系统故障的时候,这种方法就显得尤为方便。
依次单击“开始→所有程序→附件→系统工具→系统还原”,运行“系统还原”命令,打开“系统还原向导”,选择“恢复我的计算机到一个较早的时间”,点击“下一步”,选择好日期后再跟着向导还原即可。
上文所讲系统还原功能是Windows XP中 *** 作的,如果不能进入Windows XP系统,可以通过如下方法解决:
⑴安全模式运行系统还原
如果Windows XP能进入安全模式的话,则可在安全模式下进行系统恢复,步骤同“恢复还原点”。
⑵DOS模式进行系统还原
如果系统无法进入安全模式,则在启动时按F8,选“Safe Mode with Command Prompt”,用管理员身份登录,进入%systemroot%\windows\system32\restore目录,找到rstrui文件,直接运行rstrui文件,按照提示 *** 作即可。
⑶在丢失还原点的情况下进行系统还原
在Windows XP预设了System Volume Information文件夹,通常是隐藏的,它保存了系统还原的备份信息。打开查看“显示所有文件和文件夹”属性,取消“隐藏受保护的系统文件”前有选择,会在每个盘中看到“System Volume Information”文件夹。利用这个文件夹可以进行数据恢复。鼠标右击“我的电脑”,选择“属性”/“系统还原”,取消“在所有驱动器上关闭系统还原”复选框,单击“应用”按钮。这样做是为了重建一个还原点。再打开“系统还原”命令,就可以找到丢失的还原点了。
上面的叙述是针对FAT32分区,如果系统分区为NTFS,那么在启动System Volume Information文件夹时会遇到一点麻烦。因为你可能并没有被加入到System Volume Information安全属性中,访问不到该文件。鼠标右击该文件夹,在d出的菜单中选择“属性”,打开System Volume Information属性对话框,选中“安全”选项卡,单击“添加”按钮,打开“选择用户或组”窗口,点击该窗口右下角的“高级”按钮,然后单击“立即查找”按钮,这时会列出计算机上所有的用户和组,选中自己当前的账户或账户所在组的名称后“确定”。这样选中的账户被添加到System Volume Information安全属性中,就可以访问该文件夹了。
二、在DOS环境下
如果电脑已经进入不了WindowsXP,那么也不用太着急重装系统,因为这时还是有些方法的。
1安全模式
在WindowsXP启动时按F8键,选择“安全模式”,如果能启动成功,则退出后再正常启动。
2最后一次正确的配置
其基本 *** 作同安全模式,但需要说明的是选择该项回车前要确保关闭了键盘上的NumLock指示灯。
3故障恢复台
⑴控制台的安装
①控制台硬盘安装
插入WindowsXP安装光盘,单击“开始”/“运行”,输入\i386\winnt32exe/cmdcons命令后回车,在出现的对话框中显示了“故障恢复控制台”安装选项,单击“是”后确认,重新启动计算机即会在启动菜单中看到“Microsoft Windows Recovery Console”菜单,选中后即可进入“故障恢复控制台”。
②控制台光盘安装
首先在BIOS中将启动顺序设置为CD-ROM,再在光驱中插入WindowsXP安装光盘启动系统,在屏幕显示“欢迎使用安装程序”时,按R 启动故障恢复控制台。接着系统会要求输入管理员密码,输入后即可进入故障恢复台。若安装了多系统,则需要通过光标键来选择故障恢复台项,对于使用了 SCSI或RAID的硬盘,则在其启动时要按F6键。若要担心忘记管理员密码,可在WindowsXP正常启动时,运行Gpeditmsc进入策略编辑器,再依次选择“本地计算机策略”/“计算机配置”/Windows设置/“安全设置”/“本地策略”/“安全选项”,在右侧的窗口的双击“故障恢复控制台:允许自动系统管理级登录”项,鼠标右击,选择“启动”,单击“确定”按钮后保存设置,进入故障恢复控制台就不用输入密码了。
⑵“故障恢复控制台”应用
①修复受损的多启动菜单
如果多 *** 作系统菜单因为某种原因丢失,则可以进入“故障恢复控制台”,输入Bootcfg/scan命令,会自动扫描所安装的 *** 作系统并显示出来,完成后再输入Bootcfg/rebuild命令,出现提示后按Y键,在“输入加载识别符”提示后输入丢失的启动菜单项,在“输入OS加载选项”后输入fastdetect后回车,即可找到多系统菜单。另外输入Bootcfg/add命令也可以向启动菜单中添加菜单项,使用方法基本同上。
②修复系统引导区
当系统引导区因为某种原因造成损坏而不能启动时,可以进入故障恢复控制台,在命令行下输入Fixboot可以修复引导区。
③恢复系统重要文件
系统中有一些重要的文件直接关系着是否能启动成功,如Ntldr这个文件丢失,系统就启动不起来,这时可以进入控制台,键入命令行copy x:\i386\ntldr c:\后回车即可,重新启动后会发现能够正常进入WindowsXP了。如果丢失的是一些压缩文件,还可以在控制台输入expand x:\i386\aex_ c:\windows\(x代表光驱盘符,aex_代表需要解压的文件,c:\windows指的是目标文件夹,这些都要根据具体情况来定),即可将丢失的文件恢复至系统。
④启用或禁用某些服务或驱动程序
这一功能主要应用于由于安装某些新的程序造成系统无法启动的情况,我们可能通过在故障恢复控制台中去掉该项服务或程序以达到系统起死回生的目的。具体 *** 作如下:
进入控制台,输入Listsvc命令后回车,在屏幕上会出现当前系统中已有的所有服务和驱动程序以及其状态说明。找到需要禁用的可疑服务或驱动程序,输入命令 disable 需要禁用的程序或服务,回车后屏幕上会显示出该服务以前的状态和完成后的状态;如果想雇用某个程序或服务,则需要键入Enable 需要禁用的程序或服务,回车后即可。
tmp是临时文件,一般可以删除
其实,这是Windows产生的临时文件,本质上和虚拟内存没什么两样,只不过临时文件比虚拟内存更具有针对性,单独为某个程序服务而已。还有,如果您是使用WORD编辑文档,也会在WORD的安装目录里发现一批~开头的,TMP结尾的文件,这是WORD产生的临时文件,但如果你的WORD还没关闭,想删除它们,却可能会发现怎么都删除不了,系统反复提示读写保护,这又如何是好呢?下面就综合谈谈这些临时文件及处理的办法:
一般来说,你当前运行着大型的工具软件的时候,都不应该去碰临时文件,比如Photoshop会在处理图形时候产生巨大的临时文件,如果你认为这不是你创建的文件企图删除,可能会导致Photoshop死机。你当前没有运行程序的话,发现的临时文件都可以删除,以免它们天长日久堆积如山,占据磁盘空间还是小事,关键是它们又多又散乱,会给磁盘扫描整理带来时间上的无谓消耗,也可能会造成文件分配表混乱,导致文件交叉链接的错误。但是不能所有的临时文件都一概而论。
比如,C盘根目录的TEMP目录,是很多工具程序临时文件的指向目录,没有这个目录的话,临时文件无法创建,这些工具软件就很可能会出错,所以要删除的话,只应该清空里面的临时文件垃圾,而不能把TEMP这个目录都干掉了;Windows里通常也有一个TEMP文件,是系统默认的临时文件的放置地方,也不建议连目录都删除了,定期清空里面的垃圾即可。
还有就是WORD安装目录里的临时文件,在你使用WORD的时候,不要去删除它们,这些~开头,TMP结尾的文件是WORD程序工作要用到的,多处于读写保护状态,你想删除它们也删除不了;如果你在使用WORD时候死机,下次开机进入Windows的时候,也不要先删除它们,应该打开WORD,WORD会从这些临时文件里读取上次你死机时候最新保存的结果,让你最大限度地恢复上次的工作。其实这就是WORD恢复上次文档的原理。等你另存了文件后,再删除它们也不迟。
什么情况下TEMP文件非删除不可呢?那就是后台没运行程序,又反复出现同一种现象相同的故障、而且确认不是系统硬件导致问题的时候,比如打印出问题,打印机老是不认你的纸张,老提示你没放纸,你就应该删除Windows目录下的TEMP里的文件;还有就是磁盘扫描出现交叉链接的错误,又不能自动纠正,你应该尝试删除临时文件再进行一次扫描试试。注意哦,WORD安装目录下的某些临时文件是隐藏的,你可能要用到清理临时文件的专门小工具才能删除它们,否则就得到该目录里先显出所有文件,再手工删除了。
这个应该是创建窗口代码的问题。
ASSERT是断言,是C++中用于调试的一个宏。其原理如下:检查传入参数是否为FALSE(即0),如果是则在stderr中输出错误并d窗提示,伪代码如下:
void myassert(int canshu){
if(canshu){
return;
}
else{
//进行d窗和输出
}
}
好的,进入正文。
其报错部位代码为ASSERT(::IsWindow(m_hWnd));
由m_hWnd可判断出此程序使用MFC编写,而IsWindow函数用于判断窗口是否有效,传进判断句柄。若窗口有效则输出TRUE,否则为FALSE。
下面是MSDN对该函数的解释:
IsWindow function (winuserh)
10/13/2021
2 minutes to read
Is this page helpful
Determines whether the specified window handle identifies an existing window
Syntax
C++CopyBOOL IsWindow( [in, optional] HWND hWnd );
Parameters
[in, optional] hWnd
Type: HWND
A handle to the window to be tested
Return value
Type: BOOL
If the window handle identifies an existing window, the return value is nonzero
If the window handle does not identify an existing window, the return value is zero
Remarks
A thread should not use IsWindow for a window that it did not create because the window could be destroyed after this function was called Further, because window handles are recycled the handle could even point to a different window
Examples
For an example, see Creating a Modeless Dialog Box
那么,可以看出,由于某种原因,句柄或者句柄对应的窗口无效,导致IsWindow返回了FALSE,而ASSERT收到了返回值FALSE,判断该函数出错,因此报错。
总结,这应该是程序编写者的代码在创建窗口时出错,应该向程序作者反馈。
以上就是关于高手帮我一下全部的内容,包括:高手帮我一下、请大家帮我看一下需要什么才能正常打开这样的文件、debug assertion failed winocc.cpp line:138 好不容易下载到一个程序,不能打开,大大们帮我一下吧!急!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)