У меня была такая же проблема. Хотя ES400 содержит множество функций, он не работает с Cameracapturedialog. Он даже не поддерживает библиотеку изображений в Motorla EMDK SDK. Это сбивает с толку.
В Руководстве по программированию EMDK есть запись для программирования ES400, в которой говорится: вы должны использовать Microsoft DirectShow для захвата изображений. Я попробовал этот подход, но я мог получить только разрешение VGA, которое является мусором для моих целей. Если вам этого достаточно, вы можете взглянуть на http://alexmogurenko.com/blog/directshownetcf/.. Я крайне разочарован ES400 в этом вопросе.
В итоге я выбрал простое решение, которое немного чушь, но, по крайней мере, оно работает (см. Схему ниже и удачи).
using (Process proc = new Process())
{
//This will open the internal camera application.
proc.StartInfo = new System.Diagnostics.ProcessStartInfo(@"\Windows\Camera.lnk", string.Empty);
if (proc.Start() == false)
{
Messagebox.(this did not work blablabla)
return;
}
}
//The camera app has now focus, in the meantime, we wait with a new messagebox…
Messagebox.Show(“Ok,Cancel” to open picturedialog)
if (cancel)
return;
string _filename = string.Empty;
using (SelectPictureDialog _spd = new SelectPictureDialog())
{
_spd.Owner = this;
_spd.CameraAccess = false;
_spd.LockDirectory = false;
_spd.SortOrder = SortOrder.DateDescending;
_spd.Title = "Select picture from camera";
if (_spd.ShowDialog() == DialogResult.OK)
{
_filename = _spd.FileName;
}
else //No picture selected
return;
}
//Handle image..
//Delete image from folder?