Книга: Программирование КПК и смартфонов на .NET Compact Framework
Запуск других приложений
Запуск других приложений
Иногда требуется запустить из своей программы другое приложение. В этом случае можно призвать на помощь функцию API CreateProcess
. В листинге 13.8 приведен код примера, который может запустить калькулятор, календарь и даже послать файл через инфракрасное соединение мобильному телефону. Для запуска всех этих функций на форме надо разместить всего три кнопки.
Листинг 13.8
public class ProcessInfo {
public IntPtr hProcess;
public IntPtr hThread;
public Int32 ProcessId;
public Int32 ThreadId;
}
[DllImport("CoreDll.DLL", SetLastError = true)]
private extern static int CreateProcess(
String imageName, String cmdLine, IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes, Int32 boolInheritHandles,
Int32 dwCreationFlags, IntPtr lpEnvironment, IntPtr lpszCurrentDir,
byte[] si, ProcessInfo pi);
private void butCalc_Click(object sender, EventArgs e) {
//Запускаем калькулятор
ProcessInfo pi = new ProcessInfo();
CreateProcess(
"calc.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero,
new Byte[128], pi);
}
private void butCalendar_Click(object sender, EventArgs e) {
//Запускаем календарь
ProcessInfo pi = new ProcessInfo();
CreateProcess(
"calendar.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero,
IntPtr.Zero, new Byte[128], pi);
}
private void butInfra_Click(object sender, EventArgs e) {
//Посылаем файл через инфракрасное соединение
ProcessInfo pi = new ProcessInfo();
CreateProcess(
"Beam.exe", "windowsAlarm1.wav", IntPtr.Zero, IntPtr.Zero, 0, 0,
IntPtr.Zero, IntPtr.Zero, new Byte[128], pi);
}
Приведенный код достаточно прост. Нужно вызвать функцию CreateProcess
с именем исполняемого файла в первом параметре. В методе для отправки файла также используется второй параметр, в котором указываем имя отсылаемого файла.
- Вызов функций Windows API
- Определение платформы
- Пароли
- Перезагрузка КПК
- Еще раз о перезагрузке
- Поворот экрана
- Прячем кнопку Start
- Панель задач
- Запуск других приложений
- Названия специальных файлов
- Использование звуковых файлов
- Системное время
- Создание ярлыка
- Количество строк в текстовом поле
- Реестр
- Наличие дополнительной клавиатуры
- Виброзвонок
- Запуск InterBase-сервера
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Повышение производительности приложений с помощью хранимых процедур
- Одновременный запуск нескольких копий сервера (multi-instancing)
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Разработка приложений баз данных InterBase на Borland Delphi
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Запуск Access. Открытие учебной базы данных Борей
- Создание рабочих областей для документов из приложений Microsoft Office 2007
- Способы «запуска» слухов
- Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев
- Как ускорить запуск программ?