當前位置:首頁 » 手機資訊 » 怎樣讀系統軟體
擴展閱讀
華為平板鞋怎樣搭配 2025-05-20 05:07:43

怎樣讀系統軟體

發布時間: 2022-05-17 17:33:54

A. 如何識別電腦里的系統軟體和應用軟體

  1. 首先,打開你安裝系統的盤,基本上都是C盤,找到windows,這里邊的所有的軟體都是windows的系統軟體,如regedit(注冊表編輯器)。

B. 就是誤刪了系統軟體,恢復時怎樣讀取odex

odex是從原程序提取的吧.如果源程序已經沒有了估計就提取不了了.可以重新下載一個源程序,如果沒有的話可以找相同機器相同操作系統版本的提取一個來放到原來的位置試下.
再不行的話就重新刷系統了.也很快方便

C. C++怎麼讀取系統正在運行的其他程序

可以用API函數FindWondow, FindWondow是這樣工作的,如果找到特定字元串的窗口標題,那麼返回該窗口的句柄,否則返回NULL
舉個例子:

#include<stdio.h>
#include <windows.h>
int main()
{
HWND hw = FindWindow(NULL, L"計算器");
if (hw)
printf("有");
return 0;
}

D. 諾基亞s60系統文件如何閱讀

S60系統盤分為:C盤,D盤,E盤,Z盤
C盤:手機內存檔。D盤:虛擬盤,系統會自動管理。E盤:存儲卡。Z盤:動態盤,只讀盤。
C、Z盤是比較主要的,就像電腦的系統盤一般。
以下是C盤主要文件介紹:
1、c/cache下載緩存文件夾,可刪。
2、c/data/games拼圖文件,刪除後拼圖沒有圖片。
3、c/data/images存在於手機的圖片。
4、c/data/sounds存在於手機的鈴聲。
5、c/data/other存在於手機的Flash。
6、c/data/Videos存在於手機的視頻。
7、c/system/apps一些軟體運行後會留下記錄(智能衛士)。
8、c/system/data程序設定數據,刪除後所有原設定的數據將全部丟失。
9、c/system/install所有的反安裝文件。
10、c/system/temp下載文件用的時臨時存放目錄。
下面介紹c:\system\Data這個文件夾c:\system\Data\這個文件夾記錄程序初始化或運行時的數據的。不能亂刪!
c:\system\data\cbs\這個文件夾里有兩個dat文件。
c:\system\Data\saveddecks\這個文件夾默認為空,作用與手機服務商的網路有關。
c:\system\Data\tore\這個文件主要用來存儲用wap上網時的一些網頁緩存
c:\system\Data\Applications.dat\這是用來記錄手機的應用程序與游戲安裝數據的文件,會隨著軟體安裝的增多而增大
c:\system\Data\backgroundimage.mbm\這是用來保存系統中的牆紙圖片文件,有了這個文件就算你的jpg格式的牆紙文件丟失,牆紙也會存在(提示:如果關閉牆紙功能,這個文件會自動刪除)
c:\system\Data\Bookmarks1.db\書簽數據文件,用來記錄wap地址
c:\system\data\meddiaplayer.dat\RealPlayer記錄文件
c:\system\Data\CACerts.dat\安裝各種軟體的證書文件
c:\system\Data\Calcsoft\系統自帶的計算器
c:\system\Data\Clockapp.dat\這是時鍾存檔文件
c:\system\Data\Contacts.cdb\電話本數據文件,隨著電話的記錄增多而增大
c:\system\Data\Logdbu.dat\通訊數據文件,包括來電,去電,通話時間,GPRS流量等……
c:\system\Data\Notepad.dat\當你使用了記事本後會產生這個文件,如果你不想使用記事本,可以刪除這個文件。
c:\system\Data\NITZ.dat\默認大小1b
c:\system\Data\pinboard\收藏夾數據文件
c:\system\Data\SavedDerks.db\手機服務商的網路數據文件
c:\system\Data\smsreast.dat、smssegst.dat\手機簡訊沒定存檔文件
c:\system\Data\Template.n31\信息模版文件
c:\system\Data\UnitConverter.ini\手機自帶的單位轉換器初始化文件
c:\system\Data\wapreast.dat\WAP設定存檔文件,初始化大小為59b下面介紹c:\Private這個文件夾

├10000850(網標) 放入MBM文件可改網標(移動Logo_460_0_OTA.mbm,聯通Logo_460_1_OTA.mbm)

├100012a5
│ DBS_100065FF_Contacts.cdb 名片夾
│ DBS_100069CC_btregistry 藍牙設備名單
│ DBS_101F84D6_wpcontext.db
│ DBS_101F8683_ScshortcutEngine.ini 待機模式下快捷方式的設置.刪除後恢復默認設置
│ DBS_101F8878_Notepad.dat 記事本.刪除後清空所有記事本內容
│ DBS_101F8878_Template.n31 簡訊中的常用短語.刪除後恢復默認
│ DBS_101F99FB_nsmldmsetting.db
│ DBS_101F99FB_nsmldssetting.db
│ DBS_101FD685_BrowserBookmarks.db 自帶瀏覽器書簽(收藏夾)
│ DBS_101FD685_BrowserSavedPages.db 保存的網頁
│ DBS_101FE031_mcv7.mpd 音樂播放器播放列表
│ DBS_101FE978_eposlm.ldb 地圖標記
│ DBS_10201AFE_nssvasdatabase.db 聲控命令
│ DBS_10201AFF_Sidatabase.db 系統集成資料庫
│ DBS_10202869_RCSE_AudioCodec
│ DBS_10202869_RCSE_SCCPSetting
│ DBS_10202869_RCSE_SIPSetting
│ DBS_10202869_RCSE_VoIProfiles 以上四個是關於網路電話的配置
│ DBS_102045FE_MIDP2SystemAMSDynamicV2
│ DBS_102045FE_MIDP2SystemAMSStaticV2
│ DBS_102045FE_MIDP2SystemAMSUserV2 以上三個文件是Java系統驅動
│ DBS_10206A8B_TzLocalization.db 可能是時區數據
│ DBS_10207216_SWInsLog.db 程序安裝和刪除的記錄.刪除後清空程序管理的記錄
│ DBS_102072E9_eapol.dat
│ DBS_10281F95_FeedsDatabase.db Feed訂閱

【其中還有幾個未知】
│ 【C:\Private\100012a5\DBS_文件!!
│ 通過備份其中的文件,格機後還原。可以恢復電話本、GPS接入點等信息】
├10003a3f\import\apps 安裝在手機程序的快捷方式(擴展名為.rsc)
\Dtstor.ini
│ \NonNativeTypes.dat 用記事本打開內容為:TStubMIDP2RecogExe.exe,表面看應該與Java擴展程序有關
├10003a5b\Calendar 日歷項.刪除後清空所有日歷項
├10003A73\CNTMODEL.INI 快速撥號設置
├1000484B\簡訊文件夾
├10005399\SchelesBackup.dat 日程備份
├100058ec\PluginUidToViewIdCache.dat
├10005902\Calcsoft自帶計算器初始文件
├10005903\clockapp.dat 時鍾的設置
├100059c9\LocaleData\CommonData.D00 【17b這個文件也永遠不變】
├ \LocaleData.D159
├ \LocaleData.D31 【與語言和地理位置設置有關,估計31定義了SIM卡語言,表示簡體】
├ \start.dat 開機自啟動的程序信息,每當允許一個程序自啟動這個dat文件就會重新被寫入
├10005A3E\mediaplayer.dat 自帶播放器RealPlayer播放歷史記錄
├10008d38\BrowserBookmarks 自帶瀏覽器保存的書簽
├10008d39\bpopupwl.db
│ \faviconstore.db 書簽\網站logo圖標

├10009D8F\ECom.dat
│ \ECom.idx
│ \Ecom***ng 【不明作用,應該是系統創建的文件,刪除後重啟自動生成】
├1000a859\cbtopicsmsgs.dat 與"廣播信息" 有關
├ \cbunsaved.dat
├101f401d\Logdbu.dat 記錄了通訊記錄
├101F413C\sipprofiles.dat SIP(Session Initiation Protocol)設置
├101f4668\UnitConVerter.ini 手機自帶單位轉換的配置信息
├101F4CD2\Applications.dat 程序UID和圖標路徑數據記錄
│ (應用程序安裝數據記錄文件,隨著軟體安裝的增多而增大)
├101F5027\AlarmServer.ini 鬧鍾的設置文件
├101f51F2\rbd (一堆空子文件夾,嘗試刪除時自動重啟)
│ domaincontexts.dat│
│ drmtime.dat 與鬧鍾的貪睡有關
│ plainrc.dat
│ ricontext.dat
│ timerere.dat
├101f6dc5\DRMHS.dat 估計與貪睡鬧鍾的關閉有關
├101f6efa\reserve.bin
├101f7295\sidcache.cache
├101F72A6\CACERTS.DAT
│ \certclients.dat
│ \keys.dat 以上三個是安裝軟體的證書集
├101f7989\esock\nobackup
│ \SMS\SMSREAST.DAT
│ \SMS\SMSSEGST.DAT 以上兩個都是簡訊配置文件
│ \SMS\WAPREAST.DAT WAP設定存檔文件

├101F79DD\WimTrustSettingsStore.dat
├101F7C87\SuiteConf.xml
├101f8637\ 臨時文件,建議刪除
├101f875a\import
│ \MidletTemp
│ \startup\ 開機自啟動程序.比如來電通[a0001806].dat
│ \Tasks
├101f8857\mgxmimetypeindex.dat 擴展名關聯程序信息
├101f96ec\AHLEURL
├101f9a06\nsmldmtree.db 聊天室
├101fb64e\Ss.dat
├101FE41E\Lifeblog.ini 系統寫E生活的配置文件
├101ff976\visualradio.ini 可是收音機配置文件
├101ffa91\ClipartStorage.ini
│ \ImageEditor.ini
│ \PluginStorage.ini 以上三個是手機自帶圖片編輯器
├10202be9\bur
│ \persists 系統文件,與Z盤文件對應
├10207114\import 主題桌面文件
├10207275\wpsimcard.db sim卡信息
├102072C4\FotaState
│ \reserved(這個文件很大)是在線升級用的文件,到設備管理中更新一下又有了,刪除
├102072CC\SIMLanguage.dat SIM卡語種配置文件
├1020735b\ 臨時文件夾,飛信產生的垃圾文件在此,建議刪除
├10208A31\atexpl.bin
│ \mglblacklist.txt 看名字似乎是黑名單,我的打開只有一個E字.奇怪的黑名單
├200002c0\catalog\ 與quickoffice有關
│ \installation
│ \userdata.xml
├200002c1\quickword.ini 與quickword有關
├200009ba\printintent.db
├20001bb9\20001bb9.bin 搜索的配置文件
\vidict.dat
【如後面還有,多數是自己所安裝軟體的生產文件】以下三個可能因為版本不同,部分機型找不到:
C:\private\101F8530\COOKIES.DAT 傳說中的COOKIES
C:\private\10208A29\MANUALVIDEOEDITOR.INI 自帶視頻編輯器配置文件
C:\private\2003252\MENUKEYSERVER.INI 菜單鍵配置文件

E. Android應用程序怎樣獲取讀取系統文件的許可權

1、必須是Android系統開發人員,否則你無法修改init.rc等文件。 2、你的應用程序必須要獲得system許可權。
在應用層 你要想用代碼獲得系統文件許可權,除非你手機root了
要麼你自己坐rom。。。。 自己修改 init,rc
具體可以參考這篇博文:http://blog.sina.com.cn/s/blog_5f35912f0100w4ld.html

F. 重裝系統後,怎麼識別D盤已安裝的軟體

1、重做系統後,注冊表已經發生改變。原先D盤安裝的軟體會出現2種情況。
2、第一種,某些軟體不依賴於注冊表。重新安裝系統後該軟體仍然可以正常運行。比如qq、快玩等。
3、第二種,某些軟體依賴注冊表。重新安裝系統後該軟體再次運行時會讀取注冊表中數據,如果數據無法讀取或者讀取出錯。則該軟體拒絕運行。要求操作者重現安裝該軟體。如office系列等。
4、重新安裝系統後,D盤已經安裝的軟體無法全部識別。第一種可以識別並直接運行。第二種只能重現安裝並覆蓋D盤同目錄。
5、如果重新安裝系統前做過注冊表的備份。可以在安裝系統後恢復備份,則此時D盤已經安裝軟體均可正常識別運行。

G. 如何用iso安裝系統,我電腦裡面下載了ISO系統安裝程序,如何在開機時候能夠讀取

一:將ISO的文件用刻錄機刻成光碟
開機安ESC進入光碟機起動他就可以提示你進行安裝.
注:在刻錄時一定不要刻成數據形式的了,不然光碟是讀不出來的,
要刻成能夠自動讀取的形式.
二:使用硬碟起動WINPE系統
在此系統下使用Ghost進行安裝
GHOST文件可以在ISO文件中找到

H. 怎麼識別電腦c盤系統文件

一.電腦系統文件分為系統安裝成功後所解壓的文件夾,以及安裝在C盤的系統軟體夾,通常都有這幾個文件夾

如上圖

這幾個文件夾的文件都不可以隨便刪除,刪除了都會導致出現系統故障以及軟體故障


二、用壓縮/解壓縮軟體查看。(此方法無需設置,直接可以查看所有文件)

1、打開WinRAR軟體,從軟體中打開C盤。C盤文件一覽無遺。

三.步驟一:我們首先關閉Win7系統休眠功能,最多能釋放出3G多空間喔
「以管理員身份運行,所有程序→附件→命令提示符」,右擊選擇「以管理員身份運行」,進入命令提示符後,手工輸入「powercfg -h off」 關閉Win7系統休眠功能。

步驟二:關閉系統保護
計算機右鍵屬性--高級管理設置--系統保護。

步驟三:轉移虛擬內存
計算機右鍵屬性--高級管理設置--高級--性能-設置-高級-更改。

步驟四:轉移「用戶的文件」
桌面雙擊 Administrator(用戶文件夾)文件夾,在這里推薦轉移4個系統文件夾「桌面,收藏夾,我的桌面,我的文檔」,右鍵要轉移的項目屬性--位置 X:UsersAdministrator 即可。
步驟五、刪文件不刪功能、簡化優化系統不簡優化性能
1.C:WindowsWebWall***(Windows自帶牆紙)推薦轉移
2.C:下
搜索輸入 ati*.inf (14.6M)nv*.inf(94.9M) (A卡用戶刪N、N卡用戶刪A)
搜索輸入 mdm*.inf (21.6M) 現在早已沒人用的東西刪
搜索輸入 prn*.inf (781M) prn 開頭的全部都是列印機驅動,相信大多數人都是用不上的。就是有列印機,買的時候也會帶有驅動,刪除它。
注意:prnms001.inf/prnoc001.inf/prnms002.inf這三個並不是列印機驅動,建議保留。
3.C:Boot(13.3M) 這個裡面是不同語言的Windows啟動界面,除zh-CN外均可刪除。
4.C:perflogsSystemDiagnostics(9.39M) 這個是系統測試之後的測試記錄文件存放處,刪。
5.C: 有一些程序(Dreamweaver……)安裝的時候會把安裝文件解壓至此文件夾裡面。可以安全刪除,幾十M到幾百M不等。

I. vb如何讀取系統已安裝軟體並獲取軟體版本號

布置這類作業我估計是你們老師接到這類賺錢活兒了。

VB可以用GetSetting來讀取注冊表,但只能在VB區域的注冊表裡讀出。如果希望讀取系統里的數據必須從系統區域里讀出注冊表內容。VB里並未自帶這類方法,因此必須藉助Win API函數。使用起來比較復雜我倒是可以給你一些例子的,後面我可以附上。

如果只是為了做作業是不是應該用更簡單的方法呢?VB里的Dir函數可以列出文件夾,通常來說額外安裝的程序都會在C:\Program Files\里有相應文件夾,你只要把那裡的文件夾名讀出來不就可以了?代碼如下:
MyPath = "c:\Program Files\" ' 指定路徑。
MyName = Dir(MyPath, vbDirectory) ' 找尋第一項。
Do While MyName <> "" ' 開始循環。
' 跳過當前的目錄及上層目錄。
If MyName <> "." And MyName <> ".." Then
' 使用位比較來確定 MyName 代表一目錄。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 如果它是一個目錄,將其名稱顯示出來。
End If
End If
MyName = Dir ' 查找下一個目錄。
Loop

如果想通過Win API函數實現也行,給你些有關的API聲明
Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(dest As Any, source As Any, ByVal numBytes As Long)

Private Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" _
(ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long

''''//注冊表 API 函數聲明
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
ByVal lpReserved As Long, lpType As Long, lpData As Any, _
lpcbData As Long) As Long

Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
ByVal lpbData As Any, ByVal cbData As Long) As Long

Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" _
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, _
ByVal lpClass As String, ByVal dwOptions As Long, _
ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, _
phkResult As Long, lpdwDisposition As Long) As Long

Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" _
(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, _
lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, _
lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long

Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" _
(ByVal hKey As Long, ByVal dwIndex As Long, _
ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, _
lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String) As Long

Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
(ByVal hKey As Long, ByVal lpValueName As String) As Long

Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal ipValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
ByVal lpValue As String, ByVal cbData As Long) As Long

Private Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
lpValue As Long, ByVal cbData As Long) As Long

Private Declare Function RegSetValueExByte Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
lpValue As Byte, ByVal cbData As Long) As Long

Private Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" _
(ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, _
ByVal lpReserved As Long, lpcSubKeys As Long, _
lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, _
lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, _
lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long

Private Declare Function RegEnumValueInt Lib "advapi32.dll" Alias "RegEnumValueA" _
(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, _
lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, _
lpData As Byte, lpcbData As Long) As Long

Private Declare Function RegEnumValueStr Lib "advapi32.dll" Alias "RegEnumValueA" _
(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, _
lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, _
lpData As Byte, lpcbData As Long) As Long

Private Declare Function RegEnumValueByte Lib "advapi32.dll" Alias "RegEnumValueA" _
(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, _
lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, _
lpData As Byte, lpcbData As Long) As Long

''''//注冊表結構
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

''''//注冊表訪問權
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = &H3F

''''//打開/建立選項
Const REG_OPTION_NON_VOLATILE = 0&
Const REG_OPTION_VOLATILE = &H1

''''//Key 創建/打開
Const REG_CREATED_NEW_KEY = &H1
Const REG_OPENED_EXISTING_KEY = &H2

''''//預定義存取類型
Const STANDARD_RIGHTS_ALL = &H1F0000
Const SPECIFIC_RIGHTS_ALL = &HFFFF

''''//嚴格代碼定義
Const ERROR_SUCCESS = 0&
Const ERROR_ACCESS_DENIED = 5
Const ERROR_NO_MORE_ITEMS = 259
Const ERROR_MORE_DATA = 234 ''''// 錯誤

''''//注冊表值類型列舉
Private Enum RegDataTypeEnum
'''' REG_NONE = (0) ''''// No value type
REG_SZ = (1) ''''// Unicode nul terminated string
REG_EXPAND_SZ = (2) ''''// Unicode nul terminated string w/enviornment var
REG_BINARY = (3) ''''// Free form binary
REG_DWORD = (4) ''''// 32-bit number
REG_DWORD_LITTLE_ENDIAN = (4) ''''// 32-bit number (same as REG_DWORD)
REG_DWORD_BIG_ENDIAN = (5) ''''// 32-bit number
'''' REG_LINK = (6) ''''// Symbolic Link (unicode)
REG_MULTI_SZ = (7) ''''// Multiple, null-delimited, double-null-terminated Unicode strings
'''' REG_RESOURCE_LIST = (8) ''''// Resource list in the resource map
'''' REG_FULL_RESOURCE_DESCRIPTOR = (9) ''''// Resource list in the hardware description
'''' REG_RESOURCE_REQUIREMENTS_LIST = (10)
End Enum

''''//注冊表基本鍵值列表
Public Enum RootKeyEnum
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_PERFORMANCE_DATA_WIN2K_ONLY = &H80000004 ''''//僅Win2k
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
End Enum

''''// for specifying the type of data to save
Public Enum RegValueTypes
eInteger = vbInteger
eLong = vbLong
eString = vbString
eByteArray = vbArray + vbByte
End Enum

''''//保存時指定類型
Public Enum RegFlags
IsExpandableString = 1
IsMultiString = 2
''''IsBigEndian = 3 ''''// 無指針同樣不要設置大Endian值
End Enum

Private Const ERR_NONE = 0

Function SetRegistryValue(ByVal hKey As RootKeyEnum, ByVal KeyName As String, _
ByVal ValueName As String, ByVal Value As Variant, valueType As RegValueTypes, _
Optional Flag As RegFlags = 0) As Boolean

Dim handle As Long
Dim lngValue As Long
Dim strValue As String
Dim binValue() As Byte
Dim length As Long
Dim retVal As Long

Dim SecAttr As SECURITY_ATTRIBUTES ''''//鍵的安全設置
''''//設置新鍵值的名稱和默認安全設置
SecAttr.nLength = Len(SecAttr) ''''//結構大小
SecAttr.lpSecurityDescriptor = 0 ''''//默認安全許可權
SecAttr.bInheritHandle = True ''''//設置的默認值

''''// 打開或創建鍵
''''If RegOpenKeyEx(hKey, KeyName, 0, KEY_ALL_ACCESS, handle) Then Exit Function
retVal = RegCreateKeyEx(hKey, KeyName, 0, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, SecAttr, handle, retVal)
If retVal Then Exit Function

''''//3種數據類型
Select Case VarType(Value)
Case vbByte, vbInteger, vbLong ''''// 若是位元組, Integer值或Long值...
lngValue = Value
retVal = RegSetValueExLong(handle, ValueName, 0, REG_DWORD, lngValue, Len(lngValue))

Case vbString ''''// 字元串, 擴展環境字元串或多段字元串...
strValue = Value
Select Case Flag
Case IsExpandableString
retVal = RegSetValueEx(handle, ValueName, 0, REG_EXPAND_SZ, ByVal strValue, 255)
Case IsMultiString
retVal = RegSetValueEx(handle, ValueName, 0, REG_MULTI_SZ, ByVal strValue, 255)
Case Else ''''// 正常 REG_SZ 字元串
retVal = RegSetValueEx(handle, ValueName, 0, REG_SZ, ByVal strValue, 255)
End Select

Case vbArray + vbByte ''''// 如果是位元組數組...
binValue = Value
length = UBound(binValue) - LBound(binValue) + 1
retVal = RegSetValueExByte(handle, ValueName, 0, REG_BINARY, binValue(0), length)

Case Else ''''// 如果其它類型
RegCloseKey handle
''''Err.Raise 1001, , "不支持的值類型"

End Select

''''// 返回關閉結果
RegCloseKey handle

''''// 返回寫入成功結果
SetRegistryValue = (retVal = 0)

End Function

Function GetRegistryValue(ByVal hKey As RootKeyEnum, ByVal KeyName As String, _
ByVal ValueName As String, Optional DefaultValue As Variant) As Variant

Dim handle As Long
Dim resLong As Long
Dim resString As String
Dim resBinary() As Byte
Dim length As Long
Dim retVal As Long
Dim valueType As Long

Const KEY_READ = &H20019

''''// 默認結果
GetRegistryValue = IIf(IsMissing(DefaultValue), Empty, DefaultValue)

''''// 打開鍵, 不存在則退出
If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then Exit Function

''''// 准備 1K resBinary 用於接收
length = 1024
ReDim resBinary(0 To length - 1) As Byte

''''// 讀注冊表值
retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), length)

''''// 若resBinary 太小則重讀
If retVal = ERROR_MORE_DATA Then
''''// resBinary放大,且重新讀取
ReDim resBinary(0 To length - 1) As Byte
retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
length)
End If

''''// 返回相應值類型
Select Case valueType
Case REG_DWORD, REG_DWORD_LITTLE_ENDIAN
''''// REG_DWORD 和 REG_DWORD_LITTLE_ENDIAN 相同
CopyMemory resLong, resBinary(0), 4
GetRegistryValue = resLong

Case REG_DWORD_BIG_ENDIAN
''''// Big Endian''''s 用在非-Windows環境, 如Unix系統, 本地計算機遠程訪問
CopyMemory resLong, resBinary(0), 4
GetRegistryValue = SwapEndian(resLong)

Case REG_SZ, REG_EXPAND_SZ
resString = Space$(length - 1)
CopyMemory ByVal resString, resBinary(0), length - 1
If valueType = REG_EXPAND_SZ Then
''''// 查詢對應的環境變數
GetRegistryValue = ExpandEnvStr(resString)
Else
GetRegistryValue = resString
End If

Case REG_MULTI_SZ
''''// 復制時需指定2個空格符
resString = Space$(length - 2)
CopyMemory ByVal resString, resBinary(0), length - 2
GetRegistryValue = resString

Case Else '''' 包含 REG_BINARY
''''// resBinary 調整
If length <> UBound(resBinary) + 1 Then
ReDim Preserve resBinary(0 To length - 1) As Byte
End If
GetRegistryValue = resBinary()

End Select

''''// 關閉
RegCloseKey handle

End Function

Public Function DeleteRegistryValueOrKey(ByVal hKey As RootKeyEnum, RegKeyName As String, _
ValueName As String) As Boolean
''''//刪除注冊表值和鍵,如果成功返回True

Dim lRetval As Long ''''//打開和輸出注冊表鍵的返回值
Dim lRegHWND As Long ''''//打開注冊表鍵的句柄
Dim sREGSZData As String ''''//把獲取值放入緩沖區
Dim lSLength As Long ''''//緩沖區大小. 改變緩沖區大小要在調用之後

''''//打開鍵
lRetval = RegOpenKeyEx(hKey, RegKeyName, 0, KEY_ALL_ACCESS, lRegHWND)

''''//成功打開
If lRetval = ERR_NONE Then
''''//刪除指定值
lRetval = RegDeleteValue(lRegHWND, ValueName) ''''//如果已存在則先刪除

''''//如出現錯誤則刪除值並返回False
If lRetval <> ERR_NONE Then Exit Function

''''//注意: 如果成功打開僅關閉注冊表鍵
lRetval = RegCloseKey(lRegHWND)

''''//如成功關閉則返回 True 或者其它錯誤
If lRetval = ERR_NONE Then DeleteRegistryValueOrKey = True

End If

End Function

Private Function ExpandEnvStr(sData As String) As String
''''// 查詢環境變數和返回定義值
''''// 如: %PATH% 則返回 "c:\;c:\windows;"

Dim c As Long, s As String

s = "" ''''// 不支持Windows 95

''''// get the length
c = ExpandEnvironmentStrings(sData, s, c)

''''// 展開字元串
s = String$(c - 1, 0)
c = ExpandEnvironmentStrings(sData, s, c)

''''// 返回環境變數
ExpandEnvStr = s

End Function

Private Function SwapEndian(ByVal dw As Long) As Long
''''// 轉換大DWord 到小 DWord

CopyMemory ByVal VarPtr(SwapEndian) + 3, dw, 1
CopyMemory ByVal VarPtr(SwapEndian) + 2, ByVal VarPtr(dw) + 1, 1
CopyMemory ByVal VarPtr(SwapEndian) + 1, ByVal VarPtr(dw) + 2, 1
CopyMemory SwapEndian, ByVal VarPtr(dw) + 3, 1

End Function

J. 電腦讀程序的軟體

軟體是計算機的靈魂,沒有軟體的計算機就如同沒有磁帶的錄音機和沒有錄像帶的錄像機一樣,與廢鐵沒什麼差別。使用不同的計算機軟體,計算機可以完成許許多多不同的工作。它使計算機具有非凡的靈活性和通用性。也正是這一原因,決定了計算機的任何動作都離不開由人安排的指令。人們針對某一需要而為計算機編制的指令序列稱為程序。程序連同有關的說明資料稱為軟體。配上軟體的計算機才成為完整的計算機系統。

一般把軟體分為兩大類:應用軟體和系統軟體。

一、應用軟體

應用軟體是專門為某一應用目的而編制的軟體,較常見的如:
1、文字處理軟體
用於輸入、存貯、修改、編輯、列印文字材料等,例如WORD、WPS等。
2、信息管理軟體
用於輸入、存貯、修改、檢索各種信息,例如工資管理軟體、人事管理軟體、倉庫管理軟體、計劃管理軟體等。這種軟體發展到一定水平後,各個單項的軟體相互連系起來,計算機和管理人員組成一個和諧的整體,各種信息在其中合理地流動,形成一個完整、高效的管理信息系統,簡稱MIS。
3、輔助設計軟體
用於高效地繪制、修改工程圖紙,進行設計中的常規計算,幫助人尋求好設計方案。
4、實時控制軟體
用於隨時搜集生產裝置、飛行器等的運行狀態信息,以此為依據按預定的方案實施自動或半自動控制,安全、准確地完成任務。

二、系統軟體

各種應用軟體,雖然完成的工作各不相同,但它們都需要一些共同的基礎操作,例如都要從輸入設備取得數據,向輸出設備送出數據,向外存寫數據,從外存讀數據,對數據的常規管理,等等。這些基礎工作也要由一系列指令來完成。人們把這些指令集中組織在一起,形成專門的軟體,用來支持應用軟體的運行,這種軟體稱為系統軟體。
系統軟體在為應用軟體提供上述基本功能的同時,也進行著對硬體的管理,使在一台計算機上同時或先後運行的不同應用軟體有條不紊地合用硬體設備。例如,兩個應用軟體都要向硬碟存入和修改數據,如果沒有一個協調管理機構來為它們劃定區域的話,必然形成互相破壞對方數據的局面。
有代表性的系統軟體有:
1、操作系統
管理計算機的硬體設備,使應用軟體能方便、高效地使用這些設備。在微機上常見的有:DOS、WINDOWS、UNIX、OS/2等
2、資料庫管理系統
有組織地、動態地存貯大量數據,使人們能方便、高效地使用這些數據。現在比較流行的資料庫有FoxPro、DB-2、Access、SQL-server等
3、編譯軟體
CPU執行每一條指令都只完成一項十分簡單的操作,一個系統軟體或應用軟體,要由成千上萬甚至上億條指令組合而成。直接用基本指令來編寫軟體,是一件極其繁重而艱難的工作。為了提高效率,人們規定一套新的指令,稱為高級語言,其中每一條指令完成一項操作,這種操作相對於軟體總的功能而言是簡單而基本的,而相對於CPU的一眇操作而言又是復雜的。
用這種高級語言來編寫程序(稱為源程序)就象用預制板代替磚塊來造房子,效率要高得多。但CPU並不能直接執行這些新的指令,需要編寫一個軟體,專門用來將源程序中的每條指令翻譯成一系列CPU能接受的基本指令(也稱機器語言)使源程序轉化成能在計算機上運行的程序。完成這種翻譯的軟體稱為高級語言編譯軟體,通常把它們歸入系統軟體。目前常用的高級語言有VB、C++、JAVA等,它們各有特點,分別適用於編寫某一類型的程序,它們都有各自的編譯軟體。
一般把軟體分為兩大類:應用軟體和系統軟體。

一、應用軟體 :是專門為某一應用目的而編制的軟體。常見的應用軟體有科學計算程序、圖形與圖像處理軟體、自動控製程序、情報檢索系統、工資管理程序、人事管理程序、財務管理程序以及計算機輔助設計與製造、輔助教學等軟體。如:信息管理軟體(如工資管理軟體、人事管理軟體等)、科學計算程序、文字與表格處理軟體(如WPS、Word、Excel等)、圖形與圖像處理軟體、輔助設計軟體(如CAD、CAM、CAI、CAT等)。具體分類為:

1、 文字處理軟體

文字處理軟體是辦公室和個人不可缺少的軟體,它用於輸入、存貯、編輯、列印文字材料。目前主要的中文文字處理軟體有Word和WPS。

2、 電子表格數據處理軟體

用於一些簡單的數據表處理,如學校中的成績處理、股市行情分析等,主要的軟體有Excel和Lotus 1-2-3。

3、 信息管理軟體

用於輸入、存儲、修改、檢索各種信息,例如工資管理軟體、人事管理軟體、計劃管理軟體等。這種軟體發展到一定水平後,各個單項的軟體相互聯系起來,計算機和管理人員組成一個和諧的整體,各種信息在其中合理地流動,形成一個完整、高效的管理信息系統,簡稱MIS。針對不同的部門、行業和需求,可以編制不同的MIS,也可以設計通用的MIS。

4、 輔助設計軟體

用於高效地繪制、編輯工程圖紙或電子線路圖,進行設計中的常規計算,幫助人們尋求較好的設計方案,提高工作效率和質量。

5、 實時控制軟體

主要用於需要隨時收集數據,並以此為依據作出相應的判斷和決策,按預定設計的方案實施自動或半自動控制,以保證安全、准確地完成指定任務。如:化工生產中的實時控制軟體、火箭發射和運行中的自動控制等,針對不同的工作任務可以設計不同的實時控制系統。

6、 輔助教育軟體

運用電子計算機進行教育活動是計算機應用的一個很重要的方面,有關教育方面的軟體很多,主要分成五類:學校輔助教學類軟體,主要針對各學科進行多媒體輔助教學,用於提高學生掌握知識的能力和水平;輔助教育管理類軟體,如各種校長辦公系統等;計算機輔助學習類軟體;英語學習類軟體,如各種背單詞、練口語、考TOTEL軟體等;商務類軟體,如學炒股、學開車等。

教育軟體涵蓋范圍越來越廣,內容涉及學與學的各個領域、各個方面。技術上廣泛採用多媒體、網路、虛擬現實、人工智慧等先進技術。

7、 游戲娛樂軟體

利用計算機高速的運算功能、良好的交互功能和清晰的顯示能力,將游戲和娛樂內容製作成軟體,供使用者在計算機上玩游戲和娛樂。

8、 網路上的各種工具包

例如瀏覽器、搜索引擎、電子郵件、文件下載工具等等。

舉例:Office、Photoshop、Flash、IE、MediaPlayer、3D max、 游戲軟體等等。

二、系統軟體 : 系統軟體是指負責管理、監控和維護計算機硬體和軟體資源的一種軟體。系統軟體用於發揮和擴大計算機的功能及用途,提高計算機的工作效率,方便用戶的使用。系統軟體主要包括操作系統、程序設計語言及其處理程序(如匯編程序、編譯程序、解釋程序等)、資料庫管理系統、系統服務程序以及故障診斷程序、調試程序、編輯程序等工具軟體。如:操作系統(如DOS、Windows、UNIX、OS/2等)、語言編譯和解釋系統、程序設計語言(如匯編語言、BASIC、C、PASCAL等)、網路軟體、資料庫管理系統(如FoxBASE、Oracle等)、系統服務程序(如診斷程序等)。
具體分類為:

1、操作系統
管理計算機的硬體設備,使應用軟體能方便、高效地使用這些設備。在微機上常見的有:DOS、WINDOWS、UNIX、OS/2等
2、資料庫管理系統
有組織地、動態地存貯大量數據,使人們能方便、高效地使用這些數據。現在比較流行的資料庫有FoxPro、DB-2、Access、SQL-server等
3、編譯軟體
CPU執行每一條指令都只完成一項十分簡單的操作,一個系統軟體或應用軟體,要由成千上萬甚至上億條指令組合而成。直接用基本指令來編寫軟體,是一件極其繁重而艱難的工作。為了提高效率,人們規定一套新的指令,稱為高級語言,其中每一條指令完成一項操作,這種操作相對於軟體總的功能而言是簡單而基本的,而相對於CPU的一眇操作而言又是復雜的。
用這種高級語言來編寫程序(稱為源程序)就象用預制板代替磚塊來造房子,效率要高得多。但CPU並不能直接執行這些新的指令,需要編寫一個軟體,專門用來將源程序中的每條指令翻譯成一系列CPU能接受的基本指令(也稱機器語言)使源程序轉化成能在計算機上運行的程序。完成這種翻譯的軟體稱為高級語言編譯軟體,通常把它們歸入系統軟體。目前常用的高級語言有VB、C++、JAVA等,它們各有特點,分別適用於編寫某一類型的程序,它們都有各自的編譯軟體。
系統軟體:MacOS、Dos、Windows 98 、Windows 2000、Windows NT、 ORACLE、 Linux 等。