1. 讓電腦崩潰的指令
新建文本文檔,將本段代碼復制進入文本,保存;將後綴.txt改為 .vbs 即可
CreateObject("SAPI.SpVoice").Speak"你的電腦受到d dos木馬攻擊,系統嚴重癱瘓,電腦系統將在三秒後崩潰"
set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
CreateObject("SAPI.SpVoice").Speak"電腦系統已崩潰。"
do
MsgBox "404 Bad Gateway",vbExclamation+vbYesNo,"請立即關閉您的計算機!"
loop
set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Sleep 8000
CreateObject("Wscript.Shell").run "cmd.exe /c shutdown -f"
CreateObject("Wscript.Shell").run "cmd.exe /c shutdown -r -t 2"
2. 提示access violation at address解決辦法
解決方法:
右擊「我的電腦」。單擊「屬性」。
在「系統屬性」中單擊「高級」。
在「性能」中單擊「設置」。
在「性能選項」中單擊「數據執行保護」。
單擊「添加」。選擇要運行的程序。
OK。就這么簡單。
Access Violation(非法訪問)錯誤的解決方法
Access Violation(非法訪問),General Protection Fault(一般保護性錯誤)或者Invalid Page Fault(無效頁面錯誤),雖然說法不一樣,但本質上總是由同一種錯誤引起的。Access Violation常常在計算機用戶運行的程序試圖存取未被指定使用的存儲區時遇到。
Access violation at address 十六進制值
in mole 應用程序名
Read of address 十六進制值
Windows用戶可能經常會看到類似於錯誤提示:「Error:Access violation at address 836556F8(004096da). Read of address 836556F8(00401000)」。作為一個Delphi程序開發者,遇到這種錯誤的機會比其他用戶更多(^_^)。
一旦Windows要在它被分配的存儲區之外寫數據信息,它就會覆蓋其他程序甚至操作系統的命令或數據。一旦發生了這種情況,操作系統將會癱瘓或者以某種形式關閉,你必須重新啟動計算機。例如,在Windows NT/2000下一個程序遇到這種錯誤時,Dr. Watson出現並且停止了該程序,捕獲了一些快速的細節狀態,再把它們用文本形式記錄下來。Access Violation是某些最令人氣惱的Windows程序遇到的錯誤之一。本文的目的就是讓你找到Delphi中Access Violation的解決之道。首先聲明一點,Access Violation和Microsoft Access沒有任何關系。
用Delphi開發程序時,我們可以把遇到的Access Violation分成兩大類:運行期和設計期。
一、設計期的Access Violation
1.硬體原因
在啟動或關閉Delphi IDE以及編譯一個Delphi工程時容易出現設計期的Access Violation。在你的計算機運行中出現Access Violation信息可能由各種各樣的原因引起,包括系統BIOS、操作系統或者是硬體驅動線,有些音效卡、顯卡、網卡實際上也會導致這種錯誤。為什麼這么說?計算機里的每一塊卡都有它的設備驅動程序。對於不同的製造商、不同版本的Windows或者不同版本的Delphi都可能會遇到不同的問題。如下的幾個步驟可能有助於你解決遇到的這些問題:
1. 按照必要的步驟來證實你安裝的驅動程序之間沒有沖突。
2. 有時降低顯示解析度可能會使某些古怪的顯卡驅動程序穩定一些。
3. 如果使用雙處理器的主板,則保證對每個處理器的修改步驟一樣。
4. 對於計算機上的所有硬體注意使用最新的驅動程序。
2.軟體原因
盡管Intel的計算機中Windows是最流行的操作系統,由於Windows系統天生的脆弱性和BUG,應用程序的誤操作可能導致操作系統的迅速癱瘓(有時操作系統本身也會莫名其妙的癱瘓)。選擇一個更穩定的程序開發環境是解決之道,如下幾個步驟可以幫助你防止某些Access Violation的發生:
(1)盡管Windows 9X相當流行,Windows NT/2000還是從多方面被證實是一個穩定得多的環境,幾乎對於所有的Windows代碼平台而言都是這樣。
(2) 確保對於Windows NT/2000已經安裝了最新的service pack。每次安裝完新版的service pack,你會發現機器變得穩定了。
(3) 為你使用的各種版本的Delphi裝上當前的更新或補丁(BDE、ADO……),這是提前預防錯誤的好辦法。盡量使用最新的Delphi補丁——Access Violation錯誤數量尤其是設計期的錯誤數會大大減少。
(4)如果你在IDE中經常隨機遇到Access Violation錯誤,很有可能是你安裝了一個不好的控制項、包或者一個向導,它不是你使用的版本的Delphi所編寫或編譯的。試著一個一個卸載定製的控制項(或者包)直到問題被解決,然後聯系控制項廠商關注這個問題的結果。
(5) 檢查一下計算機里是否有沒用的東西和程序沖突。奇怪的軟體程序和測試版的產品常常會導致Access Violation錯誤。
(6) 如果系統設置有錯誤,那麼Access Violation錯誤可能也會經常出現。如果你不停地遇到一個錯誤提示信息一樣的Access Violation,記錄下這些細節,然後通知可能導致這個錯誤的軟體製造廠商。
這些就是我對設計期Access Violation錯誤的全部建議。
二、運行期的Access Violation
Delphi常見的運行期Access Violation錯誤有哪些?如何防止?
任何軟體開發都會遇到這樣的情況:你寫好程序並測試,然後到處發送,結果用戶告訴你它失敗了。
你可能考慮用編譯指令{$D}編譯你的程序——Delphi可以建立一個有助於定位Access Violation錯誤的源代碼的鏡像文件。工程選項對話框(Project|Options|Linker Compiler)讓你指定你所需要的一切。對於單元文件,debug信息和單元的對象代碼一起記錄在unit文件里了。編譯使用這個單元的程序時,debug信息會增加單元文件的大小而且會增加額外的內存開銷,但是它不會影響最終可執行文件的大小和運行速度。包含debug信息和鏡像文件(Project|Options|Linker)選項的產品只有在{$D+} 編譯指令下才會完成行信息。
Access violation通常只在程序的某一個方面表現出來。當問題第一次出現時,考慮一下用戶進行了什麼操作是很重要的,然後從這里尋找突破口。從用戶的角度來看,你的程序中止了他們的工作,由他們來告訴你出現的問題似乎讓你延期解決這個問題了。然而,與用戶交流是你發現問題和改善程序的惟一有效方法。
現在你將可以知道在只給你沖突地址的情況下,如何輕松發現准確路徑、源代碼文件、發生Access violation錯誤的行:
「Search - Find Error…」。
當一個運行期Access violation出現時,你的用戶得到的錯誤信息類似於如下情況:
Access violation at address 十六進制值
in mole 應用程序名
Read of address 十六進制值
如果你的程序在Delphi IDE里包含debug信息編譯,你可以定位到導致這個錯誤源代碼這一行。
在Delphi程序中,一個最普遍導致Access Violation錯誤的原因是使用了一個沒有被創建的對象。如果第二個地址十六進制值是FFFFFFF或0000000,十有八九就是你訪問? 了一個沒有被建立的對象。例如,你調用了一個表單的事件,但這個表單不是自動創建的,也沒有代碼實例化。
?procere TfrMain.OnCreate(Sender: TObject);
var BadForm: TBadForm;
begin
//這里將會產生Access violation
BadForm.Refresh;
end;
假設BadForm在工程選項「Available Forms」窗口列表裡——這個窗口是需要手工創建和釋放的。在上面的代碼里調用BadForm窗口的Refresh方法就會導致Access violation。
如果你在Debugger選項窗口使「Stop on Delphi Exceptions」生效,那麼就會彈出下面的信息:
The message states that the EAccessViolation has occurred. The EAccessViolation is the exception class for invalid memory access errors.
這是你在設計程序時將會看到的信息,下一個信息框將會出現,然後程序失敗了:
Access violation at address 0043F193
in mole 』Project1.exe』
Read of address 000000.
第一個十六進制數0043F193是發生Access violation的編譯代碼(Project1.exe)的運行期錯誤的地址。在IDE里選擇菜單項「Search|Find Error…」,在對話框里輸入錯誤發生的地址(0043F193)後點擊「OK」按鈕。Delphi將會重新編譯你的工程文件,然後顯示發生運行期錯誤的那一行代碼,這里就是BadForm.Refresh這一行了。
下面列出了Delphi環境下導致Access violation錯誤的大部分常見原因。這個列表不是也不可能覆蓋所有可能出現的Access violation的情況。請在論壇上發送你的Access violation信息,大家可以試著一起解決這個問題——真正的實際事例一般情況下比列出來的錯誤隱晦得多。
1. 調用一個不存在的對象
如上所述,大部分Access violation的合理原因是使用了沒有被創建或者已經被釋放的對象。為了防止這種類型的Access violation的發生,請確保你訪問的任何對象都首先被創建了。例如,當一個Table定位在一個沒有被創建的data mole(從auto-crete窗口裡移走了)里,你可能在窗體的OnCreate事件里打開這個表。
在下面的代碼里,在調用一個已經被刪除了的對象(b:TBitmap)事件後,一個Access violation出現了:
var b:TBitmap;
begin
b:=TBitmap.Create;
try
//對b對象進行一些操作
finally
b.free;
end;
...
//由於b已經被釋放,一個Access violation錯誤將會出現
b.Canvas.TextOut(0,0,』這是一個 Access Violation』);
end;
2. 不存在的API參數
如果你試圖給Win API函數傳遞一個不存在的參數將會出現一個Access violation錯誤。解決此類Access violation錯誤的最好方法是查閱Win API幫助,看看這個API函數調用的參數信息以及參數類型。例如,總是保證不給一個緩沖參數傳遞一個無效指針。
3. 讓Delphi釋放
當一個對象擁有另一個對象時,讓它給你做刪除工作。因為默認情況下,所有的窗體(自動創建的)都屬於Application對象。當一個應用程序結束時,它釋放了Application對象,也就釋放了所有窗體。例如,如果你在程序開始時自動創建了兩個窗體(Form1/Unit1和Form2/Unit2),下面的代碼就會導致Access violation錯誤的出現:
unit Unit1;
...
uses unit2;
...
procere TForm1.Call_Form2
begin
Form2.ShowModal;
Form2.Free;
//Access violation錯誤將會出現
Form2.ShowModal;
end;
4. 殺死異常
永遠不要破壞臨時異常對象(E),處理一個異常會自動釋放異常對象。如果你自己手動釋放了異常對象,程序會試圖再次釋放它,那麼就會出現Access violation錯誤:
Zero:=0;
try
mmy:= 10 / Zero;
except
on E: EZeroDivide do
MessageDlg(』不能用0做除數!』,mtError, [mbOK], 0);
E.free. ////Access violation錯誤將會出現
end;
5. 檢索一個空字元串
一個空字元串是沒有任何數據的。就是說,檢索一個空字元串相當於訪問一個不存在的對象,這將導致Access violation錯誤:
var s: string;
begin
s:=』』;
s[1]:=』a』;
//Access violation錯誤將會出現
end;
6. 直接引用指針
你必須間接引用指針,否則你會改變指針地址並可能會破壞其他存儲單元 :
procere TForm1.Button1Click(Sender: TObject);
var
p1 : pointer;
p2 : pointer;
begin
GetMem(p1, 128);
GetMem(p2, 128);
//下一行導致Access violation錯誤
Move(p1, p2, 128);
//下一行方法正確
Move(p1^, p2^, 128);
FreeMem(p1, 128);
FreeMem(p2, 128);
end;
這些就是我對運行期Access Violation錯誤的全部建議,我希望你們也能對你們程序出現的Access Violation錯誤提出一些看法。
當有些時候我們在看著電影或者玩著游戲時,我們的台式電腦宕機了或者卡住了,這是什麼原因呢?要怎麼去解決?下面由我給你做出詳細的台式電腦宕機或者卡住了解決方法介紹!希望對你有幫助!
台式電腦宕機或者卡住了現象1、
滑鼠轉圈
所謂假死,就是點選什麼都沒動靜,而那個滑鼠轉呀轉地,有時候過了很長時間才有反應。如果因為長時間沒動靜,心急的使用者就不斷地點選滑鼠,殊不知,點選一下滑鼠就是給系統發一個指令,這樣做於事無補,反而會加重作業系統的負重。
解決辦法:此時可以按組合鍵***Ctrl+Alt+Del***調出Windows工作管理員→程序→選中explorer.exe→結束程序,此時桌面和工作列都會沒有,再點選 Windows工作管理員→檔案→新建任務瀏覽→在系統盤***通常是C盤***Windows資料夾下→選中 explor.exe →開啟→確定即可。
台式電腦宕機或者卡住了現象2、
程序異常
還有一種現象是,使用者點開程式,但是系統忙了半天,程式沒有開啟,反而彈出一個結束程序的提示。
解決辦法:按三鍵***Ctrl+Alt+Del***調出Windows工作管理員→程序→選中沒有相應的程式→結束程序。
台式電腦宕機或者卡住了現象3、
資源管理器已停止工作
通常是點選資源管理器中右鍵點選任意一個分割槽,滑鼠指標一直是圓環形的「執行」狀態,點選資源管理器視窗右上角的關閉按鈕,就會彈出錯誤提示未響應或者資源管理器已停止工作。究其原因,資源管理器找不到路徑分割槽所致。
解決辦法:右鍵點選工作列上的資源管理器圖示,再點選右鍵選單中的屬性,然後在快捷方式的目標中鍵入 %windir%explorer.exe ***給路徑***即重新定位到系統預設的庫,就能解決問題。
還有一招:如果電腦上有光碟機,還可以點選彈開光碟機的按鈕***不要往裡面安放光碟,否則適得其反***,再推上光碟機彈出托盤,因為許可權關系,此時可以喚醒系統***滑鼠邊上會有光碟機的圖示***,遇到未響應錯誤,此法屢試不爽!
台式電腦宕機或者卡住了現 象4、
看視訊假死
看視訊需要聯網,稍有停滯就容易導致系統卡住。此時可以嘗試禁用視訊檔案預覽功能,以避免由此而造成的假死現象。其步驟是:開始→執行→輸入命令:regsvr32 /u shmedia.dll,點選確定,或按下回車鍵***Enter***執行命令。執行命令正確無誤之後,就會有注冊動態鏈shmedia.dll成功的提示。
解決辦法:如是使用播放器軟體,可以禁止視訊加速,如是網頁看視訊,右鍵點選視訊,取消硬體加速選中即可。
台式電腦宕機或者卡住了現象5、
關閉自動搜尋網路印表機
某個指令導致系統搜尋網路印表機,而網路資源並不存在,但系統還是堅持不懈地搜尋,也會造成未響應的假死現象。通常的個人單機電腦沒必要開啟網路印表機這個功能。
解決辦法:開始→控制面板→資料夾選項→檢視→取消 自動搜尋網路資料夾和印表機 的勾選→確定
台式電腦宕機或者卡住了解決方法:
1、以上分享的都是未響應、假死現象出來之後所採取的臨時措施,這個屬於治標不治本,很多情況都是作業系統中資源緊張引起的。可以而且應該採取措施,防範於未然。比如每台電腦只裝一個安全軟體,防毒軟體許可權都很大,如果它們之間爭奪資源,對作業系統的正常執行會造成巨大的影響,乃至作業系統癱瘓。防範固然很重要,但是防範過度就會走向另一個極端——宕機!
2、清理隨機啟動項***包括計劃任務和多餘的服務***,任何自帶程式,都可以等到需要的時候再開啟它。而沒有必要隨機啟動,因為很多軟體安裝的時候會預設隨機啟動這個程式,如果不加甄別,一路點下一步進行預設安裝,就會讓這個程式隨機啟動的圖謀得逞,從而導致作業系統的資源被佔用。軟體對作業系統的資源渴望是多多 益善,而作業系統能給的資源總是能省則省。可以在執行中輸入:msconfig 回車開啟系統配置實用程式→啟動、服務→去除冗餘→確定
3、如果之前使用驅動精靈和驅動人生之類的自動更新軟體重新整理了裝置驅動,再開機出現藍屏、假死現象,可以設法解除安裝這個更新的驅動程式,返回到原來的驅動程式。驅動不是最新最好,而是合適才好!尤其是需要安裝通過了微軟認證的WHQL認證的驅動,才不會彈出異常的提示。
4、另外,導致這種問題的原因有可能是電源管理計劃的設定,系統預設的電源管理有三種:節能、平衡、高效能,如果硬碟設定成了過一定時間關閉的話,一定的條件下也會導致系統異常。處理方法:開始→控制面板→電源管理→為家用/辦公桌設定電源使用方案 ,為接通電源或者使用電池中的系統待機、關閉硬碟、關閉顯示器三個選項設成更長時間,或者乾脆設定成從不就可以了。