Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Платформы Windows Mobile и Windows Embedded > Нужна библиотека системных функций


Автор: vzf 5.11.2005, 15:49
Пишу программу для PocketPC на C#.Net. Подскажите пожалуйста библиотеку(и), позволяющую(ие) реализоавть
следующее:
1) перезагрузку ОС
2) узнать объем памяти для хранения данных и программ
3) узнать объем карты памяти
4) узнать системное время и дату
5) запуск пргораммы
6) выключение экрана

Заранее благодарен.

P.S. Если на С# нельзя сделать, то подскажите на чем можно (кроме J2ME) ;)

Автор: bel_nikita 5.11.2005, 17:03
http://www.opennetcf.org/library/

Автор: vzf 5.11.2005, 21:06
На первый взгляд это именно то, что мне надо, СПАСИБО.

Автор: vzf 6.11.2005, 20:13
Посмотрел я указанную библиотеку, она реализует в виде классов динамическую библиотеку coredll.dll
Подумал я и решил, что почему бы мне не использовать coredll.dll самому без дополнительных
библиотек. Нашел статью в MSDN в которой кое-что поясняется.
Но есть проблема. Класс, который должен перезагрузить КПК работает как-то странно: приложение
просто зависает и до КПК уже не достучаться.
Может просто эмулятор с багами или на эмуляторе нельзя вообще проверить перезагрузку, как думаете?
Использую эмулятор PocketPC(Default), который идет вместе с .Net Compact Framework


Код

...
 
 public const uint FILE_DEVICE_HAL = 0x00000101;
 public const uint FILE_DEVICE_CONSOLE = 0x00000102;
 public const uint FILE_DEVICE_PSL = 0x00000103;
 public const uint METHOD_BUFFERED = 0;
 public const uint METHOD_IN_DIRECT = 1;
 public const uint METHOD_OUT_DIRECT = 2;
 public const uint METHOD_NEITHER = 3;
 public const uint FILE_ANY_ACCESS = 0;
 public const uint FILE_READ_ACCESS = 0x0001;
 public const uint FILE_WRITE_ACCESS = 0x0002;
 
 ...

 static void Main()
 { 
  /// вот код, как я понимаю, выполняющий перезагрузку
  uint bytesReturned = 0;        
  uint IOCTL_HAL_REBOOT = CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS);
  KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned);
 }



Автор: vzf 13.11.2005, 23:06
Проверил на другом эмуляторе работает. Выходит, эмулятор в составе .Net Compact Framework с багами ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)