实现一个有趣的功能(system modal)(100分)

  • 主题发起人 主题发起人 hhzh426
  • 开始时间 开始时间
对不起,刚才不小心按了一下回车!<br>具体问题是:<br>在VB中用msgbox("提示",vbSystemModal+vbOKOnly)将会出现一个对话框,此时系统中的<br>其他程序都停止运行直到用户响应了该对话框后才会继续运行,就象是系统处于等待状态<br>中一样,其解释是:&lt;font style="font-size: 14pt;color: #0000ff"&gt;<br>vbSystemModal:<br>系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。&lt;/font&gt;<br>&lt;font style="font-size: 24pt;color: #ff00ff"&gt;我想让我的程序达到这种效果该怎么办???&lt;/font&gt;
 
去已答问题中寻找有关"屏幕保护程序"的内容.
 
to Another_eYes:<br>屏幕保护程序运行时别的程序仍在后台运行,并没有停止!<br>只是此时不能使用系统功能键!<br>我要的是停下来等待的效果!
 
在你自己的程序一启动时就Messagebox(...)弹出一个对话框, 停在那儿等.<br><br>Messagebox(0, '系统停了', 'aaa', MB_OK or MB_TOPMOST or MB_SYSTEMMODAL or MB_SETFOREGROUND);<br>
 
估计是调用了16位的LockInput. <br>Win3.1 SDK中有介绍.
 
你说的msgbox("提示",vbSystemModal+vbOKOnly)<br>俺试了一下,<br>完全可以切换到别的程序.
 
&lt;h1&gt;这可以用HTML吗?&lt;/h1&gt;
 
TABLE border=1 width="100%"&gt;<br>&nbsp; <br>&nbsp; &lt;TR&gt;<br>&nbsp; &nbsp; &lt;TD width="5%"&gt;敢兴趣!&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
 
to o*o:<br>我上微软的当了!!!不过我仍想问一问能不能在程序中达到这种效果!即将我的窗口的<br>类型设为系统模式窗口,所有程序停止运行直到我的程序结束或者释放控制权?<br>我查看过MSDN,有关于setsysmodalwindow和lockinput的描述,但是我找不到它的函数<br>原型(在SDK的帮助中),而且MSDN中说是只有在win3.x中使用的。我想问一下,它在哪儿,<br>如何调用它??<br>请大侠帮忙!!!!!
 
setsysmodalwindow弃用了,不过可以用其它技巧达到这种效果,<br>要点是屏蔽alt-tab等等系统键。
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=147675<br><br>看看我在里面的回答
 
If you want only run under Win9X , you can use Win16Mutex .<br><br>It need not simulate ScreenSaver or others.<br><br>But it doesn't work under Windows NT , because there's no Win16Mutex .
 
to hustmouse:<br>where is Win16Mutex ?<br>to 温柔一刀:<br>那个网站我已经去过了,却不知其所以然?有没有这样的函数将窗口的类型设置为系统模<br>态的?因为我注意到这样的现象,当windows me非正常关闭时将出现一个扫描磁盘的界面<br>直到这个界面消失后windows才会象往常一样按顺序加载各种自启动程序!还有windows的<br>登录窗口,也是这样!
 
我在哪个贴子也说了,Windows的登录窗口是独此一份,<br>不可能用一般的Windows程序来实现的,你还是不要想了。<br><br>我给的连接里有源代码下载,你down下来运行一下,<br>是通过各种手段达到使windows不能处理各种消息,<br>从而模拟“系统模态”的。<br><br>
 
我也听说系统有模式对话框,不知道是什吗?
 
不可能系统的其他程序停止,我原来使用VB从来没有发现这一点
 
的确在msdn上说明了此功能,但在win9x上不行.
 
是不是要这个效果:<br>int MessageBox(<br>&nbsp; &nbsp; HWND hWnd, // handle of owner window<br>&nbsp; &nbsp; LPCTSTR lpText, // address of text in message box<br>&nbsp; &nbsp; LPCTSTR lpCaption, // address of title of message box &nbsp;<br>&nbsp; &nbsp; UINT uType // style of message box<br>&nbsp; &nbsp;);<br><br>Parameters<br>uType<br><br>MB_SYSTEMMODAL<br>&nbsp; Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST <br>&nbsp; style. Use system-modal message boxes to notify the user of serious, <br>&nbsp; potentially damaging errors that require immediate attention (for example, <br>&nbsp; running out of memory). This flag has no effect on the user's ability to <br>&nbsp; interact with windows other than those associated with hWnd.<br><br>比如:<br>&nbsp; MessageBox(Application.Handle, 'System Modal Dialog',<br>&nbsp; &nbsp; 'Message', MB_OK or MB_SYSTEMMODAL or MB_ICONSTOP);
 
后退
顶部