Построить приложение для запуска приложения путь и имя которого можно задавать в диалоговом окне
Вместо скучного приложения с кнопкой "Тест" и диалоговым окном с текстом "Тест", мы сделаем вот что - создадим приложение - обманку (заставим друга дрожать:)). Сделаем нашему приложению красивый фон, красивое название, чтобы оно максимально смахивало на не сложную игру, создадим одну кнопку "Начать игру". И при нажатии на эту кнопку будет выскакивать диалоговое окно с текстом: "Процессор перегружен!" и внизу одна кнопочка: "Выключить устройство". При этом, при выскакивании диалогового окна будет проигрываться звук ошибки (типа там ошибка в Windows 98). Ну как вам?:) Уверяю вас, не подготовленный пользователь, не знающий, что вы балуетесь программированием на Android, будет в шоке (только берегитесь, чтобы на вас не бросились с кулаками).
Итак, надеюсь, я вас убедил, что будет весело. Начнем. Д авайте подготовим необходимые ресурсы. Нам нужно 2 картинки и 1 звук ошибки. Одну картинку используем для создания красивого фона приложения, другую - в диалоговом окне, а также звук, который будет проигрываться при выскакивании диалогового окна. Если вы не хотите копаться в Интернете в поисках подходящих файлов, можете скачать это .
Создаем новый проект. Название на вашей совести, желательно чтобы оно было убедительно похоже на игровое (типа "Дурак":)). Создаем Blank Activity.
Добавьте картинки с архива (либо свои) в папку drawable приложения (найдите эту папку через в файлах проекта и скопируйте туда изображения).
Давайте создадим главный экран нашего приложения. В файле activity_main.xml настроим фон приложения, а также добавим одну кнопку "Начать игру", напишем ей функцию нажатия onClick и поместим в центре экрана:
На этом работа в файле activity_main.xml закончена.
Переходим в файл MainActivity.java. Здесь будет происходить, как обычно, вся основная работа. Объявим для начала объекты, которые будем использовать: SoundPool, 2 величины mError и mPlay, которые будут использоваться при проигрывании звука:
Диалоговое окно создается с помощью объекта AlertDialog . В нашем методе обработки нажатия кнопки "Game" создадим диалоговое окно, которое будет выскакивать при нажатии на кнопку. Настроим основные атрибуты диалогового окна: название окна, иконку, отображаемый текст и одну кнопку для его закрытия. Код нашего метода "Game" будет выглядеть так:
Осталось настроить звуковой сигнал, который будет, как пуля в сердце, бить нажимающего кнопку "Начать игру". В архиве выше я положил звук, который вполне устрашает слух:). Воспроизведение звука будет выполняться с помощью класса SoundPool.
Для того,чтобы загрузить наш аудио файл в приложение, для него нужно создать папку. Создаем в приложении папку по имени raw (ее адрес res/raw/):
В эту папку и помещаем наш звуковой файл.
Теперь нам нужно задействовать объект SoundPool. В методе onCreate добавляем следующее:
В первой строке объявляем сам SoundPool и его настройки:
- 1 - количество одновременных аудио потоков (1 поток у нас);
- AudioManager.STREAM_MUSIC - константа из класса AudioManager, указывающая на тип потока;
- качество кодирования, ставим по умолчанию 0;
Ну и последний штрих, добавляем запуск проигрывания нашего звука в метод обработки нажатия кнопки "Game":
В скобке (mError,1,1,1,0,1) циферки означают следующее:
- 1 - громкость левого канала , от 0 до 1. 0 ;
- 1 - громкость правого канала, от 0 до 1.0;
- 1 - приоритет данного потока;
- 0 - количество повторов воспроизведения данного потока, от 0 и до желаемого количества;
- 1 - скорость воспроизведения, может быть от 0.5 до 2.
Полный код файла MainActivity.java должен выглядеть так:
НУ вот и все, поздравляю! Наше приложение - страшилка успешно создано и отлично работает. Вы можете в этом убедиться, протестировав его на эмуляторе/смартфоне/реальном устройстве.
Как на Android зарегистрировать приложение для открытия файлов?
Так чтобы в стандартном фаловом менеджере на девайсе кликаешь на файл с нужным расширением, а оно.
Как самостоятельно выбирать путь для открытия и сохранения файлов
В коде приложения прописан адрес куда сохраняется текстовый файлик из ListBox Как сделать чтобы.
Как внести в диалог открытия файлов Qt позицию для обзора сети?
"Родной диалог открытия файлов Windows имеет позицию "Сеть", выбор которой приводит к подключению.
его сейчас только для одной задачи пока что не имеет смысла. А с чем вы знакомы?
Может имеет смысл писать на том что знаете? Да просто стоит конкретная задача, есть программа, редактор или просто для программа для просмотра, ну и надо каким то прикрутить открытие файлов с её помощью. То есть, например тот же Photoshop, есть файл проекта и его можно открыть с помощью Ps прямо из проводника, не открывая его предварительно. Мне нужно что то подобное.
так в чем проблема.
для открытия файла из проводника Windows добавить свой пункт в контекстное меню (появляется при щелчке правой кнопкой мышки на значке файла), или ассоциировать расширение файла с необходимой программой.
если уж необходимо сделать свою программу и при выборе в меню пункта "открыть" должно появиться диалоговое окно с возможностью перехода по каталогам с целью выбора того самого файла, то это уже другая задача. при решении подобных задач Вам стоит дробить проект на части и реализовывать все по порядку. Например:
1) Создать окно в WinAPI следующих размеров - . ;
2) Добавляем функцию изменения размеров этого окна;
3) Добавляем в окно панель меню, где должны быть такие-то пункты;
4) Добавить в окно форму для отображения изображения сохраняющую масштаб относительно окна программы при изменении его размеров;
.
На форуме в каждой теме задавайте по одному такому вопросу, иначе Вы просто не дождетесь ответа в связи с обширностью задачи и естественным нежеланием делать для кого-то просто так целый проект. А для ответа на маленький вопрос время у кого-нибудь да найдется.
Вы создали проект консольного приложения C++ и ввели код. Теперь вы можете выполнить сборку приложения и запустить его в Visual Studio. Затем запустите его как автономное приложение из командной строки.
Предварительные требования
Установите и запустите на своем компьютере Visual Studio с рабочей нагрузкой "Разработка классических приложений на C++". Если установка еще не выполнена, следуйте инструкциям в статье Установка поддержки C++ в Visual Studio.
Создайте проект "Hello, World!" и введите его исходный код. Если вы еще не сделали этого, выполните действия, описанные в разделе Создание проекта консольного приложения С++.
Если Visual Studio выглядит следующим образом, можно приступать к сборке и запуску приложения:
Сборка и запуск кода в Visual Studio
Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.
Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки.
Поздравляем! Вы создали свое первое консольное приложение "Hello World" в Visual Studio! Нажмите любую клавишу, чтобы закрыть окно консоли и вернуться в редактор Visual Studio.
Выполнение кода в командном окне
Обычно консольные приложения запускаются из командной строки, а не в Visual Studio. После того как приложение будет создано в Visual Studio, его можно запустить из любого командного окна. Вот как можно найти и запустить новое приложение в окне командной строки.
В обозревателе решений выберите решение HelloWorld (а не проект HelloWorld) и щелкните правой кнопкой мыши, чтобы открыть контекстное меню. Выберите Открыть папку в проводнике, чтобы открыть окно проводника в папке решения HelloWorld.
В окне проводника откройте папку Debug. В этой папке содержится ваше приложение, HelloWorld.exe и несколько других файлов отладки. Удерживая нажатой клавишу SHIFT, щелкните правой кнопкой мыши HelloWorld.exe, чтобы открыть контекстное меню. Выберите команду Копировать как путь, чтобы скопировать путь к приложению в буфер обмена.
Чтобы открыть окно командной строки, нажмите Windows + R, чтобы открыть диалоговое окно Выполнить. Введите cmd.exe в текстовом поле Открыть, а затем выберите ОК для запуска окна командной строки.
В окне командной строки щелкните правой кнопкой мыши, чтобы вставить путь к приложению в командную строку. Нажмите клавишу ВВОД, чтобы запустить приложение.
Поздравляем! Вы создали и запустили консольное приложение в Visual Studio.
Следующие шаги
После создания и запуска этого простого приложения можно приступать к более сложным проектам. Дополнительные сведения см. в разделе Использование интегрированной среды разработки Visual Studio для разработки приложений для настольных систем на языке C++. В нем содержатся более подробные пошаговые руководства, посвященные возможностям Microsoft C++ в Visual Studio.
Руководство по устранению неполадок
Здесь приведены решения распространенных проблем, которые могут возникнуть при создании первого проекта C++.
Сборка и запуск кода в Visual Studio: проблемы
Если в редакторе исходного кода отображаются красные волнистые линии, то сборка может содержать ошибки или предупреждения. Убедитесь, что код соответствует примеру в написании, пунктуации и регистре.
Выполнение кода в командном окне: проблемы
Если путь, показанный в проводнике, заканчивается на \HelloWorld\HelloWorld, вы открыли проект HelloWorld вместо решения HelloWorld. Вы перепутаете папку Debug, в которой нет вашего приложения. Перейдите на уровень вверх в проводнике, чтобы открыть папку решения — первый HelloWorld в пути. В этой папке также содержится папка Debug, в которой вы найдете свое приложение.
Можно также открыть папку Debug решения в командной строке, чтобы запустить приложение. Приложение не будет запускаться из других каталогов, если не указан путь к приложению. Однако вы можете скопировать приложение в другой каталог и запустить его из него. Также можно скопировать его в каталог, указанный переменной среды PATH, а затем запустить его из любого места.
Если в контекстном меню отсутствует параметр Копировать как путь, закройте меню, а затем удерживайте нажатой клавишу SHIFT при повторном открытии. Эта команда предназначена только для удобства. Можно также скопировать путь к папке из панели поиска проводника и вставить его в диалоговое окно Выполнить, а затем ввести имя исполняемого файла в конце. При этом потребуется чуть больше действий по вводу текста, но результат будет тем же.
Я хочу запустить установленный пакет из моего приложения для Android. Я предполагаю, что это возможно, используя намерения, но я не нашел способ сделать это. Есть ли ссылка, где найти информацию?
что произойдет, если я открою второе приложение из первого, а затем щелкну непосредственно по значку второго приложения, я получу два экземпляра приложения, что нежелательно. Как им управлять?Если вы не знаете основной вид деятельности, то для запуска приложения можно использовать имя пакета.
Любая причина, почему это не будет работать? Я не заставил это работать по крайней мере. Он запускает новое намерение, как насчет возобновления приложения, которое находится в фоновом режиме? @andep: Это хорошо сработало, когда я тестировал между двумя приложениями, которые создал сам. Если я знаю, что имя пакета будет работать всегда, или есть способ предотвратить запуск вашего приложения кем-либо (в манифесте или где-то еще)? @ Леонард: Мое первое впечатление, что оно всегда должно работать, потому что имена пакетов общедоступны, поэтому любые приложения могут их прочитать. Из ваших приложений я думаю, что вы не можете определить, откуда он был вызван, но ваше приложение может определить, что его нельзя вызвать с помощью основного действия только через сервисы. Да, это может вернуть ноль. «Текущая реализация сначала ищет основное действие в категории CATEGORY_INFO , а затем основное действие в категории CATEGORY_LAUNCHER . ВозвращаетЯ знаю, что на это ответили, но вот как я реализовал нечто подобное:
Еще лучше, вот метод:
Удален повторяющийся код:
У меня возникла проблема при запуске Intent для профиля в Facebook или Twitter. Они открывались внутри моего приложения, а не как новый вид деятельности. Добавление FLAG_ACTIVITY_NEW_TASK исправило это. Спасибо! Нет проблем! У меня были проблемы с чем-то очень похожим Метод работает для меня, но иногда новое приложение открыто, и вызывающая активность все еще остается на переднем плане. Есть идеи как починить? Работает только для релизных версий. Если вы пытаетесь открыть приложение отладки, намерение будет нулевым.Я нашел решение. В файле манифеста приложения я нашел имя пакета: com.package.address и имя основного действия, которое я хочу запустить: MainActivity Следующий код запускает это приложение:
я получил исключение «доза, которую вы объявляете активностью в вашем Manifest.xml» Этот способ возвращает исключение, которое говорит, что мне нужно объявить активность в моем манифесте . но это внешнее приложение! Как запустить его в фоновом режиме? Означает, что вызываемые приложения не отображаются на экране, но запускают метод onCreated (). Я получаю эту ошибку, когда пытаюсь запустить приложение мгновенно: не разрешено начинать работу. Намерение @ Бастиан, как закрыть текущее приложение, откуда мы вызываем намерение открыть другое приложение?Вот мой пример запуска сканера штрих-кода / QR-кода из моего приложения, если кто-то находит это полезным
Редактировать в зависимости от комментария
В некоторых версиях - как предлагается в комментариях - выбрасываемое исключение может быть другим.
Таким образом, решение ниже немного изменено
Оригинальный ответ
Несмотря на хороший ответ, есть довольно простая реализация, которая обрабатывает, если приложение не установлено. Я делаю это так
Windows позволяет запускать приложения из вашей учетной записи в качестве другой учетной записи пользователя, если у вас есть учетные данные для другой учетной записи. Эта функция доступна во всех версиях Windows, то есть в Windows 7, 8 и 10. Хотя мы рассматриваем Windows 10 только в этой статье, тем же инструкциям можно следовать и в других версиях. С помощью этой функции вы можете не только запускать приложения с расширением .exe, но и выполнять практически все и любые расширения файлов, которые только сможете найти. Будь то командные файлы для разных установщиков, вы можете запускать их от имени другого пользователя.
Эта функциональность обеспечивается программой RunAs, встроенной в Windows. Для этого широко используется программа RunAs. Доступ к нему можно получить через командную строку вместе с проводником Windows, поэтому, если вы предпочитаете графический пользовательский интерфейс, для вас тоже найдется что-нибудь. Чтобы использовать эту программу, существует служба, которая должна работать в фоновом режиме. Программа RunAs зависит от службы вторичного входа в систему, чтобы иметь возможность запускать различные файлы от имени другого пользователя. Если служба не запущена и остановлена, вы не сможете достичь желаемого результата. Поэтому убедитесь, что служба запущена, посмотрев ее в окне служб Windows.
Оказывается, есть несколько способов запустить приложение от имени другого пользователя. Мы расскажем о различных методах, поэтому вы можете выбрать любой из тех, которые сочтете легкими и быстрыми. С учетом сказанного, давайте рассмотрим это.
Метод 1: с помощью проводника Windows
Один из способов запустить приложение от имени другого пользователя можно получить с помощью проводника Windows. Это один из самых простых способов сделать это, поскольку он совпадает с обычным способом запуска программы. Так же, как вы запускаете программу в своей текущей учетной записи, вы можете запускать ее из другой учетной записи таким же образом. Единственная разница в том, что вам придется выбрать другой вариант вместо двойного щелчка по приложению или выбора «Открыть» в раскрывающемся меню.
Теперь, в некоторых случаях, необходимая опция для запуска программы от имени другого пользователя может быть недоступна вам в раскрывающемся меню. Это из-за локальной политики Windows. В таком случае вам просто нужно будет изменить политику в окне редактора локальной групповой политики, и все будет в порядке. Для этого следуйте инструкциям ниже:
- Прежде всего, мы должны убедиться, что опция «Запускать от имени другого пользователя» видна для вас. Для этого откройте диалоговое окно «Выполнить», нажав клавиши Windows + R.
- Затем в диалоговом окне «Выполнить» введите gpedit.msc и нажмите клавишу Enter.
- Откроется окно редактора локальной групповой политики. Там перейдите по следующему пути:
Конфигурация компьютера> Административные шаблоны> Компоненты Windows> Пользовательский интерфейс с учетными данными
- Затем на правой панели дважды щелкните требуемый надежный путь для политики ввода учетных данных.Политики пользовательского интерфейса учетных данных
- Убедитесь, что для него установлено значение «Не настроено». Нажмите Применить, а затем нажмите ОК.Требовать надежный путь для параметров политики ввода учетных данных
- Как только вы это сделаете, перейдите в каталог, в котором существует приложение, которое вы хотите запустить.
- Щелкните приложение правой кнопкой мыши, удерживая нажатой клавишу Shift, и выберите в раскрывающемся меню параметр «Запуск от имени другого пользователя».Запуск Notepad ++ от имени другого пользователя
- После этого укажите имя пользователя и пароль другой учетной записи и нажмите ОК. Это запустит приложение от имени указанного пользователя.
Метод 2: использование командной строки
- Прежде всего, откройте меню «Пуск», а затем найдите командную строку, чтобы открыть его.
- После запуска окна командной строки введите следующую команду, чтобы запустить программу от имени другого пользователя:
- Перед нажатием клавиши Enter обязательно замените переменные USERNAME, PathToFile и UserPassword их соответствующими значениями.
- Как только вы это сделаете, нажмите клавишу Enter, и программа должна запуститься от имени указанного пользователя.
- Кроме того, вы можете создать командный файл с помощью указанной выше команды, поэтому вам не нужно открывать командную строку и вводить команду каждый раз, когда вы хотите запустить программу от имени другого пользователя.
- Для этого создайте текстовый документ и вставьте указанную выше команду в текстовый документ.
- После этого сохраните документ как пакетный файл, то есть с расширением .bat.
- Теперь каждый раз, когда вы хотите запустить приложение, просто запускайте этот .bat-файл, и он сделает всю работу за вас.
Метод 3: Использование меню Пуск
Наконец, вы также можете использовать пресловутое меню «Пуск» для запуска приложения от имени другого пользователя. Однако для этого вам нужно будет отредактировать политику в окне редактора локальной групповой политики. Как только вы это сделаете, вы сможете увидеть опцию «Запуск от имени другого пользователя», щелкнув правой кнопкой мыши приложение в меню «Пуск». Для этого следуйте инструкциям ниже:
- Прежде всего, откройте редактор локальной групповой политики, выполнив поиск в меню «Пуск».
- После того, как вы откроете редактор, перейдите по следующему пути:
Читайте также: