tin học

Bùi Trung Hiếu
(hieupro1269)

New Member
registry

học tin đi nào
đầu tiên chúng ta hãy học về Registry-trái tim của hệ điều hành
Gọi lên bằng lệnh:start\run\regedit
Bắt đầu:
Disk Drivers
Thay đổi thông số cảnh báo số % không gian đĩa cứng còn trống (Windows XP).

Giá trị mặc định là 10%.Key: HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\ LanmanServer\ Parameters
Name: DiskSpaceThreshold.
Type: REG_DWORD (DWORD Value)
Value: 0 - 99 percent (Default is 10)
Điều khiển thông số hạn chế không gian cho Master File Table.
Giá trị mặc định là 1.Key: HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Control\ FileSystem
Name: NtfsMftZoneReservation
Type: REG_DWORD (DWORD Value)
Value: 1 (default) - 4 (maximum)

Tắt chế độ ghi đĩa CD trực tiếp từ Window Explorer (Windows Xp)
Trong Windows XP cho phép bạn ghi một đĩa CD dễ dàng bằng cách kéo những tập tin hoặc thư mục rồi thả vào biểu tượng đĩa CDR. Bạn có thể tắt chế độ này đi.
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer
Name: NoCDBurning
Type: REG_DWORD (DWORD Value)
Value: (0 = Allow CDR, 1 = Disable CDR)

Thay đổi tên và biểu tượng của ổ đĩa.
Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ DriveIcons
Name: Default
Type: REG_SZ (String Value)

Chỉ định chương trình chơi đĩa CD Audio.

Mặc định khi bạn đưa đĩa Cd Audio vào đĩa thì CD Player của Microsoft sẽ mở đĩa lên. Nhưng nếu có chương trình khác hay hơi bạn có thể chỉ định cho chương trình đó thay thế.
Key: HKEY_CLASSES_ROOT\ AudioCD\ Shell\ Play\ Command
Name: (Default)
Type: REG_SZ (String Value)
Value: Command-line to Execute - nhập vào đường dẫn của chương trình chơi đĩa bạn muốn.

Điền khiển chế độ tự động mở đĩa CD khi đưa đĩa vào ổ.
Key: HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ CDRom.
Name: Autorun
Type: REG_DWORD (DWORD Value)
Value: (0=disable, 1=enable)

EXPLORER

Ẩn mục Distributed File System trong Windows Explorer
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer.
Name: NoDFSTab
Type: REG_DWORD (DWORD Value)
Value: (0 = default, 1 = enable restriction)

Ẩn mục Security
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer.
Name: NoSecurityTab
Type: REG_DWORD (DWORD Value)
Value: (0 = default, 1 = enable restriction)

Ẩn mục Hardware User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer.
Name: NoHardwareTab
Type: REG_DWORD (DWORD Value)
Value: (0 = default, 1 = enable restriction)

Tắt Menu New.
Tìm đến khoá sau và thêm cho nó dấu `-` sau dấu `{` :
System Key: HKEY_CLASSES_ROOT\ CLSID\ {D969A300-E7FF-11d0-A93B-00A0C90F2719}

INTERNET EXPLORER


Ẩn một số nút trên thanh ToolBar của Internet Explorer.

Cần tạo một khoá với tên là `SpecifyDefaultButtons` và gán giá trị cho nó là 1 để thực hiện cêế độ ẩn một số nút trong danh sách liệt kê bên dơới, bước kế tiếp muốn ẩn một nút bất kỳ trong danh sách bên dưới thì bạn cần tạo một khoá mới với tên nút đó và gán cho nó giá trị là 2.
- Btn_Back

- Btn_Forward

- Btn_Stop

- Btn_Refresh

- Btn_Home

- Btn_Search

- Btn_Favorites

- Btn_Folders

- Btn_Media

- Btn_History

- Btn_Fullscreen

- Btn_Tools

- Btn_MailNews

- Btn_Size

- Btn_Print

- Btn_Edit

- Btn_Discussions

- Btn_Cut

- Btn_Copy

- Btn_Paste

- Btn_Encoding

- Btn_PrintPreview


User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: SpecifyDefaultButtons
Type: REG_DWORD (DWORD Value).

Không cho phép thay đổi (Customize) trên Toolbar của Internet Explorer.

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoToolbarCustomize
Type: REG_DWORD (DWORD Value)
Value: (1 = enable restriction)

Không cho hiện nút Option trong Menu Tool của Internet Explorer:User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoBandCustomize
Type: REG_DWORD (DWORD Value)
Value: (1 = enable restriction)

Không cho hiện một số nút trên Menu Help:

NoHelpMenu - Disable the entire help menu
NoHelpItemNetscapeHelp - Remove the ``For Netscape Users`` menu item
NoHelpItemSendFeedback - Remove the ``Send Feedback`` menu item
NoHelpItemTipOfTheDay - Remove the ``Tip of the Day`` menu item
NoHelpItemTutorial - Remove the ``Tour`` (Tutorial) menu item

User Key: HKEY_CURRENT_USER\ Software\ Policies\ Microsoft\ Internet Explorer\
Restrictions
System Key: HKEY_LOCAL_MACHINE\ Software\ Policies\ Microsoft\ Internet Explorer\
Restrictions
Type: REG_DWORD (DWORD Value)
Value: (0 = restriction disabled, 1 = restriction enabled)

Không cho phép tải file từ Internet về:
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\
Internet Settings\ Zones\ 3
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\
Internet Settings\ Zones\ 3
Name: 1803
Type: REG_DWORD (DWORD Value)
Value: (0 = downloads enabled, 3 = downloads disabled)

Không cho phép truy file từ một đường dẫn Internet.

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoFileUrl
Type: REG_DWORD (DWORD Value)
Value: (0 = Enable File URLs, 1 = Disable)

Ẩn một số nút trong Internet Explorer:

NoBrowserClose - Disable the option of closing Internet Explorer.
NoBrowserContextMenu - Disable right-click context menu.
NoBrowserOptions - Disable the Tools / Internet Options menu.
NoBrowserSaveAs - Disable the ability to Save As.
NoFavorites - Disable the Favorites.
NoFileNew - Disable the File / New command.
NoFileOpen - Disable the File / Open command.
NoFindFiles - Disable the Find Files command.
NoSelectDownloadDir - Disable the option of selecting a download directory.
NoTheaterMode - Disable the Full Screen view option.
NoAddressBar - Disable the address bar.
NoToolBar - Disable the tool bar.
NoToolbarOptions - Disable the ability to change toolbar selection.
NoLinksBar - Disable the links bar.
NoViewSource - Disable the ability to view the page source HTML.
NoNavButtons - Disables the Forward and Back navigation buttons
NoPrinting - Remove Print and Print Preview from the File menu.
NoBrowserBars - Disable changes to browsers bars.
AlwaysPromptWhenDownload - Always prompt user when downloading files.
User Key: HKEY_CURRENT_USER\ Software\ Policies\ Microsoft\ Internet Explorer\
Restrictions
System Key: HKEY_LOCAL_MACHINE\ Software\ Policies\ Microsoft\ Internet Explorer\
Restrictions
Type: REG_DWORD (DWORD Value)
Value: (0 = disable restriction, 1 = enable restriction)

Dấu một số tính năng trong Internet Options trong Control Panel

Advanced - Prevent changes to advanced settings
Autoconfig - Prevent changes to Automatic Configuration
Cache - Prevent changes to temporary file settings
CalendarContact - Prevent changes to calender and contacts
Certificates - Prevent changes to security certificates
Check_If_Default - Prevent changes to default browser check
Colors - Prevent Color changes
Connection Settings - Prevent changes to connection settings
Connection Wizard - Disable the Connection Wizard
Fonts - Disable font changes
History - Disable changes to History settings
HomePage - Disable changes to Home Page settings
Languages - Disable Language changes
Links - Disable Links changes
Messaging - Disable Messaging changes
Profiles - Disable changes to Profiles
Proxy - Disable changes to Proxy settings
Ratings - Disable Ratings changes
Wallet - Disable changes to Wallet settings
User Key: HKEY_CURRENT_USER\ Software\ Policies\ Microsoft\ Internet Explorer\
Control Panel
System Key: HKEY_LOCAL_MACHINE\ Software\ Policies\ Microsoft\ Internet Explorer\
Control Panel
Type: REG_DWORD (DWORD Value)
Value: (0 = disable restriction, 1 = enable restriction)

Dấu một số tính năng trong Internet Options trong Control Panel

Accessibility - disables all options under Accessibility
GeneralTab - removes General tab
SecurityTab - removes Security tab
ContentTab - removes Content tab
ConnectionsTab - removes Connections tab
ProgramsTab - removes Programs tab
PrivacyTab - removes Privacy tab
AdvancedTab - removes Advanced tab
CertifPers - prevents changing Personal Certificate options
CertifSite - prevents changing Site Certificate options
CertifSPub - prevents changing Publisher Certificate options
SecChangeSettings - prevents changing Security Levels for the Internet Zone
SecAddSites - prevents adding Sites to any zone
Privacy Settings - prevents changs to privacy settings
FormSuggest - disables AutoComplete for forms
FormSuggest Passwords - prevents Prompt me to save password from being displayed
Connwiz Admin Lock - disables the Internet Connection Wizard
Settings - prevents any changes to Temporary Internet Files
ResetWebSettings - disables the Reset web Setting button
User Key: HKEY_CURRENT_USER\ Software\ Policies\ Microsoft\ Internet Explorer\
Control Panel
System Key: HKEY_LOCAL_MACHINE\ Software\ Policies\ Microsoft\ Internet Explorer\
Control Panel
Type: REG_DWORD (DWORD Value)
Value: (0 = disable restriction, 1 = enable restriction)

Xoá những địa chỉ web bạn đã vào. Vào Registry tìm đến khoá bên dưới, xoá các nhánh con bên cửa sổ bên phải, trừ Default
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ TypedURLs

Không cho cài chương trình từ một website nào đó. Bạn tạo một khoá mới với đường dẫn bên dưới. HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Internet Settings\ ZoneMap\ Domains\ restricted.com

Under the sub-key create a new DWORD value called ``*`` and set it to equal ``4``

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\
Internet Settings\ ZoneMap\ Domains
Name: *
Type: REG_DWORD (DWORD Value)
Value: (4 = restricted)

Điều khiển chế độ thông báo lỗi.

System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Internet Explorer\ Main
Name: IEWatsonDisabled, IEWatsonEnabled
Type: REG_DWORD (DWORD Value)
Logon & Authentication


Không cho Screensaver chạy trong khi Logon:

Khi chưa Logon vào hệ thống, nếu để máy ở trạng thái `không chịu đưa chìa vào mở khoá cửa` quá lâu thì Screensaver sẽ chạy. Ta có thể tắt chúng.

User Key: HKEY_USERS\ .DEFAULT\ Control Panel\ Desktop
Name: ScreenSaveActive
Type: REG_SZ (String Value)
Value: (0 = disabled, 1 = enabled)

Hiển thị nút Shutdown trên hộp thoại Dialog:

Rất cần để những kẻ tò mò mở máy bạn lên mà không vào được sẽ nhấn nút Shutdown ngay trước mặt thay vì rút nguồn nguy hại đến máy.

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: ShutdownWithoutLogon
Type: REG_SZ (String Value)
Value: (0 = disabled, 1 = enabled)

Cho phép tự động Logon:

Cho phép người dùng sử dụng chế độ tự động đăng nhập vào hệ thống sau khi khởi động.

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: ForceAutoLogon
Type: REG_SZ (String Value)
Value: (0 = disabled, 1 = enabled)

Tắt chế độ lưu mật khẩu:

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Network
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Network
Name: DisablePwdCaching
Type: REG_DWORD (DWORD Value)
Value: (0 = disabled, 1= enabled)

Bắt buộc mật khẩu là các chữ a-z và số. Không cho phép các ký tự khác:

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Network
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Network.
Name: AlphanumPwds
Type: REG_DWORD (DWORD Value)
Value: (0 = disabled, 1= enabled)

Ẩn nút Change Password.

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ System.
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ System.
Name: DisableChangePassword
Type: REG_DWORD (DWORD Value)
Value: (0 = disabled, 1 = enabled)

Tắt chế độ khoá nút WorkStation:
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ System
System Key: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Policies\
System
Name: DisableLockWorkstation
Type: REG_DWORD (DWORD Value)
Value: (0 = disabled, 1 = enabled)

Tắt chế độ nhấn và giữ phím Shift để không cho chạy một số chương trình tự động khi logon:

System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: IgnoreShiftOverride
Type: REG_SZ (String Value)
Value: (1 = Ignore Shift)

Yêu cầu người dùng phải nhấn tổ hợp phím Ctrl + Alt + Del trước khi đăng nhập vào hệ thống:

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon.
Name: DisableCAD
Type: REG_DWORD (DWORD Value)
Value: (0 = Require Ctrl+Alt+Delete, 1 = Disable)

Thay đổi dòng thông báo trên hộp thoại Logon và hộp thoại Security:

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: Welcome
Type: REG_SZ (String Value)
Value: Text to display - nội dung muốn hiển thị

Không cho phép hiện tên người dùng cuối cùng:

User Key: HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\ System
System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\ System
Name: DontDisplayLastUserName
Type: REG_DWORD (DWORD Value)
Value: (1 = remove username)

Hạn chế số người dùng tự động đăp nhập vào hệ thống:

System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: AutoLogonCount
Type: REG_DWORD (DWORD Value)
Value: Number of Automatic Logins

Chỉ định số người đăng nhập vào hệ thống được lưu vết:

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon Name: CachedLogonsCount
Type: REG_SZ (String Value)
Value: 0 - 50 (0 = disabled, 10 = default)

Cho phép bung hộp thoại đòi nhập Password khi UnLock máy và thoát khỏi Screen Saver:

System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: ForceUnlockLogon
Type: REG_DWORD (DWORD Value)
Value: 0 = default authentication, 1 = online authentication

Hiển thị hộp thông báo trước khi Logon:

Windows 95, 98 and Me:HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Winlogon
Windows NT, 2000 and XP:HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon

Name: LegalNoticeCaption, LegalNoticeText
Type: REG_SZ (String Value)
- LegalNoticeCation: Thanh tiêu đề.
- LegalNoticeText: Nội dung của thông báo.

Hiển thị dòng thông báo trong cửa sổ đăng nhập:

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon
Name: LogonPrompt - nội dung thông báo, lời chào,.....
Type: REG_SZ (String Value)

Cho phép không xây dựng Protables trước khi đăng nhập vào hệ thống:

User Key: HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\
System
System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\ System
Name: UndockWithoutLogon
Type: REG_DWORD (DWORD Value)
Value: (0 = disabled, 1 = enabled)

Tự động Logon vào hệ thống:

Tạo một dòng mới `DefaultUserName` và set username mà bạn muốn tự động Logon

Tạo một dòng mới `DefaultPassword` và set password của username đã nhập vào ở trên

Tạo một dòng mới `DefaultDomainName` và set domain cho user. Ignore this value if the NT box is not participating in NT Domain security.

Tạo một dòng mới `DefaultDomainName` và set domain cho user. Ignore this value if the NT box is not participating in NT Domain security.

Tạo một dòng mới có giá trị là `AutoAdminLogon` and set `1` to enable auto logon or `0` to disable it.

For Windows 2000 the additional ForceAutoLogon setting must be enabled to stop the tweak from resetting on reboot.

System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon Name: AutoAdminLogon
Type: REG_SZ (String Value)
Value: (0=disable, 1=enable)

Chỉ định chiều dài tối thiểu của mật khẩu:

User Key: HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\
Network
System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\
Network
Name: MinPwdLen
Type: REG_BINARY (Binary Value)

MAIN BOARD - CPU

Hiển thị thông tin về BIOS:

Key: HKEY_LOCAL_MACHINE\ HARDWARE\ DESCRIPTION\ System
Name: SystemBiosDate, SystemBiosVersion, VideoBiosDate
Type: REG_SZ (String Value)

Hiển thị thông tin về CPU:


Key: HKEY_LOCAL_MACHINE\ HARDWARE\ DESCRIPTION\ System\ CentralProcessor\ 0
Name: ~MHz, Identifier, VendorIdentifier

Security

Ẩn biểu tượng My Computer trên Start Menu và Desktop:
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
NonEnum
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ NonEnum
Name: {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Type: REG_DWORD (DWORD Value)
Value: (0 = show, 1 = hide)

Ẩn các ổ đĩa trong My Computers:

Chúng ta có thể ẩn các ổ đĩa từ A đến Z, kể cả các ổ mạng. 0 là hiện tất cả. 1 là ẩn.Bạn muốn ẩn ổ nào thì cộng các số thập phân này lại. Ví dụ muốn ẩn ổ A và C thì cho giá trị của khoá NoDrives là 5 = 4(ổ C) + 1(ổ A).

A: 1, B: 2, C: 4, D: 8, E: 16, F: 32, G: 64, H: 128, I: 256, J: 512, K: 1024, L: 2048, M: 4096, N: 8192, O: 16384, P: 32768, Q: 65536, R: 131072, S: 262144, T: 524288, U: 1048576, V: 2097152, W: 4194304, X: 8388608, Y: 16777216, Z: 33554432, ALL: 67108863

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoDrives
Type: REG_DWORD (DWORD Value)

Tắt cửa sổ Task Manager:
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
System
Name: DisableTaskMgr
Type: REG_DWORD (DWORD Value)
Value: (0 = default, 1 = disable Task Manager)

Hạn chế một số thay đổi các thư mục riêng của người dùng:
· DisablePersonalDirChange - Hạn chế thay đổi thư mục My Documents.

· DisableMyPicturesDirChange - Hạn chế thay đổi thư mục My Pictures.

· DisableMyMusicDirChange - Hạn chế thay đổi thư mục My Music

· DisableFavoritesDirChange - Hạn chế thay đổi thư mục Favorites

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer.
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer.
Name: DisablePersonalDirChange, DisableMyPicturesDirChange, DisableMyMusicDirChange, DisableFavoritesDirChange.
Type: REG_DWORD (DWORD Value)
Value: (0 = allow changes, 1 = restrict changes)

Tắt chế độ theo dõi người dùng:

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoInstrumentation
Type: REG_DWORD (DWORD Value)
Value: (1 = enable restriction)

Không cho phép dùng công cụ Registry Editor để chỉnh sửa Registry:

User Key: HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\
System
System Key: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\
System
Name: DisableRegistryTools
Type: REG_DWORD (DWORD Value)
Value: (0 = allow regedit, 1 = disable regedit)

Tắt lệnh Shut Down:

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoClose
Type: REG_DWORD (DWORD Value)
Value: (0 = shutdown enabled, 1 = shutdown disabled)

Ngăn cản truy cập thành phần cập nhật Windows.
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoWindowsUpdate
Type: REG_DWORD (DWORD Value)
Value: (0 = default, 1 = disabled)

Không cho phép dùng phím Windows:

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: NoWinKeys
Type: REG_DWORD (DWORD Value)
Value: (0 = disable restriction, 1 = enable restriction)

Xoá Page File khi tắt máy:

System Key: HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Session Manager\
Memory Management
Name: ClearPageFileAtShutdown
Type: REG_DWORD (DWORD Value)
Value: (0 = disabled, 1 = enabled)

Tắt các lệnh Run đã chỉ định trong Registry:

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: DisableLocalMachineRun, DisableLocalMachineRunOnce, DisableCurrentUserRun, DisableCurrentUserRunOnce
Type: REG_DWORD (DWORD Value)
Value: (0 = enable run, 1 = disable run)

Hạn chế một số ứng dụng mà các người dùng có thể chạy:

Tạo các khoá mới tên là 1, 2, 3, ...... với kiểu REG_SZ và nhập đường dẫn vào cho giá trị các khoá đó để chỉ định các chương trình không cho phép người dùng chạy.

User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\
Explorer
Name: DisallowRun
 
Chỉnh sửa lần cuối:
Cái này bây giờ chưa cần biết lắm đâu, đọc vào chỉ thêm loạn thui!
Cái cần thiết bây giờ là Pascal và C ...
 
Ặc, đọc xong thấy hiểu hiểu nhưng chẳng nhớ gì cả :|
 
Hix,cám ơn bạn Hiếu li1,mình cũng thích tin học lắm,nhưng góp ý bạn tô đậm cái dòng tiêu đề từng mục lên thôi.
À cho mình hỏi luôn bạn có phần mềm nào dịch tự động 1 văn bản tiếng anh ra tiếng việt không?
 
Cậu dùng Evtran mà dịch,nó dịch hay lắm nhưng chỉ dịch được 1 đoạn ngắn thôi,đoạn dài thì...chịu
 
hix,tớ ngại tìm lắm,các cậu cho tớ đừong link
 
các ông lên vdict.com í ngon ra phết mà cái registry này có phải là tin học đâu nó thuộc về phần thủ thuật tin học nhiều hơn nói đến tin học người ta thường nói đến về lập trình:C,C++,java,..., mạng:ccna ccnp,thiết kế web........,.............
em trình còi bi giờ mói lõm bõm đi học về ccna và thiết kế web có bác nào pro dạy em cái c,java
 
Chỉnh sửa lần cuối:
tiếp tục các thủ thuật window
đây là cách giúp tăng tốc khởi động máy tính bằng cách chỉnh sửa registry
mở notepad,copy đoạn mã sau vào:
Windows Registry Editor Version 5.00


[HKEY_CURRENT_USER\.DEFAULT\Control Panel\Desktop]
"AutoEndTasks"="1"
"MenuShowDelay"="0"
"HungAppTimeout"="10"
"WaitToKillAppTimeOut"="10"
"WaitToKillServiceTimeout"="10"
"PageShowDelay"="0"

[HKEY_CURRENT_USER\Control Panel\Desktop]
"AutoEndTasks"="1"
"MenuShowDelay"="0"
"HungAppTimeout"="10"
"WaitToKillAppTimeOut"="10"
"WaitToKillServiceTimeout"="10"
"PageShowDelay"="0"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOpt imizeFunction]
"Enable"="N"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Explorer]
"AlwaysUnloadDll"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\OptimalLayout]
"EnableAutoLayout"=dword:00000001


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management\PrefetchParameters]
"EnablePrefetcher"=dword:00000005
Sau đó lưu lại và đổi tên thành tangtoc.reg
sau đó click đúp vào file vừa tạo
yes 2 lần
xong.



Nếu ai không biết cách đổi tên thì down file này về,click đúp vào,yes 2 lần là xong
 
tiếp tuc nào ;;)
bài viết này dành cho những ai hay lướt web...đen(không có tui trong đó đâu đấy:D )
Khi truy cập vào một số website có tính năng tự động kích họat và cài đặt các phần mềm có hại như spyware, trojan thì việc khắc phục hậu quả vô cùng khó khăn.


Để tránh trường hợp này bạn có thể áp dụng một thủ thuật nhỏ với cách thực hiện như sau:

Đầu tiên, bạn kích họat trình quản lý Registry Editor của hệ điều hành Windows bằng cách kích chuột vào Start, Run, gõ lệnh regedit và nhấn Enter. Tiếp đó, bạn vào theo đường dẫn sau: HKEY_LOCAL_MACHINESoftwareMicrosoftWindows
CurrentVersionInternetSettingsoneMapDomain.

Tiếp đó, bạn nhấn phải chuột vào vùng trống bên phải và chọn và đặt tên cho nó dựa theo website mà bạn muốn chặn không cho tự ý cài đặt phần mềm. Ví dụ như muốn chặn từ website: www.tinhdonph.....g.com thì bạn chỉ việc nhận vào tinhdonph...g.com mà thôi. Sau đó, nhấn phải chuột vào khóa vừa tạo và chọn Key --> DWORD Value, đặt tên cho nó là *. Sau đó nhấn đúp vào nó và nhận giá trị 4 vào ô Value Data.

Cuối cùng là đóng Registry Editor và khởi động lại máy tính để những thay đổi có hiệu lực.
 
chú Hiếu có chỗ mà poz mấy cái này rồi nhé;))
nhưng mà poz đi poz lại hình như là bị mod del đấy:-?
 
post bài mới đây
Đây là bài tớ sưu tập được trên mạng về lỗi"Error 200: division by zero"-1 lỗi đáng ghét nhất trong tất cả các lỗi tớ từng gặp
đây là nguyên văn:
Trong thời gian qua, toà soạn đã nhận được rất nhiều thắc mắc của bạn đọc về vấn đề lỗi khi chạy Borland Turbo Pascal 7.0 trên các máy tính tốc độ cao (Pentium II, AMD K6,...). Borland (nay đổi tên thành Inprise) lại không có giải pháp chính thức cho vấn đề này mà người dùng phải "ráng tự lo lấy". Bạn có thể lên Internet lấy "trọn gói" những patch file màạ người dùng trên toàn thế giới "đóng góp" về dùng và không cần quan tâm cách làm. Trong trường hợp muốn tìm hiểu và "tự sản xuất" thì mời bạn xắn tay lên!

Như một số bạn sử dụng Borland Pascal 7.0 đã nhận xét trong số báo PCWorld tháng 3 năm 1999, với các bộ xử lý Intel Pentium Celeron, một số chương trình Pascal sau khi dịch và cho thực thi thì nhận được thông báo lỗi: Error 200: division by zero. Nếu đem đúng chương trình source cho dịch lại với Turbo Pascal 5.5 thì lại không có vấn đề gì xảy ra.

Điều khá đau lòng cho chúng ta là Borland, công ty tạo ra trình biên dịch nổi tiếng Turbo Pascal, sau một thời gian hoạt động thua lỗ đã quyết định đổi tên thành Inprise Inc. và bỏ rơi một số phần mềm của mình trong đó có Turbo Pascal. Version cuối cùng của Pascal do Borland đưa ra là 7.0. Việc cập nhật lên version mới hơn là điều không thực hiện được.

Là sinh viên của giai đoạn đầu thập kỷ 90, tôi đã khá viết khá nhiều chương trình bằng Turbo Pascal. Cách đây vài tháng, khi nâng cấp máy tính của mình lên Pentium Celeron 333, tôi đã nhận được thông báo lỗi tương tự như trên. Với một số bạn, nếu Turbo Pascal từ chối chạy với Celeron, viết lại chương trình bằng một ngôn ngữ khác có lẽ cũng chẳng thành vấn đề. Tuy nhiên, trong trường hợp của tôi, thời gian để dịch số source đã viết sang một ngôn ngữ khác như C hay C++ sẽ rất lớn. Chính vì vậy, tôi quyết định tìm hiểu nguyên nhân và cách khắc phục vấn đề trên. Trong bài viết này, xin chia sẻ kinh nghiệm của tôi cùng các bạn. Nếu không quan tâm tới nguyên nhân xâu xa của thông báo lỗi trên, bạn có thể bỏ qua mục Nguyên Nhân và đi thẳng tới phần Cách giải quyết.

Trái lại, nếu là người yêu thích ngôn ngữ Pascal và muốn đi sâu vào ngôn ngữ này, xin bỏ một chút thời gian cho mục Nguyên nhân, nơi mọi nguyên căn của vấn đề trên được trình bày.

Nguyên nhân

Trước hết, để có thể tìm được vị trí gây nên lỗi, chúng ta hãy dùng đoạn chương trình đơn giản sau:
Program Test;
Uses Crt;
Begin
Writeln('Hello');
End.

Rõ ràng, chương trình này chỉ viết chữ Hello lên màn hình. Khi các bạn chạy chương trình sẽ nhận được thông báo lỗi: Runtime error 200 at XXXX:0091. XXXX là địa chỉ segment gây lỗi, có thể khác với mỗi máy tùy theo các chương trình đã nạp trong bộ nhớ. 0091 là offset của đoạn mã lệnh gây nên lỗi.

Nếu bạn bỏ dòng thứ 2: Uses Crt thì chương trình lại chạy một cách "ngon lành". Sở dĩ chúng ta có thể bỏ dòng này là vì hàm writeln duy nhất dùng trong chương trình vừa thuộc unit SYSTEM ngầm định, vừa thuộc unit CRT. Trong trường hợp dùng lệnh Uses CRT, CRT.Writeln sẽ được gọi. Trái lại, SYSTEM.Writeln sẽ được sử dụng nếu bạn không viết Uses CRT. Vậy, lỗi có liên quan tới unit CRT.

Giữ nguyên dòng Uses CRT, và thêm dòng:
SYSTEM.writeln('System Hello')

vào trước dòng writeln('Hello'). Khi chạy chương trình, bạn cũng sẽ chẳng thấy dòng System Hello hiện ra, mà hệ thống vẫn đưa ra câu báo lỗi tương tự. Như vậy, phần mã gây lỗi nằm trước mã lệnh SYSTEM.Writeln(System Hello).

Từ 2 nhận xét trên, có thể phán đoán ngay phần mã gây lỗi là phần khởi động của unit CRT-phần được thực hiện đầu tiên khi chương trình Test được nạp vào bộ nhớ.

Nếu bạn dịch chương trình Test ra file EXE rồi tiến hành thi hành ngoài DOS thì sẽ nhận được thêm một chút thông tin về địa chỉ gây lỗi: Runtime error 200 at XXXX:0091. Error 200 theo Borland Pascal Help là lỗi Divide by zero (chia cho 0). Chương trình của chúng ta có cộng trừ nhân chia gì đâu mà gây nên lỗi này?

Như các bạn cũng biết, nếu dùng một unit nào đó, khi bắt đầu chạy chương trình, phần mã khởi động của Unit sẽ được thực hiện. Bằng cách sử dụng Turbo Debugger (tại dấu nhắc của Dos, nhập TD TEST), bạn có thể quan sát dễ dàng quan sát được các mã khởi động của unit SYSTEM và CRT vào đầu chương trình dưới dạng các lệnh Call Far:
CALL XXXX:0000 ; Khởi động unit system
CALL YYYY:000D ; Khởi động unit Crt

Trong Turbo Debugger, ấn F8 (Step Over) để thực hiện 1 lần lệnh thứ nhất và F7 (Trace) để bước vào chạy từng bước lệnh CALL thứ hai-lệnh khởi động CRT. Sau đó, chọn mục Run / Execute To, nhập offset địa chỉ cần tới là 0091 (hex), bấm Enter. Con trỏ sẽ hiện lên ở ngay trước vị trí đoạn mã lệnh gây lỗi( XXXX:0091). Nếu nhấn F8 1 lần nữa, Deburger sẽ hiện ra thông báo: Terminated, exit code 200. Để tiện theo dõi, tôi xin trích ra một phần các lệnh có liên quan phía trước và sau lệnh gây lỗi:
CRT_Initialize:
...............................
XXXX:0071: MOV ES,Seg0040
XXXX:0075: MOV DI,OFFSET Timer
XXXX:0078: MOV BL,ES:[DI] ; ES = 0040h, DI = 006Ch
XXXX:007b: @@2: CMP BL,ES:[DI] ; ES:DI = System clocktick
XXXX:007e:JE @@2
XXXX:0080: MOV BL,ES:[DI]
XXXX:0083: MOV AX,-28
XXXX:0086: CWD ; DX = FFFFh, AX = FFE4h
XXXX:0087: CALL DelayLoop
XXXX:008a: NOT AX
XXXX:008c: NOT DX
XXXX:008e: MOV CX,55
XXXX:0091: DIV CX ; Nỳi gờy lửợi
XXXX:0093: MOV DelayCount,AX
DelayLoop:
XXXX:02c6: @@1: SUB AX,1
XXXX:02c9: SBB DX,0
XXXX:02cc: JC @@2
XXXX:02ce: CMP BL,ES:[DI]
XXXX:02d1: JE @@1
XXXX:02d3: @@2: RET

Tôi không muốn bạn "sa lầy" vào hợp ngữ, xin giải thích ý chính của đoạn chương trình này như sau:

Khi phần khởi động của CRT chạy, chương trình sẽ khởi tạo một biến gọi là DelayCount (dạng word 2- byte). Biến này chứa số lần thực hiện các lệnh trong vòng lặp DelayLoop để làm chậm 1 mili giây. Nếu bạn cần delay N mili giây, hệ thống sẽ thực hiện N lần vòng DelayLoop.

Cách xác định DelayCount sẽ dựa vào giá trị xung đếm hệ thống (clocktick) tại địa chỉ 0040:006C (4 byte). Mỗi giây, nhờ kích hoạt của interrupt 08, giá trị tại địa chỉ này sẽ tăng lên 18.2 lần.

Trình biên dịch sẽ đặt vào DX:AX một giá trị cố định và gọi vòng lặp DelayLoop. Trong vòng lặp này, giá trị DX:AX sẽ được thay đổi cho tới khi clocktick của hệ thống thay đổi.

Đó là độ thay đổi của DX:AX trong 1 clocktick (1/18.2s). Để có giá trị này cho 1 mili giây, giá trị DX:AX sẽ được chia cho 55 (xin để ý: 18.2 * 55 = 1000ms=1second).

Đoạn lệnh gây lỗi trong chương trình chính là đoạn chia DX:AX cho CX. Về mặt nguyên tắc, thương số sẽ được chứa trong AX và số dư trong DX. Tuy nhiên, do DX:AX quá lớn, giá trị DX:AX chia cho CX sẽ vượt qua giá trị tối đa của 1 word (FFFFh) và hệ thống phát sinh thông báo lỗi.

Với máy Celeron 333 của tôi, giá trị nhận được khi chạy tới lệnh tại địa chỉ xxxx:008E là DX= 0045h, AX=4EEAh. Do đó, phép chia DX:AX (00454EEAh) cho CX(55=37h) sẽ làm tràn số và gây ra lỗi runtime. Nguyên nhân của vấn đề lỗi rõ ràng có liên quan tới tốc độ CPU. Do CPU chạy quá nhanh, độ biến đổi DX:AX là rất lớn và phép chia DX:AX cho CX bị tràn. CPU trong tầm 200Aạ266MHz có lẽ nằm ở ngưỡng của "vực thẳm" vì DX = 045h (giá trị ứng với Celeron 333MHz) * 266/333 = 37h = 55 (Phép chia DX:AX cho CX sẽ cho ra một giá trị xấp xỉ FFFFh. Do đó, với các hệ thống 200 - 266 MHz nhanh, lỗi trên có thể xuất hiện và với các hệ thống chậm, các bạn có thể chạy Turbo Pascal một cách yên ả). Như bạn có thể thấy, CPU tốc độ 300MHz, 333MHz hoặc cao hơn sẽ gây lỗi (do giá trị DX lớn hơn nhiều so với CX, dẫn tới DX:AX chia CX bị tràn). Như vậy, cách giải quyết của chúng ta sẽ xoay quanh việc làm giảm độ biến đổi DX:AX xuống. Điều này có thể thực hiện bằng cách làm chậm vòng DelayLoop xuống. Bạn có thể thêm 1 vài lệnh làm tiêu tốn CPU clock vào vòng lặp này như tôi thực hiện ở phần sau. Mọi thông báo sẽ chấm dứt và chương trình Pascal của bạn sẽ chạy một cách êm ả.

Cách giải quyết
Mọi vấn đề "đau đầu" nói trên sẽ được giải quyết bằng cách thay đổi nội dung tập tin CRT.TPU. Thông thường, khi bạn khởi động TURBO PASCAL (TP) hay BORLAND PASCAL (BP), CRT.TPU sẽ được hệ thống tự động nạp khi đọc TURBO.TPL (TPL=Turbo Pascal Library). Nhiệm vụ của chúng ta là thay đổi unit CRT trong TURBO.TPL.
Đơn giản nhất, bạn có thể chép tập tin TURBO.TPL từ tòa soạn về và ghi đè lên tập tin TURBO.TPL trong thư mục \BP\BIN (xem như \BP là thư mục Pascal của bạn). Tập tin TURBO.TPL mới chứa mọi thay đổi cần thiết giúp bạn có thể chạy BORLAND PASCAL với bộ xử lý Intel Pentium Celeron (và hy vọng mọi bộ xử lý khác "có vấn đề").
Nếu bạn không thể ghé tòa soạn và có thể truy xuất Internet hay e-mail, xin gửi e-mail cho [email protected],, tôi sẽ gửi file TURBO.TPL lại cho bạn theo dạng attachment.
Và cuối cùng, nếu bạn không thể chép tập tin từ tòa soạn và cũng không có điều kiện sử dụng Internet, nếu cho mình là một lập trình viên Pro, hãy làm như sau:

Trước khi tiến hành các bước sau, hãy lưu lại tập tin TURBO.TPL trong \BP\BIN để đề phòng mọi bất trắc.

Bước 1: Sửa lại nội dung unit CRT

Với một bản cài đầy đủ của Borland Pascal 7.0, bạn sẽ có thư mục \BP\CRT, trong đó có 2 tập tin CRT.ASM và CRT.PAS. Đầu tiên, hãy thay đổi nội dung CRT.ASM như sau (hãy bấm Ctrl Q-L và tìm từ DelayLoop và phần mã sau):
; Delay one timer tick or by CX iterationsDelayLoop:
@@1:
SUB AX,1
SBB DX,0
JC @@2
CMP BL,ES:[DI]
JE @@1
@@2: RET

trở thành:
; Delay one timer tick or by CX iterations
DelayLoop:
@@1:
push ax ; bắt đầu các hàng chèn thêm
push cx push dx
mov ax,0
mov cx,1
mov dx,0
div cx ;với 10 lệnh div cx, DelayCount = 5F0h div cx; đủ cho bạn chạy với CPU có tốc độ < 8GHz
div cx ; về mặt lý thuyết.
div cx
div cx
div cx
div cx
div cx
div cx
div cx
pop dx
pop cx
pop ax ; kết thúc các hàng chèn thêm
SUB AX,1
SBB DX,0
JC @@2
CMP BL,ES:[DI]
JE @@1
@@2: RET

Như tôi có trình bày ở phần trên, các dòng chèn thêm không thực hiện bất cứ một lệnh gì mà chỉ đơn thuần là làm chậm vòng DelayLoop lại. Điều này không có nghĩa là đồng hồ hệ thống sẽ chậm lại mà chỉ đơn thuần làm chậm vòng DelayLoop và giảm số lần lặp xuống.

Lệnh nguyên thủy SUB và SBB của vòng lặp được giữ nguyên, các lệnh DIV (sau khi lưu nội dung thanh ghi AX, CX, DX bằng loạt lệnh PUSH) nhằm làm chậm hơn vòng lặp. Sở dĩ tôi chọn các lệnh này là vì DIV là lệnh tiêu tốn nhiều clock của CPU (lệnh mất nhiều thời gian thực hiện). Bạn có thể thêm số lần DIV nếu cảm thấy cần thiết. Cuối cùng, loạt lệnh POP hoàn trả lại nội dung các thanh ghi.

Bước 2. Chép tập tin SE.ASM từ thư mục \BP\SYS vào thư mục \BP\CRT. Tập tin SE.ASM chứa một số định nghĩa cho quá trình dịch các Unit của Borland (hay Turbo) Pascal.

Bước 3. Tiến hành dịch CRT.ASM bằng lệnh:

\BP\BIN\TASM CRT.ASM

Máy sẽ phát ra một vài cảnh báo về cách sử dụng tên biến. Cứ "nhắm mắt làm ngơ", chẳng có gì nghiêm trọng đâu.

Bước 4. Chạy Borland Pascal và tiến hành dịch (bấm F9) \BP\CRT\CRT.PAS để tạo ra CRT.TPU. Chép CRT.TPU vào thư mục \BP\BIN.

Bước 5. Chuyển thư mục hiện thời qua \BP\BIN

Xóa unit CRT trong TURBO.TPL bằng lệnh:

TPUMOVER TURBO.TPL -CRT

Sau đó, đưa unit CRT mới sửa vào TURBO.TPL

TPUMOVER TURBO.TPL +CRT

TURBO.TPL đã sẵn sàng. Hãy khởi động lại Borland Pascal. Hy vọng rằng mọi hàm của bạn đều được thực hiện một cách chính xác và Turbo Pascal sẽ chẳng còn phát ra những thông báo lỗi khó chịu "Run time error 200" khi bạn sử dụng unit CRT nữa.

Giải pháp cho các chương trình Pascal đã biên dịch nhưng không còn source

Chắc rằng trong số các chương trình bạn đã biên dịch bằng Borland Pascal 7, một số chương trình sử dụng unit CRT cũng sẽ gặp phải lỗi Division Error kể trên. Nếu các bạn còn giữ source, biên dịch lại chương trình với unit TURBO.TPL đã hiệu chỉnh không phải là "chuyện lớn". Thế nhưng phải làm thế nào nếu bạn không còn hay không có source các chương trình trên.

Để ý rằng do chương trình EXE đã được dịch, việc thay đổi vòng lặp DelayLoop để không ảnh hưởng tới các phần khác của chương trình là không thực hiện được. Do đó, chúng ta cần thay đổi trực tiếp đoạn mã lệnh gây lỗi.

Giải pháp tôi xin đề cử tới các bạn là thay đoạn lệnh:

XXXX:008e: mov CX,55

XXXX:0091: div CX

bằng một lệnh đơn giản: mov AX,0FFFFh vì FFFFh là giá trị tối đa mà DelayCount (biến dạng word 2 byte) có thể nhận được. Tuy nhiên, để không làm biến đổi địa chỉ các phần khác, bạn nhớ đặt thêm 1 lệnh 2 byte trước lệnh move này (do 2 lệnh nguyên thủy chiếm 5 byte bộ nhớ còn lệnh mov AX,0FFFFh chỉ chiếm 3 byte. Giải pháp này dẫn tới việc nếu bạn dùng hàm delay, máy tính sẽ chờ ít hơn (nhanh hơn) so với thời gian bạn yêu cầu, tuy nhiên trong đa số các trường hợp, điều này không dẫn tới hậu quả gì nghiêm trọng. Để tránh sự phiền hà khi tìm kiếm và thay đổi phần mã gây lỗi, tôi có kèm thêm chương trình PATCH.EXE (có thể chép tại Tòa Soạn PCW). Chương trình này sẽ tự động thực hiện việc thay đổi đoạn mã kể trên. Chỉ có đôi điều bạn cần lưu ý:

1. Chỉ dùng PATCH với các chương trình phát sinh lỗi khi chạy như kể trên.

2. Hãy lưu file nguyên thủy trước khi thực hiện thay đổi.

Chúc bạn thành công!

Lê Nam Thắng

Công ty Samsung Vina

ĐT: (08) 821.1111

Khắc phục lỗi "Runtime Error 200"

trong Turbo Pascal 7.0 trên máy PC tốc độ cao

PCWorld VN 5/99

Borland Turbo Pascal 7 là bộ biên dịch ngôn ngữ lập trình Pascal, nhưng đã nhiều năm, hãng Borland không cập nhật. Trong bộ biên dịch Pascal này có unit CRT mà hầu hết chương trình viết trên Pascal có sử dụng. Các chương trình được biên dịch bằng Borland Turbo Pascal 7 có sử dụng unit CRT sẽ bị kết thúc với thông báo lỗi "Runtime Error 200" trên các máy PC tốc độ cao, ví dụ như máy Pentium II 350MHz bus 100MHz (chúng tôi cũng đã thử nghiệm trên máy Pentium II 350MHz - bus 66MHz thì không thấy lỗi này).

Chương trình được biên dịch bằng Borland Pascal 6 không bị lỗi này, nhưng thời gian trì hoãn trong lệnh delay bị sai hoàn toàn khi chạy trên các máy PC nhanh.

Nguyên nhân

Lỗi xảy ra khi thi hành chương trình có sự khởi tạo unit Crt, trong đó thủ tục delay cũng được khởi tạo. Việc khởi tạo thủ tục delay không chỉ được gọi trong các chương trình có sử dụng thủ tục delay, mà nó còn được gọi trong tất cả các chương trình có sử dụng unit Crt.

Khi khởi tạo thủ tục delay, chương trình sẽ đếm số lần thực hiện một vòng lặp nhỏ trong khoảng thời gian 55 mili giây (thời gian được đo bằng cách đọc bộ đếm thời gian của BIOS ở địa chỉ 40:6C, bộ đếm này nhịp 18,2 lần mỗi giây, nghĩa là mỗi nhịp chiếm 55 mili giây).

Số đếm này được chia lại cho 55 để được số lần thực hiện vòng lặp trong một mili giây. Kết quả được ghi vào trong biến kiểu word (16 bit). Kết quả sẽ được sử dụng làm cơ sở để tính thời gian trì hoãn trong lệnh delay. Khi chạy chương trình trên các máy PC tốc độ cao, số lần lặp trong 55 mili giây quá lớn (hơn 65.535) làm biến này bị tràn (overflow) và gây ra lỗi (ý nghĩa của Runtime Error 200 là lỗi chia cho Zero, nhưng thật ra đó là lỗi tràn biến).

Giải pháp

Dưới đây là vài bộ chương trình có thể tìm trên Internet để khắc phục lỗi này cho những trường hợp tiêu biểu. Cũng cần lưu ý với các bạn rằng đây là những chương trình do người dùng viết, còn Borland cũng như Intel không đưa ra giải pháp nào!

Nếu bạn chỉ có tập tin đã dịch sang file .EXE mà không có chương trình nguồn:

Có thể dùng TpPatch.zip, bộ chương trình sửa trực tiếp trên tập tin thực thi (.EXE) được biên dịch từ Borland Pascal 7, chỉ nên sử dụng cho các chương trình không cần định thời chính xác. Bạn hãy giải nén tập tin này, sau đó thực hiện theo những hướng dẫn cụ thể trong đó.

Nếu bạn sử dụng Turbo Pascal 7.01 hoặc Borland Pascal 7.01 ở chế độ real mode :Trong trường hợp này, bạn có thể tải xuống ba tập tin sau và tùy chọn theo ý bạn.

T7TplFix.zip. Bộ chương trình nâng cấp cho tập tin thư viện Run Time Library (TURBO.TPL), bạn chỉ cần giải nén, chạy chương trình và nó sẽ tự động thực hiện công việc trên.

NewDelay.pas. Là một tập tin dạng Unit thay thế lệnh delay. Nếu dùng Unit này, phải khai báo nó trước Crt và tất cả các Unit khác có sử dụng Unit Crt trong chương trình nguồn.

Rdelay.zip. Giống như NewDelay, nó thay thế lệnh Delay.

Bộ chương trình bppatch. Đây là giải pháp theo chúng tôi thấy là tốt nhất khi tiến hành các thử nghiệm. Giải pháp này bao gồm chương trình nguồn Crt.asm và Crt.pas (mà chúng ta có thể học được nhiều điều nếu so sánh Crt.asm và Crt.pas với chương trình gốc của Borland) cùng các thư viện Turbo.tpl, Tpp.tpl, Tpw.tpl. Hoặc là bạn dịch lại toàn bộ thư viện RTL, hoặc đơn giản là bạn chỉ cần chép các file .TPL vào thư mục BIN và dịch lại các chương trình mà bạn đã viết.

Vài bộ chương trình khác như bp7patch, tp7p5fix, tpbug.

Sau khi tìm hiểu các giải pháp trên, nhiều người trong chúng ta có thể thấy rằng một giải pháp đầy đủ về nhiều mặt (nhất là vấn đề bản quyền) vẫn chưa có, trừ khi Borland (đã đổi tên thành Inprise) phát hành phiên bản mới.

Các bạn có thể nhận được các giải pháp trên bằng cách gởi e-mail đến địa chỉ [email protected] với subject: get fix error 200. Nếu các bạn muốn so sánh Crt.asm và Crt.pas với bản gốc của Borland xin gởi email đến địa chỉ trên có subject: get RTL.
 
Tp này ko del mới lạ
Mod đâu del hộ cái
hoặc chuyển sanh Club Tin học đi chứ
poss nhầm rồi =.=
 
lỗi đó thì down cáitp ở nơi khác về là ngon:D:D
 
cái topic này được lập ra trong lúc em đang chán LÍ vì thế nên nhìn nhầm,đặt không đúng chỗ.Xin lỗi mấy bác lớp Tin,em không có ý định"múa rìu qua mắt thợ"
 
ôi
ấy yên tâm
ấy nên tự hào vì trình độ tin của ấy hơn tớ ;))
ji` chứ mấy cái này thì tớ chịu :)
thank cái nhở :D
 
Back
Bên trên