如果mailto后面同时有多个参数的话,select第一个参数为0必须以

为了账号安全,请及时绑定邮箱和手机
如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔。
&a href=&mailto:?subject=观了不起的盖茨比有感。&body=你好,对此评论有些想法。&&对此影评有何感想,发送邮件给我&/a&
如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔。
非常感谢!
写下你的评论...
写下你的评论...
写下你的评论...
写下你的评论...
写下你的评论...
写下你的评论...
写下你的评论...
写下你的评论...
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2博客访问: 2907
博文数量: 3
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: IT综合技术
执行文件操作
1,CreateProcess说明:
WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。
函数原型:
BOOL CreateProcess
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes。
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
lpApplicationName:指向一个NULL结尾的、用来指定可执行模块的字符串。
这个字符串可以使可执行模块的绝对路径,也可以是相对路径,在后一种情况下,函数使用当前驱动器和目录建立可执行模块的路径。
这个参数可以被设为NULL,在这种情况下,可执行模块的名字必须处于 lpCommandLine 参数的最前面并由空格符与后面的字符分开。
这个被指定的模块可以是一个Win32应用程序。如果适当的子系统在当前计算机上可用的话,它也可以是其他类型的模块(如MS-DOS 或 OS/2)。
在Windows NT中,如果可执行模块是一个16位的应用程序,那么这个参数应该被设置为NULL并且因该在lpCommandLine参数中指定可执行模块的名称。16位的应用程序是以DOS虚拟机或Win32上的Windows(WOW) 为进程的方式运行。
lpCommandLine:指向一个NULL结尾的、用来指定要运行的命令行。
这个参数可以为空,那么函数将使用参数指定的字符串当作要运行的程序的命令行。
如果lpApplicationName和lpCommandLine参数都不为空,那么lpApplicationName参数指定将要被运行的模块,lpCommandLine参数指定将被运行的模块的命令行。新运行的进程可以使用GetCommandLine函数获得整个命令行。C语言程序可以使用argc和argv参数。
如果lpApplicationName参数为空,那么这个字符串中的第一个被空格分隔的要素指定可执行模块名。如果文件名不包含扩展名,那么.exe将被假定为默认的扩展名。如果文件名以一个点(.)结尾且没有扩展名,或文件名中包含路径,.exe将不会被加到后面。如果文件名中不包含路径,Windows将按照如下顺序寻找这个可执行文件:
1.当前应用程序的目录。
2.父进程的目录。
3.Windows 95:Windows系统目录,可以使用GetSystemDirectory函数获得。
Windows NT:32位Windows系统目录。可以使用GetSystemDirectory函数获得,目录名是SYSTEM32。
4.在Windows NT中:16位Windows系统目录。不可以使用Win32函数获得这个目录,但是它会被搜索,目录名是SYSTEM。
5.Windows目录。可以使用GetWindowsDirectory函数获得这个目录。
6.列在PATH环境变量中的目录。
如果被创建的进程是一个以MS-DOS或16位Windows为基础的应用程序,lpCommandLine参数应该是一个以可执行文件的文件名作为第一个要素的绝对路径,因为这样做可以使32位Windows程序工作的很好,这样设置lpCommandLine参数是最强壮的。
lpStartupInfo:指向一个用于决定新进程的主窗体如何显示的STARTUPINFO结构体。
lpProcessInformation:指向一个用来接收新进程的识别信息的PROCESS_INFORMATION结构体。
如果函数执行成功,返回非零值。
如果函数执行失败,返回零,可以使用GetLastError函数获得错误的附加信息。
CreateProcess函数用来运行一个新程序。WinExec和LoadModule函数依旧可用,但是它们同样通过调用CreateProcess函数实现。
2、WaitForSingleObject的用法
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是无信号状态则返回WAIT_TIMEOUT。
hHandle可以是下列对象的句柄:
Change notification
Console input
Memory resource notification
Waitable timer
WaitForSingleObject函数用来检测hHandle事件的信号状态,当函数的执行时间超过dwMilliseconds就返回,但如果参数dwMilliseconds为INFINITE时函数将直到相应时间事件变成有信号状态才返回,否则就一直等待下去,直到WaitForSingleObject有返回直才执行后面的代码.
3、GetExitCodeProcess
Declare Function GetExitCodeProcess Lib "kernel32" Alias "GetExitCodeProcess" (ByVal hProcess As Long, lpExitCode As Long) As Long
获取一个已中断进程的退出代码
Long,非零表示成功,零表示失败。会设置GetLastError
参数 类型及说明
Long,想获取退出代码的一个进程的句柄
lpExitCode Long,用于装载进程退出代码的一个长整数变量。如进程尚未中止,则设为常数STILL_ACTIVE。
4、ShellExecute函数原型及参数含义如下:
ShellExecute(
HWND hwnd, //父窗口句柄
LPCSTR lpOperation, //操作类型
LPCSTR lpFile, //要进行操作的文件或路径
LPCSTR lpParameters, //当lpOperation为“explore”时指定要传递的参数,通常设为NULL
LPCSTR lpDirectory, //指定默认目录,通常设为NULL
INT nShowCmd //文件打开的方式,以通常方式还是最大化或最小化显示
例子如下:
//调用计算器
ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL);
//调用记事本
ShellExecute(NULL,"open","NOTEPAD.EXE",NULL,NULL,SW_SHOWNORMAL);
●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认操作“open”。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
上述仅仅是ShellExecute函数的标准用法,下面将介绍它的特殊用法。
2.特殊用法
如果将FileName参数设置为“http:”协议格式,那么该函数将打开默认浏览器并链接到指定的URL地址。若用户机器中安装了多个浏览器,则该函数将根据Windows 9x/NT注册表中http协议处理程序(Protocols Handler)的设置确定启动哪个浏览器。
格式一:http://网站域名。
如:ShellExecute(handle, ‘open’, http:// ;
www.’, nil, nil, SW_SHOWNORMAL);
格式二:http://网站域名/网页文件名。
如:ShellExecute(handle, ‘open’, http:// ;
www./default.htm’,nil,nil,
SW_SHOWNORMAL);
如果将FileName参数设置为“mailto:”协议格式,那么该函数将启动默认邮件客户程序,如Microsoft Outlook(也包括Microsoft Outlook Express)或Netscape Messanger。若用户机器中安装了多个邮件客户程序,则该函数将根据Windows 9x/NT注册表中mailto协议处理程序的设置确定启动哪个邮件客户程序。
格式一:mailto:
如:ShellExecute(handle,‘open’, ‘mailto:’, nil, nil, SW_SHOWNORMAL);打开新邮件窗口。
格式二:mailto:用户账号@邮件服务器地址
如:ShellExecute(handle, ‘open’,‘ mailto:who@mail.’, nil, nil, SW_SHOWNORMAL);打开新邮件窗口,并自动填入收件人地址。若指定多个收件人地址,则收件人地址之间必须用分号或逗号分隔开(下同)。
格式三:mailto:用户账号@邮件服务器地址?subject=邮件主题&body=邮件正文
如:ShellExecute(handle, ‘open’, ‘ mailto:who@mail.?subject=Hello&Body=This is a test’, nil, nil, SW_SHOWNORMAL);打开新邮件窗口,并自动填入收件人地址、邮件主题和邮件正文。若邮件正文包括多行文本,则必须在每行文本之间加入换行转义字符%0a。
例子(delphi):
在一个应用程序调用c:Project1.
ShellExecute(handle, 'open','c:Project1.exe','字串内容',nil, SW_SHOWNORMAL);
在Project1.exe里可以调用:
procedure TForm1.FormCreate(Sender: TObject);
for i:=1 to paramcount do
if ParamStr(i)'' then showmessage(ParamStr(i));
最后的那个参数,为窗口指定可视性方面的一个命令。
请用下述任何一个常数
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
参考链接:
/ce%5Fken/blog/item/01e93a33d26fb4fa1a4cffd3.html。
5、SetTimerSetTimer函数的用法
1 )用WM_TIMER来设置定时器
先请看SetTimer这个API函数的原型
UINT_PTR SetTimer(
HWND hWnd,
// 窗口句柄
UINT_PTR nIDEvent,
// 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse,
// 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc
// 回调函数
SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器
在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了
于是SetTimer函数的原型变为:
UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))
当使用SetTimer函数的时候,就会生成一个计时器。函数中nIDEvent指的是计时器的标识,也就是名字。nElapse指的是时间间隔,
也就是每隔多长时间触发一次事件。第三个参数是一个回调函数,在这个函数里,放入你想要做的事情的代码,你可以将它设定为NULL,
也就是使用系统默认的回调函数,系统默认认的是onTime函数。这个函数怎么生成的呢?你需要在需要计时器的类的生成onTime函数:
在ClassWizard里,选择需要计时器的类,添加WM_TIME消息映射,就自动生成onTime函数了。然后在函数里添加代码,让代码实现功能。
每隔一段时间就会自动执行一次。
SetTimer(1,1000,NULL);
1:计时器的名称;
1000:时间间隔,单位是毫秒;
NULL:使用onTime函数。
当不需要计时器的时候调用KillTimer(nIDEvent);
例如:KillTimer(1);
2) 调用回调函数
此方法首先写一个如下格式的回调函数
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然后再用SetTimer(1,100,TimerProc)函数来建一个定时器,第三个参数就是回调函数地址。
二. 或许你会问,如果我要加入两个或者两个以上的 timer怎么办?
继续用SetTimer函数吧,上次的timer的ID是1,这次可以是2,3,4。。。。
SetTimer(2,1000,NULL);
SetTimer(3,500,NULL);
嗯,WINDOWS会协调他们的。当然onTimer函数体也要发生变化,要在函数体内添加每一个timer的处理代码:
onTimer(nIDEvent)
switch(nIDEvent)
case 1:........;
case 2:.......;
case 3:......;
阅读(148831) | 评论(0) | 转发(0) |
下一篇:没有了
相关热门文章
给主人留下些什么吧!~~
请登录后评论。电子邮件Mailto的一些参数用法 - 乐逍遥 - 博客园
电子邮件能让访问者方便地向网站提供反馈或联系信息。它可以自动填写抄送和密件抄送,甚至能自动填充主题行。下面介绍如何定制&Mailto功能。  实现&Mailto的基本html代码:  &a&href="mailto:stephen."&点击这里发邮件给站长!&/a&&  当访问者点击这个链接时,会调用他们客户端的email程序,并在收件人框中自动填上收件人的地址。下面,我们将分以下几步介绍如何增加mailto的功能。  第一步:创建一个基本的mailto,包含收件人的地址。&br&  第二步:在收件人地址后用“?cc="开头,你可以填写抄送(CC:)地址,下面这个例子将实现该功能:  &a&href="mailto:stephen.?cc="&点击这里发邮件给站长并“抄送”给guest!&/a&  第三步:就像下面这个例子一样,紧跟着抄送地址之后,写上"&bcc=",就可以填上密件抄送(BCC)地址了&(在添加这些功能时,第一个功能以"?"开头,后面的以"&"开头)。  &a&href="mailto:stephen.?cc=&bcc="&点击这里发邮件给站长并同时“抄送”“暗送”给guest!&/a&  还可以同时发信给N个人!地址之间用逗号分开:  &a&href="mailto:stephen.,,"&点击这里同时发送N个邮件!&/a&  第四步:用?subject=或者&subject(当前面还有抄送或暗送时使用)填上主题。  &a&href="mailto:stephen.?subject=不好意思,只是做个实验!"&点击这里发送有主题的邮件!&/a&  更加夸张的是连邮件内容都可以事先写好!  &a&href="mailto:stephen.?subject=不好意思,只是做个实验!&body=特别无聊,所以发现这么一个功能"&这个邮件地址、内容都有了!以后可就懒了!&/a&  下面我们来总结一下,Mailto后为收件人地址,cc后为抄送地址,bcc后为密件抄送地址,subject后为邮件的主题,body后为邮件的内容,如果Mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的每一个都以“&”开头。下面是一个完整的实例:Mailto:?cc=&bcc=&subject=主题&body=邮件内容mailto 参数讲解
mailto 参数讲解
Mailto能让访问者便捷向网站管理者发送电子邮件。我们还可以利用mailto做许多其它事情。Mailto甚
至还能自动在电子邮件中填入“抄送”和“密件抄送”者,或自动填写主题行。
1)基本的 mailto
&a href="mailto:.cn"&单击这里给我发电子邮件
当浏览者点击这个链接时,浏览器会自动调用默认的客户端电子邮件程序,并在收件人框中自动填上收件人的地址下面。
2)包含抄送地址
在收件人地址后用?cc=开头,你可以填写抄送地址,示例代码如下:
&"mailto:.cn?cc=.cn"&发送
3)包含密件抄送地址
紧跟着抄送地址之后,写上&bcc=,就可以填上密件抄送地址了。
"mailto:.cn?cc=.cn&bcc=.cn"&
注意:在添加这些功能时,第一个功能以"?"开头,后面的以"&"开头
4)包含多个收件人、抄送、密件抄送人
用分号隔开多个收件人的地址即可实现:
&a href="mailto:..cn"&发送
5)包含主题
用?subject=可以填上主题:
a href="mailto:.cn?cc=.cn?subject=发送电子邮件"
下面我们来总结一下,Mailto后为收件人地址,cc后为抄送地址,bcc后为密件抄送地址,subject后为
邮件的主题,body后为邮件的内容,如果Mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的每一个都以“&”开头。下面
是一个完整的实例:Mailto:?cc=&bcc=&
subject=主题&body=邮件内容
发表评论:
TA的最新馆藏[转]&[转]&[转]&下次自动登录
现在的位置:
& 综合 & 正文
[C#] C#电子邮件Mailto的一些参数用法
C#电子邮件Mailto的一些参数用法
电子邮件能让访问者方便地向网站提供反馈或联系信息。它可以自动填写抄送和密件抄送,甚至能自动填充主题行。下面介绍如何定制 Mailto功能。  实现 Mailto的基本html:  &a href="mailto:stephen."&点击这里发邮件给站长!&/a&   当访问者点击这个链接时,会调用他们客户端的email,并在收件人框中自动填上收件人的地址。下面,我们将分以下几步介绍如何增加mailto的功能。  第一步:创建一个基本的mailto,包含收件人的地址。&br&  第二步:在收件人地址后用“?cc="开头,你可以填写抄送(CC:)地址,下面这个例子将实现该功能:  &a href="mailto:stephen.?cc="&点击这里发邮件给站长并“抄送”给guest!&/a&  第三步:就像下面这个例子一样,紧跟着抄送地址之后,写上"&bcc=",就可以填上密件抄送(BCC)地址了 (在添加这些功能时,第一个功能以"?"开头,后面的以"&"开头)。  &a href="mailto:stephen.?cc=&bcc="&点击这里发邮件给站长并同时“抄送”“暗送”给guest!&/a&  还可以同时发信给N个人!地址之间用逗号分开:  &a href="mailto:stephen.,,"&点击这里同时发送N个邮件!&/a&  第四步:用?subject=或者&subject(当前面还有抄送或暗送时使用)填上主题。  &a href="mailto:stephen.?subject=不好意思,只是做个实验!"&点击这里发送有主题的邮件!&/a&  更加夸张的是连邮件内容都可以事先写好!  &a href="mailto:stephen.?subject=不好意思,只是做个实验!&body=特别无聊,所以发现这么一个功能"&这个邮件地址、内容都有了!以后可就懒了!&/a&
  下面我们来总结一下,Mailto后为收件人地址,cc后为抄送地址,bcc后为密件抄送地址,subject后为邮件的主题,body后为邮件的内容,如果Mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的每一个都以“&”开头。下面是一个完整的实例:Mailto:?cc=&bcc=&subject=主题&body=邮件内容
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 mailto 参数 的文章

 

随机推荐