14 12
发新话题
打印

[求助] windows的程序暂停PAUSE是如何实现的?(已解决)

本主题由 刹那芳华 于 2008-6-23 12:14 加入精华

windows的程序暂停PAUSE是如何实现的?(已解决)

RT
在程序中调用system("PAUSE");
可以实现程序暂停
但是会弹出一个“按任意键继续"的字符框
很不爽
我想知道windows的这个pause程序是怎么实现的



解决方案:
引用:
原帖由 yiyanwan77 于 2008-6-23 11:01 发表

用一个很简单的方法实现了

早应该想到的
需要暂停的地方
stepcount++;
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
  MSG msg;
  GetMessage(&msg,NULL,0,0);
  TranslateMessage ...
[ 本帖最后由 刹那芳华 于 2008-6-23 12:14 编辑 ]
其实馒头是万能的,饿了就可以吃。想吃饼,就把馒头拍扁;想吃面条,就把馒头用梳子梳;想吃汉堡,就把馒头切开夹菜吃……

TOP

不知道你要找的是不是这个。。。。。。
复制内容到剪贴板
代码:
http://dev.csdn.net/article/16/16193.shtm
实现应该是个系统调用吧。。。。。。
他大舅他二舅都是他舅,高桌子低板凳都是木头~

TOP

这个楼主可能想复杂了,pause一般在bat里面用的比较多一些,就像linux下的shell调用了一个linux命令一样,你的是在C中使用system函数实现调用其他命令...

一句话
#include <conio.h>

int main(int argc,char* argv[])
{
      printf("Press any key to continue......");
      getche();
}
编译成pause2.exe放在当前目录或者系统环境变量path集合里面

然后bat文件里面就可以用了,比如:
@echo off
echo test pause2.exe

pause2
echo test pause2.exe
pause2

当然你用C的system函数调用pause2也行

刚才编了个试了下,成功...
本帖最近评分记录
    所有的暧昧就这样结束吧
        你不爱我
            就不要给我任何期待.
          你会是无心的
              但是我会很在意......
                                等待和希望,送给所有的朋友。

TOP

LS都是正解

其实就是相当于在cmd下 输入了 >pause
其他也是可以的 system("dir"), system("tree")  ~

TOP

我知道如何调用
用了之后会有有个提示框嘛
我是MFC对话框程序
突然出来这么个东西
多败胃口
我希望可以把这个框隐藏或者去掉
实在不行就根据其原理写过函数
其实馒头是万能的,饿了就可以吃。想吃饼,就把馒头拍扁;想吃面条,就把馒头用梳子梳;想吃汉堡,就把馒头切开夹菜吃……

TOP

引用:
原帖由 紫色嫣然 于 2008-6-23 09:47 发表
这个楼主可能想复杂了,pause一般在bat里面用的比较多一些,就像linux下的shell调用了一个linux命令一样,你的是在C中使用system函数实现调用其他命令...

一句话
#include

int main(int argc,char* argv[])
{
       ...
这注意好

但是还是有框框啊

[ 本帖最后由 yiyanwan77 于 2008-6-23 10:20 编辑 ]
其实馒头是万能的,饿了就可以吃。想吃饼,就把馒头拍扁;想吃面条,就把馒头用梳子梳;想吃汉堡,就把馒头切开夹菜吃……

TOP

引用:
原帖由 yiyanwan77 于 2008-6-23 10:16 发表
我知道如何调用
用了之后会有有个提示框嘛
我是MFC对话框程序
突然出来这么个东西
多败胃口
我希望可以把这个框隐藏或者去掉
实在不行就根据其原理写过函数 ...
你要调用什么东西么?还是运行其他程序? ShellExecute 或者 CreateProcess 可以不?

TOP

引用:
原帖由 唐尸三摆手 于 2008-6-23 10:20 发表


你要调用什么东西么?还是运行其他程序? ShellExecute 或者 CreateProcess 可以不?
我只是想让程序暂停运行
用system("PAUSE");
可以
但是有提示字符界面框
不美观
运行其他程序用WinExec也就可以了
我原来设想得比较复杂
对话框初始化后创建一个互斥变量hMutex=CreateMutex...
同时启动一个定时器
在某个函数里调用WaitForSingleObject(hMutex)
在OnTimer中释放这个互斥变量ReleaseMutex
可是没有效果
在想是不是因为单线程的缘故
接着想看看能不能用多线程来做
可是如果把需要暂停的函数作为线程调用的话
它和调用函数岂不是同时进行?
要是全部用线程实现的话
要改动的实在太多
所以想到用这个法子
可是又不好看
其实馒头是万能的,饿了就可以吃。想吃饼,就把馒头拍扁;想吃面条,就把馒头用梳子梳;想吃汉堡,就把馒头切开夹菜吃……

TOP

回复 8# yiyanwan77 的帖子

那就多线程吧~ 不然主界面肯定要阻塞了

TOP

WaitForSingleObject()......
SetEvent().....
......等等,都能实现你的要求吧
    所有的暧昧就这样结束吧
        你不爱我
            就不要给我任何期待.
          你会是无心的
              但是我会很在意......
                                等待和希望,送给所有的朋友。

TOP

 14 12
发新话题