Özet
Bu makalede, Microsoft Outlook 10.0 Nesne Kitaplığı'nın Microsoft Visual C# içinde Bul yöntemi ve Kısıtla yöntemini kullanarak belirli iletileri alma yöntemini nasıl kullanabileceğiniz açıklanmıştır.
Ek Bilgi
Belirli iletileri almak üzere Microsoft Outlook 10.0 Nesne Kitaplığı'nın kullanımını yapmak için şu adımları izleyin:
-
.NET Microsoft Visual Studio 2005'Microsoft Visual Studio başlama.
-
Dosya menüsünde Yeni'nin üzerine gelin veTamam'a Project.
-
Visual C# Proje türleri listesinde Konsol Uygulaması'nu tıklatın.
Varsayılan olarak, Class1.cs dosyası oluşturulur.
Not Microsoft Visual C# 2005'te, Visual C# Projeler listesinde Visual C#" öğesini tıklatın. Varsayılan olarak, Program.cs oluşturulur. -
Microsoft Outlook 10.0 Nesne Kitaplığı'ne başvuru ekleyin. Bunu yapmak için şu adımları uygulayın:
-
Ekle menüsünde ProjectEkle'ye tıklayın.
-
COM sekmesine tıklayın, Microsoft Outlook 10.0 Nesne Kitaplığı'nın yerini bulun ve Seç'e tıklayın.
Microsoft Visual C# 2005'te not. Seç'e tıklamak zorunda değil. -
Başvuru Ekle iletişim kutusunda Tamam'a tıklayın.
-
Seçtiğiniz kitaplıklar için kaydırmalayıcılar oluşturmak istenirse Evet'e tıklayın.
-
-
Kod penceresinde, kodu aşağıdakiyle değiştirin:
using System;
using System.Reflection; // to use Missing.Value
namespace FilterAppointments
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
public static int Main(string[] args)
{
try
{
// Create an Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the Mapi NameSpace and the Logon.
Outlook.NameSpace oNS = (Outlook.NameSpace)oApp.GetNamespace("mapi");
// Log on using dialog to choose a profile.
oNS.Logon(Missing.Value, Missing.Value, true, true);
// Alternate Logon using specific profile
// TODO: Change the profile name where it is appropriate.
//oNS.Logon("YourValidProfile", Missing.Value, false, true);
// Get the Calendar folder.
Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
// Get the Items collection in the folder.
Outlook.Items oItems = (Outlook.Items)oCalendar.Items;
Console.WriteLine("Total Items (unrestricted): " + oItems.Count);
//Include all occurrences of recurring items, and then sort them.
oItems.Sort ("[Start]", false);
oItems.IncludeRecurrences = true;
// Define the string for the search criteria.
String sCriteria;
// Set the criteria for the Date fields.
sCriteria = "[Start] <= '09/01/2002 08:00 AM' and [End] >= '2/15/2002 08:00 PM'";
// Set the criteria for a string field.
// sCriteria = "[Subject] = 'Weekly recurring meeting'";
// Set the criteria for a numeric field.
// Look for meetings that have not been responded to.
// sCriteria = "[ResponseStatus] = " + (Int32)Outlook.OlResponseStatus.olResponseNotResponded)
// Use the Restrict method to reduce the number of items to process.
Outlook.Items oRestrictedItems = oItems.Restrict(sCriteria);
oRestrictedItems.Sort ("[Start]", false);
oRestrictedItems.IncludeRecurrences = true;
Console.WriteLine("Total Items Unrestricted : " + oRestrictedItems.Count);
Outlook.AppointmentItem oAppointment;
//Get each item until item is null.
Outlook.AppointmentItem oAppt;
oAppt = (Outlook.AppointmentItem)oRestrictedItems.GetFirst();
while (oAppt != null)
{
// Console.WriteLine(i.ToString());
Console.WriteLine(" Subject: " + oAppt.Subject.ToString());
Console.WriteLine(" Start time: " + oAppt.Start.ToString());
Console.WriteLine(" End time: " + oAppt.End.ToString());
Console.WriteLine(" Occurrences: " + oAppt.RecurrenceState.ToString());
Console.WriteLine("\n\n");
oAppt = (Outlook.AppointmentItem)oRestrictedItems.GetNext();
}
// Use the Find method to get single match.
sCriteria = "[Start] >= '09/30/2001'";
Console.WriteLine("Criteria: " + sCriteria.ToString());
oAppointment = (Outlook.AppointmentItem)oItems.Find(sCriteria);
Console.WriteLine("Used Find with Date fields");
if (oAppointment is Outlook.AppointmentItem)
Console.WriteLine("Found -> " + oAppointment.Subject.ToString());
else
Console.WriteLine("No object found");
// Log off
oNS.Logoff();
// Clean up
oAppointment = null;
oRestrictedItems = null;
oItems = null;
oCalendar = null;
oNS = null;
oApp = null;
}
//Simple error handling
catch (Exception e)
{
Console.WriteLine("{0} Exception caught.", e);
}
//Default return value
return 0;
}
}
} -
Kodda TODO metin dizesini arama ve sonra ortamınız için kodu değiştirme.
-
Programı oluşturmak ve çalıştırmak için F5 tuşuna basın.
Başvurular
Outlook 2002'nin güvenlik özellikleri hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'daki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
290500 Outlook 2002'de
geliştiriciyle ilgili e-posta güvenlik özelliklerinin açıklaması Büyük koleksiyonların Count özelliğini kullanarak ortaya çıkabilir sorunlar hakkında ek bilgi için, Microsoft Bilgi Bankası'daki makaleyi görüntülemek için aşağıdaki makale numarasına tıklayın:
294385 OL2002: Yinelenen randevular kullanılarak hatalı Count özelliği