- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программирование КПК и смартфонов на .NET Compact Framework - Александр Климов
Шрифт:
Интервал:
Закладка:
private OutlookSession session;
public Form1() {
InitializeComponent();
// Создаем экземпляр сессии Pocket Outlook
session = new OutlookSession();
}
private void butAddContact_Click(object sender, EventArgs e) {
Contact contact = new Contact();
contact.FirstName = "Билл";
contact.LastName = "Гейтс";
contact.Email1Address = "[email protected]";
contact.Birthday = new DateTime(1955,10,28);
contact.CompanyName = "Microsoft";
contact.WebPage = new Uri("http://www.microsoft.com");
session.Contacts.Items.Add(contact);
}
Код очень прост и практически не требует комментариев. В начале работы создается переменная contact, в которой можно задавать самые различные параметры. В этом примере использовались только основные свойства. Были указаны имя, фамилия, электронный адрес, день рождения, имя компании и ее веб-страница. После того как новый контакт будет добавлен в список, нужно закрыть сессию при помощи метода Dispose().
После запуска приложения следует нажать кнопку Добавить в Контакты. В результате этого в списке Контакты появится новая запись (рис. 10.6)
Рис. 10.6. Просмотр списка контактов
Но разработчик может не только добавлять, но и получать информацию из имеющегося элемента списка. Для этого на форму надо поместить список lstContacts и кнопку butGetInfo. Прежде чем получить информацию о нужном нам человеке, нужно сначала получить сам список контактов. И только потом, выбрав из этого списка нужную запись, можно получить дополнительную информацию. Для получения полного списка контактов нужно добавить код в обработчик события Form_Load, как это показано в листинге 10.3.
Листинг 10.3private void Form1_Load(object sender, EventArgs e) {
// Получаем список контактов
lstContacts.DataSource = session.Contacts.Items;
}
Теперь при загрузке формы список автоматически будет заполнен. Пользователь может выбрать любую запись и получить дополнительную информацию о выбранном контакте. Для этого в событии butGetInfo_Click создается код, приведенный в листинге 10.4.
Листинг 10.4private void butGetInfo_Click(object sender, EventArgs e) {
// Получим информацию о выбранном контакте
session.Contacts.Items[lstContacts.SelectedIndex].ShowDialog();
}
Когда пользователь выделит интересующую его запись и нажмет кнопку Получить информацию, на экран будет выведено стандартное диалоговое окно с информацией о выбранной записи.
Удалить контакт из списка еще проще, чем создать его. На форму надо добавить еще одну кнопку butDelContact, с которой будет связан код, приведенный в листинге 10.5.
Листинг 10.5private void butDelContactClick(object sender, EventArgs e) {
// Удаляем выбранный контакт
session.Contacts.Items[lstContacts.SelectedIndex].Delete();
}
Также из приложения можно вызвать стандартное окно выбора контакта, используемое программой Pocket Outlook. Теперь совсем не обязательно закрывать нашу программу и открывать окно контактов, как это было сделано при добавлении новой записи в список контактов.
Стандартное окно имеет некоторые дополнительные возможности, которые могут пригодиться разработчикам. Доступ к данному окну осуществляется через класс ChooseContactDialog, как показано в листинге 10.6.
Листинг 10.6private void butShowContactsClick(object sender, EventArgs e) {
ChooseContactDialog contactDialog = new ChooseContactDialog();
// Прячем пункт меню Новый контакт
contactDialog.HideNew = true;
// Выводим диалоговое окна на экран
contactDialog.ShowDialog();
// Показываем выбранный контакт
MessageBox.Show(contactDialog.SelectedContactName, "Выбранный контакт");
}
Электронная почта
Кроме получения доступа к списку контактов и добавления новых встреч, разработчик может также отсылать сообщения по электронной почте или через SMS.
Для этих целей используются соответствующие пространства имен Microsoft.WindowsMobile.PocketOutlook.EmailAccount и Microsoft.WindowsMobile.PocketOutlook.SmsAccount. Классы из этих пространств имен позволяют легко интегрировать отправку сообщений в ваши приложения. Например, класс EmailAccount позволяет создавать электронные письма и присоединять к ним файлы.
В следующем примере демонстрируется вызов диалогового окна ChooseContactDialog для выбора нужного адресата из списка контактов, которому будет отправлено электронное письмо. Приложение создаст сообщение, в коде будет указана и тема письма.
Также в письмо будет добавлен вложенный файл, после чего сообщение будет отправлено выбранному ранее лицу. Все эти действия проиллюстрированы листингом 10.7.
Листинг 10.7private void butSendEmail_Click(object sender, EventArgs e) {
ChooseContactDialog contactDialog = new ChooseContactDialog();
contactDialog.Title = "Выберите контакт для отправки email";
if (contactDialog.ShowDialog() == DialogResult.OK) {
EmailMessage message = new EmailMessage();
message.To.Add(
new Recipient(contactDialog.SelectedContact.Email1Address));
message.Subject = "С днем рождения";
message.BodyText =
"Уважаемый Владимир Владимирович! Поздравляю вас с днем рождения!
Посылаю вам открытку с видами Петербурга. Ваша Люда.";
message.Attachments.Add(
new Attachment(@"My Documentspiter.jpg"));
using (OutlookSession session = new OutlookSession()) {
session.EmailAccounts[0].Send(message);
session.Dispose();
}
}
}
После запуска программы и нажатия кнопки Послать письмо будет открыто стандартное окно Контакты, где можно выбрать адресата. После выбора получателя по его электронному адресу будет отправлено электронное письмо с заданным содержанием.
Если надо отправить электронное письмо адресату, который не внесен в адресную книгу, то пример надо переработать. Новый код приведен в листинге 10.8.
Листинг 10.8private void butSendEmail2_Click(object sender, EventArgs e) {
Recipient recipient = new Recipient("[email protected]");
EmailMessage msg = new EmailMessage();
// Кому письмо
msg.To.Add(recipient);
// Тема письма
msg.Subject = "О вашей книге";
// Текст письма
msg.BodyText = "Спасибо за книгу";
msg.Send("ActiveSync");
}
SMS-сообщения
Отправка SMS-сообщения с помощью новых возможностей тоже очень и очень проста. Эти сообщения весьма популярны у владельцев мобильных телефонов. Раньше для отсылки и приема SMS
приходилось использовать неуправляемый код, очень сложный для восприятия неопытным программистом. Теперь создать код, отсылающий сообщение, не сложнее, чем написать само сообщение, что иллюстрирует листинг 10.9.
Листинг 10.9.private void butSendSMS_Click(object sender, EventArgs e) {
ChooseContactDialog contactDialog = new ChooseContactDialog();
contactDialog.Title = "Выберите получателя";
if (contactDialog.ShowDialog() == DialogResult.OK) {
// Создаем SMS-сообщение
SmsMessage message = new SmsMessage(
contactDialog.SelectedContact.MobileTelephoneNumber,
"Купи хлеба. Жена");
message.RequestDeliveryReport = true;
// Посылаем сообщение
message.Send();
}
}
В этом примере SMS-сообщение отсылалось адресату, чья запись уже имелась в адресной книге. Если же требуется отправить сообщение, не используя окно Контакты, то придется воспользоваться другим кодом.
Здесь я хочу сделать небольшое отступление и открыть вам большой секрет. Разработчик может посылать SMS-сообщения самому себе при помощи эмулятора! Если послать SMS-сообщение из эмулятора на телефонный номер 4250010001, то оно вернется на эмулятор (рис. 10.7).
Итак, необходимо отправить SMS-сообщение человеку, чья учетная запись не отражена в списке Контакты. Для этого используется код, приведенный в листинге 10.10.
ПРИМЕЧАНИЕПри отладке приложения в эмуляторе надо использовать целевое устройство типа «Phone Edition». Если проверять пример в обычном эмуляторе, то будет отображено сообщение об ошибке «Could not load sms.dll». Впрочем, это не удивительно. Если эмулятор не имеет телефонных функций, то как можно отправлять SMS-сообщение?
Листинг 10.10private void butSendSMS2_Click(object sender, EventArgs e) {
SmsMessage message = new SmsMessage();
// Номер получателя
message.To.Add(new Recipient("4250010001"));
// Текст сообщения
message.Body = "Позвони домой";
// Посылаем сообщение
message.Send();
}
Результат выполнения этого кода приведен на рис. 10.7.
Рис. 10.7. Прием SMS-сообщения
Прием и обработка SMS-сообщений

