控制台开启邮箱--C语言实现

需要用到shell32.dll里的ShellExecute函数。
代码如下:

/**********CopyRight@piaoxiang.zhang*****/
#include <stdio.h>
#include <string.h>
#include <windows.h>
typedef int (*ReadReg)(HKEY ,LPCTSTR ,LPTSTR ,PLONG ) ;
typedef int (*Shell_Exec)(HWND,char *,char *,char *,char *,int);
char * data_Set="mailto\\shell\\open\\command\\";  
char data[128]={0};
void GetNameFromString(char *s,int *L)
{
  int len=*L,cnt,i;
  char *ptr,c='"',cp='\\' ;
  char *tmp =(char*)malloc(128*sizeof(char));
  ptr=strchr(s,c);
  i=ptr-s;
  printf("ptr-s=%d\n",i);  
  do{  
     i++;
     if(s[i]==c)break;
     if(s[i]==cp)
     {
       *tmp=s[i];
       tmp++;
       *tmp=s[i];
       tmp++;
     }
     else
     {
      *tmp=s[i];
       tmp++;    
     }   
  }while(i<len);

  cnt=i;
  while(i>0){

  }

  if(i!=len)s[i]='\0';
  free(tmp);
}
int main(int argv,char **argc)
{
  int dataSize;
  HANDLE hwnd;
  HINSTANCE hLib;
#if 0
  hLib= LoadLibrary("advapi32.dll");
  int ret=0;
  if(!hLib) printf("缺少advapi32.dll\n");
  ReadReg dllReadReg;
  dllReadReg= (ReadReg)GetProcAddress(hLib,"RegQueryValueA");
  if(!dllReadReg)printf("没有RegOpenKeyA\n");
  ret=dllReadReg(HKEY_CLASSES_ROOT,data_Set,data,&dataSize); 
  printf("reg=%s,dataSize=%d\n",data,dataSize);
  GetNameFromString(data,&dataSize)  ;
  printf("after:%s\n",data) ;
  //WinExec("D:\\Program Files\\Foxmail 7.2\\Foxmail.exe",SW_SHOWNORMAL);
#endif
  hLib= LoadLibrary("shell32.dll");
  if(!hLib) printf("shell32.dll\n");
  Shell_Exec dllShell_Exec;                                         
  dllShell_Exec=(Shell_Exec)GetProcAddress(hLib,"ShellExecuteA");
  if(!dllShell_Exec)printf("没有ShellExecuteA\n"); 
  dllShell_Exec(hwnd,"open","mailto:piaoxiang.zhang@163.com",
                                          NULL,NULL,SW_SHOWNORMAL);

  system("pause");
  return 0;
}

效果图:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值