注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

chunwaihome 的博客

 
 
 

日志

 
 

Powerpro註冊表插件  

2009-10-21 11:32:55|  分类: Powerpro Plugin |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  •  註冊表簡介

在系統中註冊表是一個記錄32位驅動的設置和位置的數據庫。當操作系統需要存取硬件設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文名、版本號、其他設置和信息,沒有註冊表對設備的記錄,它們就不能被使用。
  當一個用戶準備運行一個應用程序,註冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
而Powerpro的Regedit 插作能夠增加、刪除和顯示註冊表的值。

 

  • 下載解壓註冊表插件所得檔案:

reg.dll
regPluginReadme.rtf
regPluginReadme.chm
powerProRegPluginTests.reg
regPluginTestScript.powerpro
regPluginTestScriptOutputProvided.log
reg.ini

  • 安裝Regedit Plugin

複製reg.dll和reg.ini兩個檔案到Powerpro主目錄或Plugin子目錄。而reg.ini是設定檔案,它的默認內容如下:

Reg.ini

[regConfig]

; raise powerpro error dialog on error
;1/0 t/f y/n default is 1 (yes)
raiseErrors=1

;1/0 t/f y/n default is 1 (yes)
useLongVars=yes

;status/data/none s/d/n default is data
whatToReturn=data

;which file to log to, relative to powerpro.exe folder or absolute
;defaults to regPlugin.log
logfile=regPlugin.log

;1/0 t/f y/n default is 1 (yes) do logging for reg changes or not
log=y

  • 自行運行程序的註冊碼位置

我們用以下的註冊碼作例子

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

RUN鍵包括另一個子鍵OptionalComponents,如圖:

Powerpro註冊表插件 - Y偉 - chunwaihome 的博客

註:在RUN鍵裏所包含的機碼會隨著系統而啟動

Name

 Type

Data

OptionalComponents  Key  
 Default  REG_SZ
 Everything  REG_SZ  "C:\Program Files\Everything\Everything.exe" -startup
 vmware-tray  REG_SZ  "C:\Program Files\VMware\VMware Workstation\vmware-tray.exe"
 Acrobat Assistant 7.0  REG_SZ  "C:\Program Files\Adobe\Acrobat 7.0\Distillr\Acrotray.exe"
 WinampAgent REG_SZ   "C:\Program Files\Winamp\Winampa.exe"

  •  顯示註冊碼

 service

 Description

 get_string

Return a REG_SZ or REG_EXPAND_SZ value

reg.get_string(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run")

得出值是ppwork,如果資料值是(數值未設定),得出值將是空白。

reg.get_string(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\everything")

得出值是"C:\Program Files\Everything\Everything.exe" -startup

 get_dword  return a REG_DWORD value
 get_binary  return a REG_BINARY value
 get_multi_string

 return a REG_MULTI_SZvalue

語法:  returnval = reg.get_multi_string(vector, [\\MachineName\]<hive name>\<key path>\(<value name>) )

reg.get_multi_string(?"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\DsSpooler\portName")

注意:get_multi_string需要另一插作"vector"才能正確獲取數值,您可用get_value作替代。

 get_value

 能得出任何類型值

reg.get_value(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run")

得出值是ppwork

enum_value
enum_values
  • enum_values

列出Run子鍵的所有Value名稱

reg.enum_values(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run")

得出一系列的Value值是,而它們每個都以newline作隔

Everything
vmware-tray
Acrobat Assistant 7.0
WinampAgent

  • enum_value

執行命令enum_value後,它會得出子鍵中的第一個Key名稱,當您第二次執行emum_value它會得出第二個key名稱.......如此類推

reg.enum_value(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
得出值為REG_SZ

enum_key

enum_keys

 列出Run鍵的所有子鍵(Subkey)值,每個子鍵以新一行作分隔。

reg.geenum_keys(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run")

得出值為OptionalComponents

 expand_string

 得出Enironment Variable的完整路徑,比如

 reg.expand_string(?"%username")

得出結果是Administrator

 

  • 怎樣顯示Get_value所獲機碼的類型呢

Get_value不像Get_Binary,Get_string_get_multi_string,get_dword只能顯示某類型的Type,比如Get_string只能顯示reg_sz和reg_expand_sz的數值。get_value能夠顯示所有類型的數值,但我們怎樣能夠知道它所顯示值是什麼類型呢?在這裏我想介紹另外兩個命令:

  • rg_status                     如果命令執行成功以"OK"表示,失敗則以"ERROR"作開首,然後跟著錯誤訊息例如ERROR: BAD HIVE" or  "ERROR: CAN'T CONNECT TO HIVE"
  • rg_value                       rg_value能夠獲取機碼的類型,所得的類型包括表下

 

String returned

Enum value

Meaning

RE

G_SZ

1

a string

REG_EXPAND_SZ

2

a string (with unexpanded environment variable references). Use expand_string to expand environment variables

REG_DWORD

4

32-bit number

REG_BINARY

3

Free form binary

REG_DWORD_LITTLE_ENDIAN

4

32-bit number (same as REG_DWORD)

REG_MULTI_SZ

7

Multiple Unicode strings

  • 修改註冊碼

 set_string

語法:returnval =
reg.set_xxxxx ([\\MachineName\]<hive name>\<key path>\(<value name>), new_value )

修改REG_SZ或REG_EXPAND_SZ值,如果該值不存在的話,新機碼將自動被產生。

例如我想將原本安裝Everything程序路徑由C:改為D:

Reg.set_string(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Everything", "abc.exe")

 set_unexp_str  
 set_dword

修改Dword值例如:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor\Start

Dword=4表示禁示使用U盘,Dword=3表示允許使用U盘。

使用get_dword得出原本Dword值,結果為3

reg.get_dword(?"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor\Start")

然後用set_dword修改dword值為4

reg.set_dword(?"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor\Start","4")

 set_binary  修改Binary值
 set_multi_string  修改Multi_string值
   
   

 

  • 刪除註冊碼

 Delete_value  刪除註冊碼,例如

reg.delete_value(?"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor\Start")

刪除start註冊碼

 Delete_key

 刪除子鍵(Subkey)

reg.delete_key(?"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor")

刪除UsbStor子鍵

   

  • Create_Key

Create_Key可以創造新子鍵,比如我想在UsbStor鍵中創建名為161Key

reg.create_key(?"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor\161")

至於什麼是Key,什麼是Value,看圖大家就會明白

Powerpro註冊表插件 - Y偉 - chunwaihome 的博客

  • 關閉Reg插件

 Close 中斷插件與註冊表的連系
 Unload 在記憶体中清除插件

 

  • Hive Name

Powerpro Reg插件允件您使用縮短的Keyword取代原本複雜的Hive名稱,見表一

The desired keyword can be a substring of the string in provided hive name: So for instance all the following are valid to specify the hive HKEY_CURRENT_USER:

  "HKEY_CURRENT_USER"
  "HKCU"
  "CURRENT_USER"

 表一

KEYWORD

HIVE

CLASSES

HKEY_CLASSES_ROOT

CR

HKEY_CLASSES_ROOT

CURRENT

HKEY_CURRENT_USER

CU

HKEY_CURRENT_USER

LOCAL

HKEY_LOCAL_MACHINE

LM

HKEY_LOCAL_MACHINE

USERS

HKEY_USERS

CURRENT

HKEY_CURRENT_CONFIG

CC

HKEY_CURRENT_CONFIG

DYN

HKEY_DYN_DATA

DD

HKEY_DYN_DATA

  •  Version

以四位數的方式顯示Reg 插件的版本名稱

 

這個腳本嘗試在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\搜尋Everything的鍵。如果找到的話,顯示Everything的string值和rg_status將會顯示OK字樣。

"C:\Program Files\Everything\Everything.exe" -startup

OK

如果找不到everything鍵的話,rg_status將會顯示

ERROR: reg.get_string: VALUE NOT FOUND

global rg_status
local aValue = reg.get_string(?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Everything")

reg.unload

win.debug(aValue)

win.debug(rg_status)

  评论这张
 
阅读(853)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017