線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1253
推到 Plurk!
推到 Facebook!

注册表和更新问题

尚未結案
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-14 18:28:28 IP:211.156.xxx.xxx 未訂閱
请问用Delphi修改某个软件的注册表选项时,能不能主即使该软件作出更新响应?修改后,是否一定要重新启动软件才可以使新的注册表选项生效?
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-14 19:46:55 IP:61.155.xxx.xxx 未訂閱
不必要重起程序,你修改完注册表,然后关闭注册表。就相当于你更新添加数据库记录一样。操作完毕后,就可以使用您的数据了。    如果要使该软件立即做出响应,你可以重新调用该软件需要注册表的部分,重新执行一下就OK了。    风花雪月 e梦情缘
------
风花雪月 e梦情缘
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-14 19:54:39 IP:211.156.xxx.xxx 未訂閱
引言: 如果要使该软件立即做出响应,你可以重新调用该软件需要注册表的部分,重新执行一下就OK了。
好像不行。我修改的注册表项是软件的一个选项,当注册表里的值为1时,软件以A方式显示。为0时以B方式显示。注册表预是立即更新,但软件好像没有立即随著更新呢。我就是要重启软件后它才生效。 再者,别人写的软件我怎样在我的程序中调用它的东西?
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-14 20:00:19 IP:61.221.xxx.xxx 未訂閱
你如果是修改 作業系統的 參數 或硬體參數 是要重新開機的 不過 也可以使用 重新啟動 來處理 windows的 重新啟動 與 重新開機是不同的 喔 哈哈 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-14 20:04:13 IP:211.156.xxx.xxx 未訂閱
我是说重启程序,而不是重启系统。
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-14 20:14:12 IP:61.155.xxx.xxx 未訂閱
不要重新启动你得程序,应该是可以得。 你可以将源码,贴出来码?    风花雪月 e梦情缘
------
风花雪月 e梦情缘
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-14 20:22:05 IP:211.156.xxx.xxx 未訂閱
begin reg:=TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; if reg.OpenKey('\Software\rmi',true) then begin if ViewinA then reg.WriteInteger('viewopt',1) else reg.WriteInteger('viewopt',0); reg.CloseKey; end; reg.Free; ... end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-14 20:46:17 IP:218.16.xxx.xxx 未訂閱
若那個程式是你寫的,還可以改動一下通過 sendMessage 來呼叫那程式重新從 registry load 新設定並執行。 但既然那個程式不是你寫的,跟本不大可能,因為一來大多軟件不會設個 Message 給別人去呼叫來重設設定,二來即使有你也很難可以找來是用甚麼message 和是甚麼架構。 還是重啟它罷... 你可試試 Findwindow 後 send 個 WM_CLOSE 給它試試它可不可以關掉,之後便可再重新啟動它。 若該程式一開始由你啟動,則可以強制關掉它重啟。可參考 : http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30314
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-15 08:08:42 IP:61.155.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); var reg:tregistry; ViewinA:boolean; begin reg:=TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; if reg.OpenKey('\Software\rmi',true) then begin if ViewinA then reg.WriteInteger('viewopt',1) else reg.WriteInteger('viewopt',0); reg.CloseKey; end; //读注册表 reg.OpenKeyReadOnly('\Software\rmi'); showmessage(inttostr(reg.ReadInteger ('viewopt'))); reg.CloseKey ; reg.Free;    end; 1.我上面的程序不要重起,就可以读出viewopt的植,如果你程序总的相关部分需要,你就可以再重新调用一下相关部分程序就可以取到新的值了。 2.如果你修改的不是自身的程序,是其它一个外部程序。这就不一定了,对于程序来说,他们一般在初始化的时候读取REG相关参数一次,如果这样你只有重起这个程序了 3.如果是修改系统相关参数,有的可能需要重起计算机的    风花雪月 e梦情缘
------
风花雪月 e梦情缘
系統時間:2024-04-20 6:41:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!