请教从电脑启动到关机只能运行一个应用程序。

Allblus 2004-08-17 10:39:41
谁有那个从电脑启动到关机只能运行一个应用程序的代码?
就好象电脑点歌系统一样,电脑一启动就运行它,退出这个系统就自动关机.
与该系统无关的操作都屏蔽掉.

...全文
256 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztenv 2004-08-20
  • 打赏
  • 举报
回复
关掉任务栏:
var
h:hwnd;
begin
h:=0;
h:=findwindow(pchar('shell_traywnd'),nil);
if h<>0 then
begin
showwindow(h,sw_hide);
end;
h:=0;
h:=findwindow(pchar('progman'),nil);
if h<>0 then
begin
showwindow(h,sw_hide);
end;
在windowsNT下关机,一楼的高手—— hthunter(核桃-我的心在下雨,雨中我和她携手漫步) 兄已说了,其它的可以用HooK来实现吧,
Allblus 2004-08-20
  • 打赏
  • 举报
回复
不知道有谁用过电脑点歌,我现在需要的就是整台电脑只能运行这点歌系统的功能,


如果与操作系统有关的话,我是要在WINXP里面实现这个功能。


上面回的贴都没用,与点歌系统不同的是在我们这个系统运行中还要用到键盘(只是几个自定义的快捷键而已)。最好能提供原代码,有用的再给分。
smilelhh 2004-08-17
  • 打赏
  • 举报
回复
直接用你的程序替代Windows的SHELL程序
Allblus 2004-08-17
  • 打赏
  • 举报
回复
这个功能其实很多地方都看的到,我实现的差不多了,就是跟我印象中的那个点歌系统差,这个系统看上去就好象它取代了windows操作系统一样.

我是想看看有没有这样功能的实现方法?
niat97222 2004-08-17
  • 打赏
  • 举报
回复
直接用你的程序替代Windows的SHELL程序
不用EXPLOR了
hthunter 2004-08-17
  • 打赏
  • 举报
回复
win2k以上的系统可以设置系统用户看不到工具栏和开始菜单的内容,如果要考虑98的用户,那可能就要用hook的方法了
飞天揽月 2004-08-17
  • 打赏
  • 举报
回复
findwindow
判断程序,如果不是你制定的程序则关闭所打开的程序
beyondtkl 2004-08-17
  • 打赏
  • 举报
回复
keyboard hook...
Allblus 2004-08-17
  • 打赏
  • 举报
回复
要用到键盘啊,不好意思.

hthunter 2004-08-17
  • 打赏
  • 举报
回复
中间是否要用到键盘的?不用键盘的话比较简单:
1、把windows的工具栏拉到高度为0;
2、程序窗体BorderStyle = bsNone,运行时最大化;
3、程序关闭时执行关机代码:

const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; // Borland forgot this declaration
var
hToken : THandle;
tkp : TTokenPrivileges;
tkpo : TTokenPrivileges;
zero : DWORD;
begin
zero:=0;
if not OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin
MessageBox( 0, 'Exit Error', 'OpenProcessToken() Failed', MB_OK );
Exit;
end; // if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin
MessageBox( 0, 'Exit Error', 'OpenProcessToken() Failed', MB_OK );
Exit;
end; // if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)

// SE_SHUTDOWN_NAME
if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[ 0 ].Luid ) then begin
MessageBox( 0, 'Exit Error', 'LookupPrivilegeValue() Failed', MB_OK );
Exit;
end; // if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[0].Luid )
tkp.PrivilegeCount := 1;
tkp.Privileges[ 0 ].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, False, tkp, SizeOf( TTokenPrivileges ), tkpo, zero );
if Boolean( GetLastError() ) then begin
MessageBox( 0, 'Exit Error', 'AdjustTokenPrivileges() Failed', MB_OK );
Exit;
end // if Boolean( GetLastError() )
else ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, EWX_POWEROFF );
end;
Allblus 2004-08-17
  • 打赏
  • 举报
回复
weill(每天提一问,一天学一点)
windows要运行,那是不可能只起动一个程序就能正常工作的,如果是的话,就不是现在的微软伯windows了。通过任务管理器,我们可以看到有很多的程序在持行中,在任务管理器中看不到的也很多。windows正常工作是多个程序共同协作的结果。

我的意思是这个吗?
NO
咬文嚼字
weill 2004-08-17
  • 打赏
  • 举报
回复
其一、楼主的问法是办不到的。我们知道,windows要运行,那是不可能只起动一个程序就能正常工作的,如果是的话,就不是现在的微软伯windows了。通过任务管理器,我们可以看到有很多的程序在持行中,在任务管理器中看不到的也很多。windows正常工作是多个程序共同协作的结果。

其二、如果楼主的要求是让你的windows一起动后就自动运行某个程序,而不出现windows的常见界面,退出程序则系统关闭的话,在win9x下是可以办到的。那就是改动C:\windows\system.ini文件。里面有一项shell = ******.***,把这个改成你起动时要运行的程序就可以了。

其三、在win2000/XP/win2003里,本人还不知道该怎么做。

其四、至于退出你的程序后关机,一般是由你的程序的设计来完成的。
nyf1220 2004-08-17
  • 打赏
  • 举报
回复
好问题,跟ATM都有点象了

不会,哈哈
Allblus 2004-08-17
  • 打赏
  • 举报
回复
怎么替代windows的shell程序啊?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧