GVKun编程网logo

ShowMsg函数妙用(show 函数)

10

这篇文章主要围绕ShowMsg函数妙用和show函数展开,旨在为您提供一份详细的参考资料。我们将全面介绍ShowMsg函数妙用的优缺点,解答show函数的相关问题,同时也会为您带来51nod1067B

这篇文章主要围绕ShowMsg函数妙用show 函数展开,旨在为您提供一份详细的参考资料。我们将全面介绍ShowMsg函数妙用的优缺点,解答show 函数的相关问题,同时也会为您带来51 nod1067 Bash游戏 V2(sg函数打表)、C语言的isatty函数和ttyname函数以及sendmsg函数用法、dede 中弹出框函数 function ShowMsg、delphi – 获取对话框窗口表单的引用(ShowMessage,MsgDialog等)的实用方法。

本文目录一览:

ShowMsg函数妙用(show 函数)

ShowMsg函数妙用(show 函数)

 

在对DedeCMS做2次开发的时候可能提示信息会经常用到,为了方便在此将ShowMsg办法提取出来,使用办法:

ShowMsg(“提示信息”,“进行跳转的页面网址”);

ShowMsg的代码如下:

function ShowMsg($msg, $gourl, $onlymsg = 0, $limittime = 0) //系统提示信息
{
/*
*$msg 信息提示的内容
*$gourl 需要跳转的URL
*$onlymsg 1 表示不自动跳转 0表示自动跳转
*$limittime 跳转的时间
*/
    global $dsql, $cfg_ver_lang;
    if (eregi ( "^gb", $cfg_ver_lang ))
    $cfg_ver_lang = 'utf-8';
    $htmlhead = "<html>\r\n<head>\r\n<title>系统提示</title>\r\n<meta http-equiv=\"Content-Type\"
                 content=\"text/html; charset=utf-8\" />\r\n";
    $htmlhead .= "<base target='_self'/>\r\n</head>\r\n<body leftmargin='0' topmargin='0'>\r\n<center>\r\n<script>\r\n";
    $htmlfoot = "</script>\r\n</center>\r\n</body>\r\n</html>\r\n";
 
    if ($limittime == 0)
        $litime = 3000;
    else
        $litime = $limittime;
 
    if ($gourl == "-1") {
        if ($limittime == 0)
            $litime = 3000;
        $gourl = "javascript:history.go(-1);";
    }
 
    if ($gourl == "" || $onlymsg == 1) {
        $msg = "<script>alert(\"" . str_replace ( "\"", "“", $msg ) . "\");</script>";
    } else {
        $func = "     var pgo=0;
      function JumpUrl(){
        if(pgo==0){ location='$gourl'; pgo=1; }
      }\r\n";
        $rmsg = $func;
        $rmsg .= "document.write(\"<br /><div>";
        $rmsg .= "<div;'><b>提示信息!</b></div>\");\r\n";
        $rmsg .= "document.write(\"<div><br />\");\r\n";
        $rmsg .= "document.write(\"".str_replace("\"","“",$msg)."\");\r\n";
        $rmsg .= "document.write(\"";
        if ($onlymsg == 0) {
            if ($gourl != "javascript:;" && $gourl != "") {
                $rmsg .= "<br/><br/><a href='" . $gourl . "'>如果你的浏览器没反应,请点击这里...</a>";
            }
            $rmsg .= "<br/><br/></div>\");\r\n";
            if ($gourl != "javascript:;" && $gourl != "") {
                $rmsg .= "setTimeout('JumpUrl()',$litime);";
            }
        } else {
            $rmsg .= "<br/><br/></div>\");\r\n";
        }
        $msg = $htmlhead . $rmsg . $htmlfoot;
    }
    if (isset ( $dsql ) && is_object ( $dsql ))
        @$dsql->Close ();
    echo $msg;

本文章网址:http://www.ppssdd.com/code/14566.html。转载请保留出处,谢谢合作!

51 nod1067 Bash游戏 V2(sg函数打表)

51 nod1067 Bash游戏 V2(sg函数打表)

1067 Bash游戏 V2

  1. 1.0 秒
  2.  
  3. 131,072.0 KB
  4.  
  5. 5 分
  6.  
  7. 1级题
 

有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。

例如N = 2。A只能拿1颗,所以B可以拿到最后1颗石子。

 

输入

第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)

输出

共T行,如果A获胜输出A,如果B获胜输出B。

sg函数先打表,然后找规律。我们可以发现当n%7==0||n%7==2时sg值为0。
打表代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=100,M=5e5+5;
int v[N],sg[N],s[3]={1,3,4};
int mex(int x)
{
    memset(v,0,sizeof(v));
    for(int i=0;i<3;i++)
    {
        if(x<s[i])
            break;
        v[sg[x-s[i]]]=1;
    }
    for(int i=0;;i++)
    {
        if(!v[i])
            return i;
    }
}
int main()
{
    int i;
    sg[0]=0;
    for(int i=1;i<N;i++)
    {
        sg[i]=mex(i);
    }
    for(int i=0;i<N;i++)
    {
        printf("sg[%d] = %d\n",i,sg[i]);
    }
    return 0;
}

AC代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main()
{
    int T,n,x;
    cin>>T;
    while(T--)
    {
        cin>>x;
        if(x%7==0||x%7==2)
        {
            printf("B\n");
        }
        else
        {
            printf("A\n");
        }
    }
   return 0;
}

C语言的isatty函数和ttyname函数以及sendmsg函数用法

C语言的isatty函数和ttyname函数以及sendmsg函数用法

isatty()函数
头文件:

#include <unistd.h>

定义函数:

int isatty(int desc);

函数说明:如果参数 desc 所代表的文件描述词为一终端机则返回1,否则返回0.

返回值:如果文件为终端机则返回1,否则返回0.

C语言ttyname()函数:返回一终端机名称
头文件:

#include <unistd.h>

定义函数:

char * ttyname(int desc);

函数说明:如果参数desc 所代表的文件描述词为一终端机,则会将此终端机名称由一字符串指针返回,否则返回NULL.

返回值:如果成功则返回指向终端机名称的字符串指针,有错误情况发生时则返回NULL.

范例

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
main()
{
  int fd;
  char * file = "/dev/tty";
  fd = open (fiel,O_RDONLY);
  printf("%s",file);
  if(isatty(fd))
  {
   printf("is a tty. \n");
   printf("ttyname = %s \n",ttyname(fd));
  }
  else
   printf(" is not a tty\n");
  close(fd);
}

执行:

/dev/tty is a tty ttyname = /dev/tty

C语言sendmsg()函数:经socket传送数据
头文件:

#include <sys/types.h>  #include <sys/socket.h>

定义函数:

int sendmsg(int s,const strcut msghdr *msg,unsigned int flags);

函数说明:sendmsg()用来将数据由指定的socket 传给对方主机. 参数s 为已建立好连线的socket,如果利用UDP 协议则不需经过连线操作. 参数msg 指向欲连线的数据结构内容,参数flags 一般默认为0,详细描述请参考send().

结构msghdr 定义如下:

struct msghdr
{
  void *msg_name; //Address to send to /receive from .
  socklen_t msg_namelen; //Length of addres data
  strcut iovec * msg_iov; //Vector of data to send/receive into
  size_t msg_iovlen; //Number of elements in the vector
  void * msg_control; //Ancillary dat
  size_t msg_controllen; //Ancillary data buffer length
  int msg_flags; //Flags on received message
};

返回值:成功则返回实际传送出去的字符数,失败返回-1,错误原因存于errno

错误代码:
1、EBADF 参数s 非合法的socket 处理代码.
2、EFAULT 参数中有一指针指向无法存取的内存空间
3、ENOTSOCK 参数s 为一文件描述词,非socket.
4、EINTR 被信号所中断.
5、EAGAIN 此操作会令进程阻断,但参数s 的socket 为不可阻断.
6、ENOBUFS 系统的缓冲内存不足
7、ENOMEM 核心内存不足 EINVAL 传给系统调用的参数不正确.

dede 中弹出框函数 function ShowMsg

dede 中弹出框函数 function ShowMsg

高春辉、王春生、朱峰:关于开源创业的 15 件小事
在  \include\common.func. php 229 行

本文同步分享在 博客 “lxw1844912514”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

delphi – 获取对话框窗口表单的引用(ShowMessage,MsgDialog等)

delphi – 获取对话框窗口表单的引用(ShowMessage,MsgDialog等)

有没有我可以使用的事件所以我会抓住ShowMessage出现在屏幕上的那一刻?我还需要传递对已显示消息的TForm的引用.

到目前为止,我尝试过OnDeactivate,但看起来,ShowMessage并没有导致它……

在.NET中有一个关于Application的方法可以捕获每个MessageBox(Application.AddFilterMessage或类似这样的smth),我在delphi中需要这样的东西

我想要达到的目的是:
我必须抓住一个对话窗口出现的时刻(或者只是一个模态窗口,但它并不那么舒服).我需要做几个指令.这些说明的目标是给我一个刚刚收到的DialogWindow的参考,所以我可以得到一些位于它上面的按钮.

解决方法

在现代Delphi版本中,在现代 Windows版本中,ShowMessage会生成Windows对话框窗口.您可以使用WH_CBT挂钩来捕获该对话框窗口的激活.

function CBTProc(nCode: Integer; wParam: WParaM; lParam: LParaM): LRESULT; stdcall;
var
  wnd: HWND;
  ClassName: string;
begin
  if nCode=HCBT_ACTIVATE then
  begin
    wnd := wParam;
    SetLength(ClassName,256);
    SetLength(ClassName,GetClassName(wnd,PChar(ClassName),Length(ClassName)));
    if (ClassName='#32770') or (ClassName='TMessageForm') then
      Beep;
  end;
  Result := CallNextHookEx(0,nCode,wParam,lParam);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Hook: HHOOK;
begin
  Hook := SetwindowsHookEx(WH_CBT,CBTProc,HInstance,GetCurrentThreadId);
  if Hook=0 then
    RaiseLastOSError;
  try
    ShowMessage('hello');
  finally
    if not UnhookWindowsHookEx(Hook) then
      RaiseLastOSError;
  end;
end;

请注意,实际的窗口类名称因系统而异.在XP上,类名将是TMessageForm,因为该对话框实际上是一个Delphi TForm.但是,在Vista上以后,对话框是一个标准窗口消息框对话框,窗口类名称为#32770.

我已经向ShowMessage调用了一次,但是如果要挂钩应用程序中显示的所有消息对话框,可以在启动时安装它.

关于ShowMsg函数妙用show 函数的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于51 nod1067 Bash游戏 V2(sg函数打表)、C语言的isatty函数和ttyname函数以及sendmsg函数用法、dede 中弹出框函数 function ShowMsg、delphi – 获取对话框窗口表单的引用(ShowMessage,MsgDialog等)等相关内容,可以在本站寻找。

本文标签: