Hallo,
wie kann ich alle Adressen von Adressbuch lesen (C#)? Danke.
Hallo,
wie kann ich alle Adressen von Adressbuch lesen (C#)? Danke.
Hallo,
dazu steht ein Beispiel in der DvAPI-Hilfe: DvApi32-Dokumentation
Create address entry / Get address entry
This code fragment adds a new entry to the personal address book and write some field values from an existing address entry into an textfile.
using System.IO;
using DvApi32;
....
DavidAPIClass oApp;
Account oAcc;
Archive oArchive;
AddressBook oAddressbook;
AddressItem oAddressItem;
Address oAddress;
oApp = new DavidAPIClass();
oApp.LoginOptions = DvLoginOptions.DvLoginForceAsyncDuplicate;
oAcc = oApp.Logon("", "", "", "", "", "NOAUTH");
oArchive = oAcc.GetSpecialArchive(DvArchiveTypes.DvArchivePersonalAddress);
oAddressItem = (AddressItem)oArchive.NewItem(DvApi32.DvItemTypes.DvAddressItem);
oAddressItem.DisplayName = "Test User";
oAddressItem.AltEMail = "chef@firma.de";
oAddressItem.AltFaxNumber = "555-333-555";
oAddressItem.Category = 2;
oAddressItem.City = " New York";
oAddressItem.Company = "Firm";
oAddressItem.Birthday = "15.06.1960";
oAddressItem.Save(DBNull.Value, DBNull.Value);
oAddressbook = oAcc.PersonalAddressBook;
oAddress = oAddressbook.Item(0);
oAddressItem = oAddress.AddressItem;
using (StreamWriter sw = new StreamWriter(@"C:\testfile.txt"))
{
sw.WriteLine("AltEmail address: " + oAddressItem.AltEMail);
sw.WriteLine("AltFaxNumber address: " + oAddressItem.AltFaxNumber);
sw.WriteLine("display name: " + oAddressItem.DisplayName);
sw.WriteLine("birthday: " + oAddressItem.Birthday);
sw.WriteLine("category: " + oAddressItem.Category);
sw.WriteLine("city: " + oAddressItem.City);
sw.WriteLine("company: " + oAddressItem.Company);
sw.WriteLine("preferred type: " + oAddressItem.PreferredType);
}
oAcc.Logoff();
Alles anzeigen
Gruß
Baumi
Gut. OK. Vielen dank.
Im Adressbuch, ich habe Ordnern (im Allgemein). Ich kann lese Email von PersonalAddressBook und GlobalAddressBook aber ich kann nicht lese Ordnern und Email in die Ordneren.
Danke nochmal.
LG.
Hallo,
schau dir die Objekte Archive und Archives in der Hilfe an.
Hier ein Beispiel (allerdings in VB aber sollte man ja in C# übersetzen können):
Dim oApp As DvApi32.DavidAPI
Dim oAcc As DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oSubArchive As DvApi32.Archive
Dim oNewArchive As DvApi32.Archive
Dim oArchives As DvApi32.Archives
Dim fso, txtfile
Dim i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile = fso.CreateTextFile("c:\testfile1.txt", True)
Set oApp = CreateObject("DVOBJAPILib.DvISEApi")
Set oAcc = oApp.Logon
Set oArchive = oAcc.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalOut)
For i = 1 To oArchive.Archives.Count
Set oSubArchive = oArchive.Archives.Item(i - 1)
txtfile.WriteLine ("SubArchive from your personal out archive: " & oSubArchive.DisplayName)
txtfile.WriteLine ("Path of the SubArchive: " & oSubArchive.FullPath)
Next
txtfile.Close
Alles anzeigen
Innerhalb der Schleife muss man dann das SubArchive wieder einem Archive-Objekt zuordnen und kann dann wiederum die Adressen dort auslesen.
PS: Es gäbe noch einen anderen Trick. Man könnte - sofern dies C# unterstützt - auf die lokale SQLite-Datenbank zugreifen, die auf dem PC des Benutzers unter C:\Users\USERNAME\AppData\Roaming\Tobit\David\SERVER-USER-contacts.db liegt. Dort werden alle Adressen gesammelt, auf die ein User Zugriff hat (siehe Einstellungen -> Adressen) und für die Vorschläge gezogen, damit beim Tippen einer E-Mail oder Namen nicht nach jedem Buchstaben alle Adressbücher ausgelesen werden müssen.
Gruß
Baumi
Gelöst.
Vielen dank.
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!