要調(diào)用Windows API的RegOpenKeyEx(), RegSetValueEx(), RegSetValueEx()等函數(shù)。首先要確認(rèn)你的C編譯器支持調(diào)用Windows API.

創(chuàng)新互聯(lián)公司長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為集寧企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站制作,集寧網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
舉例:
要自動運(yùn)行"D:\Myprog\MyProgram.exe", 修改注冊表,在
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
中加一項(xiàng):
RunMyProg="D:\Myprog\MyProgram.exe"
#include windows.h
static char subkey[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
static char vname[] = "RunMyProg";
static char exefile[] = "D:\\Myprog\\MyProgram.exe";
ULONG dType = REG_SZ, len = 0;
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_SET_VALUE|KEY_QUERY_VALUE,hKey);//打開。
if (RegQueryValueEx(hKey, vname, 0, dType, NULL, len)) { //如果沒有RunMyProg,
RegSetValueEx(hKey, vname, 0, REG_SZ, exefile, strlen(exefile)+1); //就加上。
}
RegCloseKey(hKey); //關(guān)閉。
1、首先,輸入寄存器變量關(guān)鍵字【register】。
2、然后輸入變量的類型。
3、接下來輸入變量名。
4、然后就可以i開始i對他進(jìn)行應(yīng)用。
5、那么來看看寄存器變量的作用。
6、其實(shí),寄存器變量就是靠近寄存器的空間,就完成了。
注意事項(xiàng):
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編語言代碼生成的目標(biāo)程序效率低10%~20%。因此,C語言可以編寫系統(tǒng)軟件。
“reg51.h”是一些編譯軟件自帶的MCS-51單片機(jī)特殊功能寄存器聲明文件,這個(gè)頭文件中包含了對P0~P3 I/O口、中斷系統(tǒng)等幾乎內(nèi)部所有特殊功能寄存器進(jìn)行了聲明,其文件名“reg51.h”中的“reg”就是英文“register”(寄存器)的縮寫。對特殊功能寄存器進(jìn)行聲明后,編寫程序時(shí)就不需要使用難以記憶的寄存器地址來對寄存器進(jìn)行操作了,每個(gè)寄存器都被聲明了特定的名字,通過人類容易記憶的名稱來編程更加方便。
Reg
對注冊表子項(xiàng)信息和注冊表項(xiàng)值中的值執(zhí)行添加、更改、導(dǎo)入、導(dǎo)出以及其他操作。
語法
reg add KeyName [{/v ValueName | /ve}] [/t DataType] [/s Separator] [/d Data] [/f]
不過你問的好像不是這個(gè)~
0x00 是表示16進(jìn)制 我認(rèn)為就是個(gè)變量的定義
看到大家討論這方面的東西,作點(diǎn)貢獻(xiàn)聊表各位高手對這個(gè)版快的無私奉獻(xiàn) :oops:
如果用戶熟悉Linux下的sed、awk、grep或vi,那么對正則表達(dá)式這一概念肯定不會陌生。由于它可以極大地簡化處理字符串時(shí)的復(fù)雜
度,因此現(xiàn)在已經(jīng)在許多Linux實(shí)用工具中得到了應(yīng)用。千萬不要以為正則表達(dá)式只是Perl、Python、Bash等腳本語言的專利,作為C語言程序
員,用戶同樣可以在自己的程序中運(yùn)用正則表達(dá)式。
標(biāo)準(zhǔn)的C和C++都不支持正則表達(dá)式,但有一些函數(shù)庫可以輔助C/C++程序員完成這一功能,其中最著名的當(dāng)數(shù)Philip Hazel的Perl-Compatible Regular Expression庫,許多Linux發(fā)行版本都帶有這個(gè)函數(shù)庫。
編譯正則表達(dá)式
為了提高效率,在將一個(gè)字符串與正則表達(dá)式進(jìn)行比較之前,首先要用regcomp()函數(shù)對它進(jìn)行編譯,將其轉(zhuǎn)化為regex_t結(jié)構(gòu):
int regcomp(regex_t *preg, const char *regex, int cflags);
參數(shù)regex是一個(gè)字符串,它代表將要被編譯的正則表達(dá)式;參數(shù)preg指向一個(gè)聲明為regex_t的數(shù)據(jù)結(jié)構(gòu),用來保存編譯結(jié)果;參數(shù)cflags決定了正則表達(dá)式該如何被處理的細(xì)節(jié)。
如果函數(shù)regcomp()執(zhí)行成功,并且編譯結(jié)果被正確填充到preg中后,函數(shù)將返回0,任何其它的返回結(jié)果都代表有某種錯誤產(chǎn)生。
匹配正則表達(dá)式
一旦用regcomp()函數(shù)成功地編譯了正則表達(dá)式,接下來就可以調(diào)用regexec()函數(shù)完成模式匹配:
int regexec(const regex_t *preg, const char *string, size_t nmatch,regmatch_t pmatch[], int eflags);
typedef struct {
regoff_t rm_so;
regoff_t rm_eo;
} regmatch_t;
參數(shù)preg指向編譯后的正則表達(dá)式,參數(shù)string是將要進(jìn)行匹配的字符串,而參數(shù)nmatch和pmatch則用于把匹配結(jié)果返回給調(diào)用程序,最后一個(gè)參數(shù)eflags決定了匹配的細(xì)節(jié)。
在調(diào)用函數(shù)regexec()進(jìn)行模式匹配的過程中,可能在字符串string中會有多處與給定的正則表達(dá)式相匹配,參數(shù)pmatch就是用來保
存這些匹配位置的,而參數(shù)nmatch則告訴函數(shù)regexec()最多可以把多少個(gè)匹配結(jié)果填充到pmatch數(shù)組中。當(dāng)regexec()函數(shù)成功返
回時(shí),從string+pmatch[0].rm_so到string+pmatch[0].rm_eo是第一個(gè)匹配的字符串,而從
string+pmatch[1].rm_so到string+pmatch[1].rm_eo,則是第二個(gè)匹配的字符串,依此類推。
釋放正則表達(dá)式
無論什么時(shí)候,當(dāng)不再需要已經(jīng)編譯過的正則表達(dá)式時(shí),都應(yīng)該調(diào)用函數(shù)regfree()將其釋放,以免產(chǎn)生內(nèi)存泄漏。
分享題目:c語言reg函數(shù),reg語法
文章分享:http://chinadenli.net/article49/dsgishh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、定制開發(fā)、ChatGPT、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)