我为Outlook写了一段时间,在outlook消息中添加/删除签名下面的可选标语.此加载项无任何问题.
我正在编写第二个加载项,需要在下面添加信息(无论是否存在可选签名),并再次引用Word编辑器中的_MailAutoSig书签.我遇到的问题是这个书签似乎不再出现,我的其他加载项的书签也没有出现.
下面两段代码中的一个区别是第一个代码是从ItemSend传递的对象转换的MailItem,而第二个代码是在ItemSend事件之前处理的.
这是我目前正在编写的代码:
Word.Document toMsg = msg.GetInspector.WordEditor as Word.Document;
foreach (Word.Bookmark b in toMsg.Bookmarks)
Debug.Print(b.ToString());
Word.Range r_toMsg;
try
{
string oBookmark = "_MailAutoSig"; // Outlook internal bookmark for location of the e-mail signature`
object oBookmarkObj = oBookmark;
if (toMsg.Bookmarks.Exists(oBookmark) == true)
Debug.Print("sigbookmark");
r_toMsg = toMsg.Bookmarks.get_Item(ref oBookmarkObj).Range;
}
catch
{
string oOffsiteBookmark = "OffsiteBookmark";
object oOffsiteBookmarkObj = oOffsiteBookmark;
if (toMsg.Bookmarks.Exists(oOffsiteBookmark) == true) // if the custom bookmark exists, remove it
Debug.Print("offsite bookmark");
}
finally
{
r_toMsg = toMsg.Range(missing,missing);
}
Run Code Online (Sandbox Code Playgroud)
这是来自我的工作加载项的代码: …
我有以下代码:
MAPITable mt = rStores.MAPITable;
Recordset rs = new Recordset();
rs = mt.ExecSQL(@"SELECT EntryID, ""http://schemas.microsoft.com/mapi/proptag/0x0FF60102"" As PR_INSTANCE_KEY from Name");
while (!rs.EOF)
{
var fields = ((dynamic)rs.Fields);
for (int f = 0; f < fields.Count; f++)
{
var field = fields[f];
var name = field.Name;
var value = field.Value;
}
Debug.Print(rs.Fields["EntryID"].Value);
Debug.Print(rs.Fields["PR_INSTANCE_KEY"].Value);
rs.MoveNext();
Run Code Online (Sandbox Code Playgroud)
当我尝试访问记录集字段时,我在主题中得到上述错误.我在这里看到了问题,但这对我没有帮助.
更新:没关系 - 此处列出的解决方法
我已经尝试将以下代码添加到我的加载项代码的开头:
Namespace NS
[Guid("211B3945-E2AE-48DD-8A9A-77ADB40EC6D5")]
[ComVisible(true)]
public partial class Classname
{
Run Code Online (Sandbox Code Playgroud)
但是当我列出COMAddins(名称没有,但不是GUID)时它不会出现.
我也尝试在程序集信息下的编译设置中设置它,但没有运气.
BTW - 我正在尝试解决的问题是通过搜索其GUID来加载COM Addin.该加载项的描述显示,当我检查ComAddIns的名单,但GUID仍然显示零无论我如何按照这些指示.我正在尝试使用以下代码查看可见内容:
olApp = this.Application;
Office.COMAddIns CAIs = olApp.COMAddIns;
foreach (Office.COMAddIn CAI in CAIs)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(CAI.Description);
sb.AppendLine(CAI.Guid);
sb.AppendLine("****");
Debug.Print(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud) 我已经为 Outlook 2010 加载项创建了 VSTO 功能区。当我以前使用设计器时,我能够动态更改功能区按钮的标签。我现在正在手动编码(XML/C#),并且似乎无法确定如何完成同样的事情。XML 中的“标签”项似乎是静态的。
仅供参考 - 其背后的目的是为用户识别图库中的项目数量。
谢谢。
我正在使用python milter从MIME消息中提取文件,并且遇到了以这样命名的文件的问题:
=?ISO-8859-1 Q + CERTIFICADO = 5FZonificaci = F3N = 5F2010 = 2Epdf?=
我似乎无法将此名称解码为UTF.为了解决先前的ISO-8859-1问题,我开始将所有文件名传递给此函数:
def unicodeConvert(self, fname):
normalized = False
while normalized == False:
try:
fname = unicodedata.normalize('NFKD', unicode(fname, 'utf-8')).encode('ascii', 'ignore')
normalized = True
except UnicodeDecodeError:
fname = fname.decode('iso-8859-1')#.encode('utf-8')
normalized = True
except UnicodeError:
fname = unicode(fname.content.strip(codecs.BOM_UTF8), 'utf-8')
normalized = True
except TypeError:
fname = fname.encode('utf-8')
return fname
Run Code Online (Sandbox Code Playgroud)
哪个工作,直到我得到这个文件名.
想法一如既往地受到赞赏.
我正在尝试使用XML在Outlook中创建功能区,并且无法找到具体说明如何告诉我的加载项我只希望功能区出现在Explorer窗口中.
建议吗?
谢谢.
我的Ribbon1.XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="MyGroup"
label="My Group">
<button idMso="Delete"/>
</group>
</tab>
<tab idMso="TabMail">
<group idMso="GroupMoveActions"
visible="false">
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)
弹出的神奇错误框说:
testingOLaddin2中的CustomUI运行时错误
Error found in CustomUI XML of "testingOLaddin2"
Line: 3
Column: 10
Error Code 0x80004005
Failed to find Office control by ID
ID: TabMail
Run Code Online (Sandbox Code Playgroud)
每个请求,我的功能区生成代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using Office = Microsoft.Office.Core;
using System.Diagnostics;
namespace testingOLaddin2 …
Run Code Online (Sandbox Code Playgroud) 我在为Outlook编写的VSTO加载项中有以下代码:
savefolder = Regex.Replace(Guid.NewGuid().ToString(), @"[- ]", String.Empty);
savepathfull = string.Format(@"{0}{1}", netloc, savefolder);
DirectoryInfo di = new DirectoryInfo(@savepathfull);
if (!(di.Exists))
Directory.CreateDirectory(@savepathfull);
removedFiles = new List<string>();
for (int d = attachs.Count; d > 0; d--)
{
if (attachs[d].Size > smallAttachment)
{
removedFiles.Add(attachs[d].FileName);
attachs[d].SaveAsFile(savepathfull);
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我尝试保存附件,此时我收到UnauthorizedAccessException.我知道我的测试用户拥有该文件夹的完全权限,但我仍然收到此错误.
想法?
谢谢.
我在C#中编写了一个函数,用于在复制到文件共享时无法上传文件.我注意到任何上传的文件大小都是原始文件的1.5-2倍,并且是无效文件.这是代码:
public bool save_FTPUpload(FileInfo fi_attachment)
{
bool fileSaved = false;
string filename = fi_attachment.Name;
while (!fileSaved)
{
string file_ftpURI = string.Format("{0}/{1}", ftpURI, filename);
FtpWebRequest file_exist_request = (FtpWebRequest)FtpWebRequest.Create(file_ftpURI);
file_exist_request.Credentials = new NetworkCredential(ftp_user, ftp_pass);
file_exist_request.Method = WebRequestMethods.Ftp.GetFileSize;
try
{
FtpWebResponse response = (FtpWebResponse)file_exist_request.GetResponse();
}
catch (WebException ex)
{
FtpWebResponse response = (FtpWebResponse)ex.Response;
if (response.StatusCode ==
FtpStatusCode.ActionNotTakenFileUnavailable)
{
FtpWebRequest upload_request = (FtpWebRequest)FtpWebRequest.Create(file_ftpURI);
upload_request.Credentials = new NetworkCredential(ftp_user, ftp_pass);
upload_request.Method = WebRequestMethods.Ftp.UploadFile;
upload_request.UsePassive = true;
upload_request.UseBinary = true;
upload_request.KeepAlive = false;
StreamReader attachment = new …
Run Code Online (Sandbox Code Playgroud) 我已经获得了管理SharePoint网站的角色,以下自定义代码位于其中一个页面上:
<script type="text/javascript">
$(document).ready(function() {
$("#pgtitle").html("Customer Service Feedback");
});
</script
Run Code Online (Sandbox Code Playgroud)
我不是一个javascript的家伙,所以我在解释这个问题时遇到了麻烦.代码是由不再和我公司合作的人写的,在我到达之前就离开了.