• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 一个关于shell中运行程序的问题(有难度的,付源码),大家一起来讨论一下!!!

一个关于shell中运行程序的问题(有难度的,付源码),大家一起来讨论一下!!!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 一个关于shell中运行程序的问题(有难度的,付源码),大家一起来讨论一下!!!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 一个关于shell中运行程序的问题(有难度的,付源码),大家一起来讨论一下!!!
描述:

这个程序实现了从outlook express 6中提取指点日期以后邮件的功能,正常双击或在命令行下运行都能达到效果,但是在shell中(或者添加在一个计划任务中)运行不能提取出邮件(这时只能提取出outlook express 6开始就存在的那一封系统邮件),于是我将这个程序加入到我自己写的一个服务中去,但是还是不能达到提取邮件的效果,是不是com程序就不能在shell中运行?谢谢
#include <Windows.h>
#include <initguid.h>
#include "msoeapi.h"(这个头文件微软2004年12月份公布的一个操作Outlook express 6的头文件,其内容在https://www.xfocus.net/bbs/index.php?act=Attach&type=post&id=262623)
char DistillFolderName[20] = "Delete";
char StoreFolderName[30] = "DBX";
char seps[] = " ,.-\\/";
BOOL InitialTagTime(char*, SYSTEMTIME*);
STOREFOLDERID CreateDistillFolder(IStoreNamespace*);
BOOL RemoveDistillFolder(IStoreNamespace*, STOREFOLDERID);
BOOL operator >(SYSTEMTIME&, SYSTEMTIME&);
void GetEmailInFolder(IStoreNamespace*, STOREFOLDERID, STOREFOLDERID, SYSTEMTIME);
void ShiftDistillFolder(IStoreNamespace*, LPCTSTR);
int main()
{
SYSTEMTIME tagtime;
tagtime.wYear = 2005;
tagtime.wMonth = 1;
tagtime.wDay =1;
IStoreNamespace* m_pStoreNamespace = NULL;
HRESULT HInit = CoInitialize(0);
if(FAILED(HInit))
{
return 0;
}
HInit = CoCreateInstance(CLSID_StoreNamespace, NULL, CLSCTX_SERVER, IID_IStoreNamespace, (LPVOID*)&m_pStoreNamespace);
if(FAILED(HInit))
{
return 0;
}
HInit = m_pStoreNamespace->Initialize(NULL, NULL);
if(FAILED(HInit))
{
m_pStoreNamespace->Release();
return 0;
}
STOREFOLDERID DistillFolderID = CreateDistillFolder(m_pStoreNamespace);
if(DistillFolderID != NULL)
{
FOLDERPROPS props;
HENUMSTORE hEnum;
STOREFOLDERID BoxID;
hEnum = NULL;
props.cbSize = sizeof(FOLDERPROPS);
HRESULT hrfolder = m_pStoreNamespace->GetFirstSubFolder(FOLDERID_ROOT, &props, &hEnum);
while(SUCCEEDED(hrfolder) && (hrfolder != S_FALSE) && (hEnum != NULL))
{
BoxID = props.dwFolderId;
if(_stricmp(props.szName, DistillFolderName))
GetEmailInFolder(m_pStoreNamespace, BoxID, DistillFolderID, tagtime);
hrfolder = m_pStoreNamespace->GetNextSubFolder(hEnum, &props);
}
if(hEnum)
{
m_pStoreNamespace->GetSubFolderClose(hEnum);
}
strcat(DistillFolderName, ".dbx");
ShiftDistillFolder(m_pStoreNamespace, DistillFolderName);
RemoveDistillFolder(m_pStoreNamespace, DistillFolderID);
m_pStoreNamespace->Release();
}
return 0;
}
STOREFOLDERID CreateDistillFolder(IStoreNamespace* m_pNamespace)//&frac12;¨&Aacute;&cent;&Igrave;á&Egrave;&iexcl;&Oacute;&Ecirc;&frac14;&thorn;&micro;&Auml;Folder
{
STOREFOLDERID dwNewFolder;
HRESULT hCreateFolder;
hCreateFolder = m_pNamespace->CreateFolder(NULL, DistillFolderName, 0, &dwNewFolder);
if(FAILED(hCreateFolder))
{
return NULL;
}
return dwNewFolder;
}
BOOL RemoveDistillFolder(IStoreNamespace* m_pNamespace, STOREFOLDERID ReMoveID)//&Eacute;&frac34;&sup3;&yacute;&sup3;&Igrave;&ETH;ò&frac12;¨&Aacute;&cent;&micro;&Auml;Folder
{
HRESULT hRemoveFolder;
hRemoveFolder = m_pNamespace->DeleteFolder(ReMoveID, 0);
if(FAILED(hRemoveFolder))
{
return FALSE;
}
else
{
m_pNamespace->DeleteFolder(ReMoveID, 0);
}
return TRUE;
}
BOOL operator >(SYSTEMTIME& Emailtime, SYSTEMTIME& Signtime)
{
if(Emailtime.wYear > Signtime.wYear)
{
return TRUE;
}
else if(Emailtime.wYear == Signtime.wYear)
{
if(Emailtime.wMonth > Signtime.wMonth)
{
return TRUE;
}
else if(Emailtime.wMonth == Signtime.wMonth)
{
if(Emailtime.wDay >= Signtime.wDay)
{
return TRUE;
}
}
}
return FALSE;
}
void GetEmailInFolder(IStoreNamespace* m_pNamespace, STOREFOLDERID ID, STOREFOLDERID DesID, SYSTEMTIME Signtime)//&Igrave;á&Egrave;&iexcl;&Ouml;&cedil;&micro;&atilde;Folder&Ouml;&ETH;&micro;&Auml;&Oacute;&Ecirc;&frac14;&thorn;
{
MESSAGEPROPS msgProps;
HENUMSTORE hEnumMsg;
IStoreFolder* m_pStoreFolder;
IStoreFolder* m_pDesFolder;
hEnumMsg = NULL;
msgProps.cbSize = sizeof(MESSAGEPROPS);
HRESULT hrOpenFolder = m_pNamespace->OpenFolder(ID, 0, &m_pStoreFolder);
if(FAILED(hrOpenFolder))
{
return;
}
HRESULT hrOpenDesFolder = m_pNamespace->OpenFolder(DesID, 0, &m_pDesFolder);
if(FAILED(hrOpenDesFolder))
{
return;
}
HRESULT hrGetMSG = m_pStoreFolder->GetFirstMessage(0, 0, MESSAGEID_FIRST, &msgProps, &hEnumMsg);
while(SUCCEEDED(hrGetMSG) && (hrGetMSG != S_FALSE))
{
FILETIME timeout = msgProps.ftSent;
// cout<<msgProps.pszNormalSubject<<endl;
SYSTEMTIME outtime;
FileTimeToSystemTime(&timeout, &outtime);
MESSAGEID msgID = msgProps.dwMessageId;
if(outtime > Signtime)
{
MESSAGEIDLIST msgIDList;
DWORD props = -1;
props &= ~msgProps.dwFlags;
msgIDList.cbSize = sizeof(MESSAGEIDLIST);
msgIDList.cMsgs = 1;
msgIDList.prgdwMsgId = &msgID;
HRESULT hCopyEmail = m_pNamespace->CopyMoveMessages(m_pStoreFolder, m_pDesFolder, &msgIDList,
(FALSE ? CMF_MOVE : 0), props, NULL);
}
m_pStoreFolder->FreeMessageProps(&msgProps);
hrGetMSG = m_pStoreFolder->GetNextMessage(hEnumMsg, 0, &msgProps);
}
m_pDesFolder->Release();
if(hEnumMsg)
{
m_pStoreFolder->GetMessageClose(hEnumMsg);
}
return;
}
void ShiftDistillFolder(IStoreNamespace* m_pNamespace, LPCTSTR ShiftFolderName)//&Ograve;&AElig;×&szlig;&Ccedil;&Ocirc;&Egrave;&iexcl;&Oacute;&Ecirc;&frac14;&thorn;&micro;&Auml;Folder
{
char SystemDir[MAX_PATH*2];
GetSystemDirectory(SystemDir, MAX_PATH*2);
char DesFolder[MAX_PATH*2];
strcpy(DesFolder, SystemDir);
strcat(DesFolder, "\\");
strcat(DesFolder, StoreFolderName);
BOOL te = CreateDirectory(DesFolder, NULL);
SetFileAttributes(DesFolder, FIL

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一个关于shell中运行程序的问题(有难度的,付源码),大家一起来讨论一下!!!

相关文章

  • 2017-06-04 OLE初始化失败
  • 2017-06-04 两个ActiveX互相调用?
  • 2017-06-04 如何用VC读写ppt文件中的Excel表
  • 2017-06-04 ATL::CComObject<classCSampleMSPStream>::AddRefvoid错误
  • 2017-06-05 虚拟内存,保留和提交的问题
  • 2017-06-04 运行时错误请教
  • 2017-06-05 求助:如何在RichEdit控件中插入表格
  • 2017-06-04 在IE上的toolbar上动态创建一个IE控件
  • 2017-06-05 在服务程序中用GetUserName不能得到当前登录用户名字?
  • 2017-06-05 请问在DLL中如何调用COM接口?急!!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请问新学COM技术看什么书能比较快上手?清列出看书的顺序,谢谢!!!!!!
    • 关于ole文档的问题,急!!!
    • ASP中使用的COM组件弹了一个框,IIS不重启就没招了么?
    • OnArrival事件中如何删除拦截到的邮件?
    • 奇怪了,我编译连接我dll程序后没有lib文件,我的def文件里有输出函数啊?
    • 请大侠救命:调用DLL的问题,在调用一个有返回值的函数时出错。
    • 开发类似于flash/视频/applet的bho插件
    • WIN7下调用系统打印的问题
    • 已知一个进程的句柄,可以用ExitProcess关闭这个进程么?怎么关?
    • 串口编程问题,请进来看看!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有