gpt4 book ai didi

Java:打开默认邮件客户端

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:43 26 4
gpt4 key购买 nike

我有一个软件可以定期解析我的邮件收件箱。该程序的功能取决于运行的默认邮件程序。

如何从 java 中启动默认邮件程序?

我知道您可以通过使用 Desktop 类来实现此目的:

Desktop.getDesktop().mail()

但除了启动默认邮件客户端之外,它还会打开一个我不想要的新电子邮件窗口。
如何在不打开“撰写新电子邮件”窗口的情况下打开默认邮件客户端?

编辑:我现在正在尝试使用以下代码片段自己提取信息:http://support.microsoft.com/kb/180233/en-us但由于此代码无法编译(就像大多数微软代码片段一样,当您不是 C++ 开发人员并且只需要一些代码时,这非常糟糕),因为它缺少对 &lpProfileTable 的引用。缺失的代码会是什么样子?

最佳答案

MSDN 示例应如下所示:

#define UNICODE
#define _UNICODE
#define STRICT

#include <windows.h>
#include <mapix.h>

#include <iostream>

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstPrev,
LPSTR lpCmdLine, int nShowCmd) {
// Get a IProfAdmin Interface.
LPPROFADMIN lpProfAdmin;
HRESULT hr = MAPIAdminProfiles(0, &lpProfAdmin);

// Get the Table of Profiles
LPMAPITABLE lpProfileTable;
hr = lpProfAdmin->GetProfileTable(0, &lpProfileTable);

// Build a restriction where PR_DEFAULT_PROFILE = TRUE
SPropValue spvDefaultProfile;
spvDefaultProfile.ulPropTag = PR_DEFAULT_PROFILE;
spvDefaultProfile.Value.b = TRUE;

SRestriction sres;
sres.rt = RES_PROPERTY;
sres.res.resProperty.relop = RELOP_EQ;
sres.res.resProperty.ulPropTag = PR_DEFAULT_PROFILE;
sres.res.resProperty.lpProp = &spvDefaultProfile;

hr = lpProfileTable->Restrict(&sres, TBL_BATCH);
hr = lpProfileTable->FindRow(&sres, BOOKMARK_BEGINNING, 0);

LPSRowSet pRow = NULL;
hr = lpProfileTable->QueryRows(1, 0, &pRow);
// We have a match
if (SUCCEEDED(hr)) {
LPSTR lpDisplayName = pRow->aRow[0].lpProps[0].Value.lpszA;
std::cout << lpDisplayName;
}
}

它在 g++ 下编译,但我不知道如何链接可执行文件...

关于Java:打开默认邮件客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20560982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com