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

如何在service中实现先于登陆框出现Form

尚未結案
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-20 23:50:20 IP:61.159.xxx.xxx 未訂閱
小弟想使程序在NT/2000/XP的登陆对话框出现之前显示一个自己的Form. 我该如何做呢? 谢谢!
alanktop
一般會員


發表:7
回覆:21
積分:5
註冊:2005-03-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-21 00:58:30 IP:218.18.xxx.xxx 未訂閱
请问该Form需要完成什么其他特殊功能吗? Windows注册表本身就提供了在桌面出现之前自定义Form的功能,但是太简单,只是一个信息框而已: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon] "LegalNoticeCaption"="Test Message" "LegalNoticeText"="This is a test message before login." 当然这可以直接做成注册表文件,也可以编程写注册表。 但是要做复杂的Form并完成其他功能,似乎有点难度。看看各位ktop大哥有无好的主意,我也很有兴趣。
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-21 08:35:09 IP:220.163.xxx.xxx 未訂閱
这个Form设想完成: 先于NT/2000/Xp登陆框出现,等待用户输入某些信息后才能正常进入. 之所以将他写成service是因为当登陆框出现的同时还要连接网络,这个时候系统还没有进入正常桌面(NT/2000/XP登陆框还没有出现). 谢谢~各位大哥!
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-27 11:46:55 IP:220.165.xxx.xxx 未訂閱
RunServices注册键  RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。RunServices的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices。 _________________________________ 问题是2000/xp下在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersionHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion却找不到RunServices/RunServicesOnce。自己新建进去,然后添加程序进去也不会自启动。不知道为什么,还请高人指点,小弟在此先谢过。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-30 19:32:53 IP:61.31.xxx.xxx 未訂閱
NT 下不支持 RunServices 。這個鍵值。 看來只有透過修改 PE 方式。 並置換系統 WinLogon.exe 檔案。 不曉得?有沒有試過! HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit 在鍵值 userinit.exe,後面加上自己的程式。 如: Userinit.exe,Project1.exe
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-04 00:23:04 IP:61.159.xxx.xxx 未訂閱
引言: 不曉得?有沒有試過! HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit 在鍵值 userinit.exe,後面加上自己的程式。 如: Userinit.exe,Project1.exe
谢谢~~方法可行,不过是在登陆以后. 而RunServices注册键 RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。 RunServices的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-04 00:50:34 IP:219.81.xxx.xxx 未訂閱
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices-> 只能在 Win9x/ME 下有效。在NT/2000/XP 均無效。 目前來說可能方法為置換 WinLogon.exe 先將原WinLogon備份為 WinLogon.BK 在利用自己寫好的程式(WinLogon.exe) 替換系統檔。在程式中加入呼叫WinLogon.BK並為其 CreateProcess 以上想法,做個參考! 我想不出來有其他的方式,要不然更換Gina.dll 的方式。
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-04 12:45:15 IP:220.163.xxx.xxx 未訂閱
引言: 目前來說可能方法為置換 WinLogon.exe 先將原WinLogon備份為 WinLogon.BK 在利用自己寫好的程式(WinLogon.exe) 替換系統檔。在程式中加入呼叫WinLogon.BK並為其 CreateProcess
谢谢您~wameng 这个方法仿佛需要做的事情很多,很多细节都很复杂.
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-04 15:45:01 IP:61.222.xxx.xxx 未訂閱
有沒有試過用 IniFileMapping 我懶得Try了! 在早期 Win.ini 不是有 Load or Run = 換到這裡了! HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-04-05 09:57:51 IP:220.163.xxx.xxx 未訂閱
谢谢wameng大大. 虽然没能达到我希望的效果不过还是谢谢您的热心帮助! 發表人 - xxxxzxx 於 2005/04/05 10:17:01
系統時間:2024-04-29 13:34:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!