Читаем Программирование КПК и смартфонов на .NET Compact Framework полностью

Для начала нужно создать новый класс PlatformDetector, в котором следует объявить функцию SystemParametersInfo и методы определения платформы. А в обработчике события Load основной формы надо вызвать метод GetPlatform, чтобы узнать платформу сразу же после загрузки приложения, как это показано в листинге 13.1.

Листинг 13.1

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace PlatformDetector_CS {

 class PlatformDetector {

  [DllImport("coredll.dll")]

  private static extern bool SystemParametersInfo(int uiAction, int uiParam,

   StringBuilder pvParam, int fWinIni);

  private static int SPI_GETPLATFORMTYPE = 257;

  public static Platform GetPlatform() {

   Platform plat = Platform.Unknown;

   switch (System.Environment.OSVersion.Platform) {

   case PlatformID.Win32NT:

    plat = Platform.Win32NT;

    break;

   case PlatformID.WinCE:

    plat = CheckWinCEPlatform();

    break;

   }

   return plat;

  }

  static Platform CheckWinCEPlatform() {

   Platform plat = Platform.WindowsCE;

   StringBuilder strbuild = new StringBuilder(200);

   SystemParametersInfо(SPI_GETPLATFORMTYPE, 200, strbuild, 0);

   string str = strbuild.ToString();

   switch (str) {

   case "PocketPC":

    plat = Platform.PocketPC;

    break;

   case "SmartPhone":

    // Note that the strbuild parameter from the

    // PInvoke returns "SmartPhone" with an

    // upper case P. The correct casing is

    // "Smartphone" with a lower case p.

    plat = Platform.Smartphone;

    break;

   }

   return plat;

  }

 }

 public enum Platform {

  PocketPC, WindowsCE, Smartphone, Win32NT, Unknown

 }

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace PlatformDetector_CS {

 public partial class Form1 : Form {

  public Form1() {

   InitializeComponent();

  }

  private void Form1_Load(object sender, EventArgs e) {

   try {

    MessageBox.Show("Платформа: " + PlatformDetector.GetPlatform());

   } catch (Exception ex) {

    MessageBox.Show(ex.Message.ToString());

   }

  }

 }

}

Особое внимание следует обратить на комментарий. Параметр strbuild после вызова функции возвращает значение SmartPhone с большой буквой «P», хотя более правильным вариантом считается слово с маленькой буквой «p».

<p>Пароли</p>

Как вы, вероятно, знаете, пользователь может установить пароль на свой карманный компьютер. Для этого ему нужно зайти в раздел Password при помощи последовательности команд Start►Settings►Password и указать четырехсимвольный пароль. С помощью четырех функций API можно получить сведения о пароле и даже попытаться угадать его!

Для тестирования этой возможности на форме надо разместить четыре кнопки и текстовое поле. Соответствующий код приведен в листинге 13.2.

Листинг 13.2

// Функция для установления нового системного пароля

[DllImport("coredll.dll")]

private static extern bool SetPassword(string lpszOldpassword,

 string lspzNewPassword);

// Функция для активации или блокировки текущего пароля

[DllImport("coredll.dll")]

private static extern bool SetPasswordActive(bool bActive,

 string lpszPassword);

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных