重新載入註冊表 |
缺席
|
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
针对不同的注册表选项,有不同设置立即生效的方法
//比如这是载入墙纸文件的立即生效方法
在你的Form上加一个OpenPictureDialog用来选择Bitmap墙纸文件
uses
Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
Ini: TregIniFile;
res: boolean;
begin
if OpenPictureDialog1.Execute then
begin
Ini := TRegIniFile.Create('Control Panel');
Ini.WriteString('desktop', 'Wallpaper', OpenPictureDialog1.FileName);
Ini.WriteString('desktop', 'TileWallpaper', '1'); Ini.Free;
res := SystemParametersInfo(SPI_SETDESKWALLPAPER,0,nil,SPIF_SENDWININICHANGE);
end;
end; 有的设置是必须要启动计算机的,我想如果你的注册表设置有很大的变动,最佳的方法只有
CTRL+ALT+DEL >>> REBOOT YOUR PC!!! 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
如何讓這註冊表新值立即生效.
-------------------------------------------------------------
我想你还是对注册表进行修改,然后保存。并且使修改后的效果立即呈现。
如果是这样的话,参见上面解答! 我上面举例也是对注册表,进行修改后,然后立即生效!!!
注意:我上面是在更改控制面板的一个特殊的INI文件,因为这个文件修改就相当于修改注册表中,关于墙纸的配置项目。 發表人 - wnhoo 於 2003/07/15 18:43:57
------
风花雪月 e梦情缘 |
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: wnhoo: 可能我敘述的不夠清楚. 我的意思是,如果用REGEDIT.EXE(或程式)等編輯註冊表後,當然它會編輯成功. 但如何讓這註冊表新值立即生效. 也就是要改memory裡的某些值,這該如何以程式來完成?registry 的值修改後是否生效, 這不是由 REGISTRY 來決定的. 重點是你想要影響的 應用程式 是否有去重讀 REGISTRY 的設定值. 所以你應該提出你想修改的值, 才能告訴你是否有什麼方式可以讓特定的程式去重新載入 REGISTRY 的值. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 用REGEDIT.EXE(或程式)等編輯註冊表後,當然它會編輯成功. <====== 可能錯的. 如何在 2000 或 XP 下以程式更改權限或直接編輯註冊檔? 如預修改的是系統的內定值,而不是應用程式的註冊值呢? 那該如何使其立即生效,其實原意也是如此,並沒有說是應用程式相關.修改 windows 的系統設定值, 也是要 Windows 系統有去讀這個 REGISTRY 才會生效呀!! 平常改個值會生效, 那只是因為 Windows 系統很自動, 沒事就會去重讀設定值. 不過, 你問題的重點, 倒底是要改什麼, 還是看不出來!? 說到底, REGISTRY 只是一份記錄. 要如何讓這個 REGISTRY 生效, 就要看系統或應用程式有沒有去讀取呀!! 太過廣泛性的問題, 實在是不知如何回答起!! ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 譬如說讓系統內定mouse或keyboard失去應有功能,而且立即永久生效. 用修改註冊表方式,而且要跳過權限控制方式.也就是anyuser均可完成. 有沒有任何的idea?可能性不大!! 真的可以隨便改個值就讓 Mouse / Keyboard 就失去作用... 那 REGISTRY 毀損時, 豈不是連 Ctrl Alt Del 都關不掉!!?? 你應該是要做 SECURITY 方面的程式吧!! 還是想想其他的路, 像用 HOOK 的方式來擋, 這可能還實際一些. 當然也有可能真的存在這樣的 Registry 設定, 可以讓 DEVICE 停用. 不過我還沒發現就是了.... :) ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
|
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
|
cccheng
一般會員 發表:8 回覆:19 積分:5 註冊:2002-05-30 發送簡訊給我 |
問題1: 你的程式有限定 USER 只能在 windows 2000/XP 下執行嗎?
問題2: 要達成你程式目的的方法, 只有改這個 REGISTRY 值才可以嗎? 有沒有可能利用別的方式達成? 例如 HOOK 之類的...... ...Aquarius 1.我的程式並沒有設定只在 Win 2000/Xp.
2.其實我的問題已經解決了,但並不是用 Registry 及 Hook 方法,因不屬這問題範圍,故不再提敘.
3.想說這網那麼多高人,應有更好的方法可以解決的.
4.是不是另有能者願意提出更高明的方法,讓大伙開開眼界,如無小弟就結案了.
5.謝謝各位網友的幫忙及時間.
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 1.我的程式並沒有設定只在 Win 2000/Xp. 2.其實我的問題已經解決了,但並不是用 Registry 及 Hook 方法,因不屬這問題範圍,故不再提敘. 3.想說這網那麼多高人,應有更好的方法可以解決的. 4.是不是另有能者願意提出更高明的方法,讓大伙開開眼界,如無小弟就結案了. 5.謝謝各位網友的幫忙及時間.其實寫程式就是這樣, 只要預期的功能能達到, 用那一種方式來完成並不是那麼重要呀!! ...
------
水瓶男的blog: http://791909.blogspot.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |