Sunday, November 1, 2009

API với Registry 2

'------------Word 2000 Options --------

WItem__$(0, 2) = "Đặt thư mục nơi mà AutoRecovery nháp sẽ cất các tệp vào. Đờ phôn ngầm định sẽ là thư mục ..\\Temp."

WItem__$(1, 2) = "Đặt đờ phôn đuôi để Word lưu backup. Thông thường đờ phôn sẽ là .WBK."

WItem__$(2, 2) = "Đặt cỡ lớn nhất của cache đồ hoạ Word bitmap(bằng KB). Nếu bạn sử dụng nhiều đồ hoạ trong văn bản mà lớn hơn bitmap cache có thể cải thiện tốc độ cuộn và vẽ lại. Khi đặt bằng 1 Word sẽ tự động điều chỉnh cỡ bitmap cache."

WItem__$(3, 2) = "Đặt cỡ của cache tệp Word file (bằng KB). Bạn có thể cải thiện tốc độ I/O (Vào ra) đối với tệp và các tác vụ khác trong Word bằng thay đổi cỡ cache. Nhỏ nhất và đờ phôn cỡ của cache là 64K."

WItem__$(4, 2) = "Thiết lập đờ phôn định dạng ngày tháng cho trường DATE. Chức năng này chỉ sử dụng cho mục đích tương thích những phần trước. Word 2000 thường sử dụng." & Chr(10) & Chr(10) & Space_$ & "Ví dụ: MMMM d, yyyy."

WItem__$(5, 2) = "Đờ phôn của tệp sử dụng văn bản Word. Đờ phôn là .DOC. Bạn phải khởi động lại Word thì phần thiết lập này mới có tác dụng."

WItem__$(6, 2) = "Đờ phôn thư mục chứa những văn bản Word." & Chr(10) & Chr(10) & Space_$ & "Đờ phôn là: " & iDocPath

WItem__$(7, 2) = "Đờ phôn tệp mẫu Word templates. Đờ phôn là .DOT. Bạn phải khởi động lại Word thì phần thiết lập này mới có tác dụng."

WItem__$(8, 2) = "Lựa chọn đường dẫn người dùng. Chức năng này chỉ sử dụng cho mục đích tương thích những phần trước. Nhớ rằng lựa chọn người dùng trong Word 2000 được cất ở Registry hay bên trong nó."

WItem__$(9, 2) = "Bật tắt Disables/Enables danh sách Font sử dụng gần nhất. Bạn phải khởi động lại Word thì phần thiết lập này mới có tác dụng. Vào số 0 hoặc1:" & Chr(10) & Chr(10) & Space_$ & "0 -Để có danh sách gần nhất Font." & Chr(10) & Space_$ & "1 - để không hiện danh sách này."

WItem__$(10, 2) = "Văn bản mẫu theo danh nghĩa template, được sử dụng khi tạo một đối tượng văn bản chứa Word hay ứng dụng OLE khác."

WItem__$(11, 2) = "Thiết lập đờ phôn đường dẫn khi sử dụng Insert Picture. Bạn phải khởi động lại Word thì phần thiết lập này mới có tác dụng. Bạn có thể cũng sử dụng Tools Options File Locations để thiết đặt."

WItem__$(12, 2) = "Theo lý thuyết nơi mà các tệp chương trình Word được lưu trữ." & Chr(10) & Chr(10) & Space_$ & "Đường dẫn đờ phôn: " & iProgPath

WItem__$(13, 2) = "Cho phép bạn tô bóng đồ hoạ bằng viết đè bằng một chức năng vẽ đặc biệt lên một vài máy in Hewlett-Packard. Sử dụng lựa chọn này khi in chậm. nếu máy in không hỗ trợ chức năng vẽ đặc biệt, thì khoá chuyển chẳng có tác dụng. Vào 0 cho No, 1 cho Yes."

WItem__$(14, 2) = "Thiết lập đường dẫn khởi động các tệp Word startup, như là templates và WLL's để tải khi khởi động Word." & Chr(10) & Chr(10) & Space_$ & "Đường dẫn đờ phôn ngầm định là: " & iStartPath

WItem__$(15, 2) = "Đặt đờ phôn định dạng thời gian cho trường TIME. Chức năng này chỉ sử dụng cho mục đích tương thích những phần trước. Word 2000 sử dụng định dạng." & Chr(10) & Chr(10) & Space_$ & "Ví dụ: h:mm:ss"

WItem__$(16, 2) = "Thiết lập nơi mà Word sẽ tìm kiếm ở công cụ proofing, lọc filters, chuyển đổi converters, và các cấu thành khác, trong trường hợp này chúng được đăng ký đúng đắn hoặc không tìm thấy trong các thư mục chuẩn."

WItem__$(17, 2) = "Theo lý thuyết từ điển người dùng cho kiểm tra chính tả số tương đương với thứ tự của từ điển người dùng trong danh sách Custom Dictionariestrong hộp thoại Options của tab Spelling."

WItem__$(18, 2) = "Đường dẫn cho tệp mẫu người dùng user templates. Nên nhớ rằng khi thiết lập thay đổi này cho Word, nó sẽ ảnh hưởng đến tất cả các ứng dụng Microsoft Office 2000 , ảnh hưởng tới Office Shortcut Bar." & Chr(10) & Chr(10) & Space_$ & "Ngầm định đờ phôn: " & iUserPath

WItem__$(19, 2) = "Đường dẫn cho nhóm mẫu workgroup templates. Bạn có thể chỉ rõ đường dẫn UNC path, ví dụ: " & Chr(10) & Chr(10) & Space_$ & "\\GROUP\USER\MYTMPLTS"

EQItem__$(0, 2) = "Thư mục chương trình Equation Editor. Equation Editor phải được cài đặt và chạy 1 lần cho chức năng này và thiết lập khác Equation Editor hiện."

EQItem__$(1, 2) = "Thiết lập Custom Zoom. Chức năng này chỉ có tác dụng khi Equation Editor được vào và tách rời ra 1 cửa sổ theo đường thiết lập ForceOpen."

EQItem__$(2, 2) = "Forces Equation Editor để mở khi nó tự tách rời thành 1 cửa sổ. Vào 0 hoặc 1:" & Chr(10) & Chr(10) & Space_$ & "0 - Mở trong cùng 1 nơi." & Chr(10) & Space_$ & "1 - Mở thành cửa sổ tách rời."

EQItem__$(3, 2) = "Hiện hoặc ẩn những ký tự không in được non-printing ."

EQItem__$(4, 2) = "Toolbar đã được đăng ký? 1 là yes, 0 là no."

EQItem__$(5, 2) = "Vị trí của toolbar nó được đăng ký:" & Chr(10) & Chr(10) & Space_$ & "1 - đỉnh của cửa sổ EQ Editor." & Chr(10) & Space_$ & "2 - đáy của cửa sổ EQ Editor."

EQItem__$(6, 2) = "Toolbar hiện? 1 là yes, 0 là no."

EQItem__$(7, 2) = "Vị trí của toolbar khi nó không đăng ký, Theo lý thuyết ở toạ độ X,Y với góc trái trên. Đơn vị là pixel."

EQItem__$(8, 2) = "Số của vơ sần Equation Editor."

EQItem__$(9, 2) = "Cỡ phòng chuẩn trên View menu."

help$ = "Để sửa chữa các thiết lập hệ thống liên quan đến Word được lưu trữ ở Windows Registry chọn một mục từ danh sách Section list, sau đó chọn Option. Thay đổi thiết lập trong hộp Setting đánh giá trị mới và chọn Change. Xin hãy cẩn thận."

RegOptions$ = "Microsoft Word Registry Options"

HelpTitle$ = "Microsoft Word RegOptions Help"

notset$ = "Sử dụng ngầm định"

errmsg1$ = "Thiết lập sai giá trị."

errchange$ = "Một vài thiết lập Word liên quan đến Registry, xin thoát và khởi động lại Word."

End Sub

Private Sub cmdClose_Click()

Unload Me

End Sub

Private Sub lstWordOpt_Change()

If Not IsNull(lstWordOpt.Value) Then

i = lstWordOpt.ListIndex

' ngăn chặn khoảng trắng trong textbox

If WItem__$(i, 3) = " " Then

txtWordSet.Text = ""

Else

txtWordSet.Text = WItem__$(i, 3)

End If

lblWordOptDesc = WItem__$(i, 2)

End If

End Sub

Private Sub lstEqOpt_Change()

If Not IsNull(lstEqOpt.Value) Then

i = lstEqOpt.ListIndex

txtEqSet.Text = EQItem__$(i, 3)

lblEqOptDesc = EQItem__$(i, 2)

End If

End Sub

Private Sub txtWordSet_Enter()

sWordSet = txtWordSet.Value

End Sub

Private Sub txtWordSet_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Not sWordSet = txtWordSet.Value Then

i = lstWordOpt.ListIndex

WItem__$(i, 3) = txtWordSet.Text

If WItem__$(i, 3) = " " Then WItem__$(i, 3) = ""

System.PrivateProfileString("", WItem__$(i, 0), WItem__$(i, 1)) = WItem__$(i, 3)

End If

End Sub

Private Sub txtEqSet_Enter()

sEqSet = txtEqSet.Value

End Sub

Private Sub txtEqSet_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Not sEqSet = txtEqSet.Value Then

i = lstEqOpt.ListIndex

EQItem__$(i, 3) = txtEqSet.Text

If EQItem__$(i, 3) = " " Then EQItem__$(i, 3) = ""

System.PrivateProfileString("", EQItem__$(i, 0), EQItem__$(i, 1)) = EQItem__$(i, 3)

End If

End Sub

Private Sub UserForm_Initialize()

ReDim item__$(0)

ReDim List__$(32)

ReDim sSection(6)

ReDim WItem__$(0)

ReDim EQItem__$(7)

ReDim EQlist__$(9)

ReDim WList__$(19)

Dim i

Dim x

Key$ = ""

errortext$ = ""

Wkey$ = ""

EQKey$ = ""

help$ = ""

RegOptions$ = ""

notset$ = ""

errmsg1$ = ""

change = 0

errchange$ = ""

Space_$ = ""

CurLang$ = ""

NumLanguages = 0

ReDim List__$(51), list2__$(51)

ReDim WItem__$(19, 3), EQItem__$(9, 3)

sRegWord = "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word"

sRegOpts = "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Options"

sRegEqDir = "HKEY_CURRENT_USER\Software\Microsoft\Equation Editor\3.0\Options\Directories"

sRegEqGen = "HKEY_CURRENT_USER\Software\Microsoft\Equation Editor\3.0\Options\General"

Localize

mulMainForm.Pages.Item(0).Caption = sSection(0)

mulMainForm.Pages.Item(1).Caption = sSection(1)

mulMainForm.Value = 0

'------------ Word 7.0 Options ---------

WItem__$(0, 0) = sRegOpts

WItem__$(0, 1) = "AutoSave-Path"

WItem__$(1, 0) = sRegOpts

WItem__$(1, 1) = "Bak-Extension"

WItem__$(2, 0) = sRegOpts

WItem__$(2, 1) = "BitMapMemory"

WItem__$(3, 0) = sRegOpts

WItem__$(3, 1) = "CacheSize"

WItem__$(4, 0) = sRegOpts

WItem__$(4, 1) = "DateFormat"

WItem__$(5, 0) = sRegOpts

WItem__$(5, 1) = "DOC-Extension"

WItem__$(6, 0) = sRegOpts

WItem__$(6, 1) = "DOC-Path"

WItem__$(7, 0) = sRegOpts

WItem__$(7, 1) = "DOT-Extension"

WItem__$(8, 0) = sRegOpts

WItem__$(8, 1) = "INI-Path"

WItem__$(9, 0) = sRegOpts

WItem__$(9, 1) = "NoFontMRUList"

WItem__$(10, 0) = sRegOpts

WItem__$(10, 1) = "OLEDOT"

WItem__$(11, 0) = sRegOpts

WItem__$(11, 1) = "Picture-Path"

WItem__$(12, 0) = sRegOpts

WItem__$(12, 1) = "ProgramDir"

WItem__$(13, 0) = sRegOpts

WItem__$(13, 1) = "SlowShading"

WItem__$(14, 0) = sRegOpts

WItem__$(14, 1) = "Startup-Path"

WItem__$(15, 0) = sRegOpts

WItem__$(15, 1) = "TimeFormat"

WItem__$(16, 0) = sRegOpts

WItem__$(16, 1) = "Tools-Path"

WItem__$(17, 0) = sRegOpts

WItem__$(17, 1) = "UpdateDictonaryNumber"

WItem__$(18, 0) = sRegOpts

WItem__$(18, 1) = "User-Dot-Path"

WItem__$(19, 0) = sRegOpts

WItem__$(19, 1) = "Workgroup-Dot-Path"

'-------------EQEdit

'--Các thư mục

EQItem__$(0, 0) = sRegEqDir

EQItem__$(0, 1) = "Appdir"

'--General

EQItem__$(1, 0) = sRegEqGen

EQItem__$(1, 1) = "CustomZoom"

EQItem__$(2, 0) = sRegEqGen

EQItem__$(2, 1) = "ForceOpen"

EQItem__$(3, 0) = sRegEqGen

EQItem__$(3, 1) = "ShowAll"

EQItem__$(4, 0) = sRegEqGen

EQItem__$(4, 1) = "ToolBarDocked"

EQItem__$(5, 0) = sRegEqGen

EQItem__$(5, 1) = "ToolBarDockPos"

EQItem__$(6, 0) = sRegEqGen

EQItem__$(6, 1) = "ToolBarShown"

EQItem__$(7, 0) = sRegEqGen

EQItem__$(7, 1) = "ToolBarWinPos"

EQItem__$(8, 0) = sRegEqGen

EQItem__$(8, 1) = "Version"

EQItem__$(9, 0) = sRegEqGen

EQItem__$(9, 1) = "Zoom"

'-------------------------

For i = 0 To 19

WItem__$(i, 3) = System.PrivateProfileString("", WItem__$(i, 0), WItem__$(i, 1))

If WItem__$(i, 3) = "" Then WItem__$(i, 3) = " "

WList__$(i) = WItem__$(i, 1)

Next

'--------------------

For i = 0 To 9

EQItem__$(i, 3) = System.PrivateProfileString("", EQItem__$(i, 0), EQItem__$(i, 1))

If EQItem__$(i, 3) = "" Then EQItem__$(i, 3) = " "

EQlist__$(i) = EQItem__$(i, 1)

Next

'-----------------------

lstWordOpt.List() = WItem__$

txtWordSet.Text = WItem__$(0, 3)

lblWordOptDesc.Caption = WItem__$(0, 2)

lstWordOpt.ColumnWidths = "0;-1"

lstEqOpt.List() = EQItem__$

txtEqSet.Text = EQItem__$(0, 3)

lblEqOptDesc.Caption = EQItem__$(0, 2)

lstEqOpt.ColumnWidths = "0;-1"

End Sub

=============

'2.3 Chèn một Module bằng INSERT MODULE

'Module COMMON

Option Explicit

' Khai báo biến

' Vị trí khoá Key Registry

Public strRegSettingsKey As String

' Cờ

Public fEditInitSuccess As Boolean 'true Khi hộp Edit Conv Options 'được khởi tạo

' Forms

Public formEdOptions As EditCnvOptionsForm 'Options dialog

' Khác

Public clsCnvTable As CConverterTable ' Đối tượng bảng converter/filter

Public Sub EditConversionOptions()

' Bảng converter/filter

Set clsCnvTable = New CConverterTable

If clsCnvTable Is Nothing Then

GoTo FatalError

End If

' Khởi tạo dialog box

Set formEdOptions = New EditCnvOptionsForm

If formEdOptions Is Nothing Then

' Xoá bảng

Set clsCnvTable = Nothing

GoTo FatalError

End If

If fEditInitSuccess = True Then

formEdOptions.Show

End If

Exit Sub

FatalError:

DisplayErrorMsg strERR_INIT_OPTIONSFORM

End Sub

' Trả về giá trị được lưu trong khoá registry key strId

Public Function StrFetchPref(strId As String) As String

On Error GoTo LReturnNull

StrFetchPref = System.PrivateProfileString("", strRegSettingsKey, strId)

Exit Function

LReturnNull:

StrFetchPref = ""

End Function

' Đưa ra strValue trong registry key strId

'Public Sub StorePref(strId As String, strValue As String)

Dim strTemp As String

' If string is empty, store "~" as placeholder

If (Len(strValue) = 0) Then

strTemp = "~"

Else

strTemp = strValue

End If

System.PrivateProfileString("", strRegSettingsKey, strId) = strTemp

End Sub

' Trả về chuỗi được lưu trong strId. Nếu rỗng, trả về strDefault

Public Function StrRestorePref(strId As String, strDefault As String) As String

Dim strTemp As String

strTemp = StrFetchPref(strId)

' Nếu chiều dài bằng 0 nó không có trong regsistry, Nên sử dụng giá trị đờ phôn

If Len(strTemp) = 0 Then

strTemp = strDefault

' "~" là chứng cứ để cho phép trả về chuỗi rỗng

ElseIf strTemp = "~" Then

strTemp = ""

End If

StrRestorePref = strTemp

End Function

' Đưa ra iVal trong registry key strId như một chuỗi string

Public Sub StoreValPref(strId As String, iVal As Integer)

StorePref strId, LTrim$(str$(iVal))

End Sub

' Trả về giá trị được lưu trong khoá key strId

' Nếu sai trả về iDefault.

Public Function FRestorePref(strId As String, fDefault As Boolean) As Boolean

Dim strVal As String

strVal = StrFetchPref(strId)

If Len(strVal) = 0 Then

FRestorePref = fDefault

Else

FRestorePref = Val(strVal)

End If

End Function

' Trả về giá trị được lưu trong khoá key strId

' Nếu sai trả về iDefault.

Public Function IRestorePref(strId As String, iDefault As Integer) As Integer

Dim strVal As String

strVal = StrFetchPref(strId)

If Len(strVal) = 0 Then

IRestorePref = iDefault

Else

IRestorePref = Val(strVal)

End If

End Function

' Hiện lời nhắc lỗi bằng một balloon nếu sử dụng tên thuyết minh Assistant

' hay hiện hộp thoại khi đang ở chế độ dùng dialog.

Public Sub DisplayErrorMsg(strErrMsg As String)

MsgBox strErrMsg, vbExclamation + vbOKOnly + vbApplicationModal

Err.Clear

End Sub

=================

No comments:

Post a Comment