Построить приложение для запуска приложения путь и имя которого можно задавать в диалоговом окне

Обновлено: 18.05.2024

Вместо скучного приложения с кнопкой "Тест" и диалоговым окном с текстом "Тест", мы сделаем вот что - создадим приложение - обманку (заставим друга дрожать:)). Сделаем нашему приложению красивый фон, красивое название, чтобы оно максимально смахивало на не сложную игру, создадим одну кнопку "Начать игру". И при нажатии на эту кнопку будет выскакивать диалоговое окно с текстом: "Процессор перегружен!" и внизу одна кнопочка: "Выключить устройство". При этом, при выскакивании диалогового окна будет проигрываться звук ошибки (типа там ошибка в 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 имеет позицию "Сеть", выбор которой приводит к подключению.

Сложно объяснить так как я практически не знаком с WinAPI, а учить
его сейчас только для одной задачи пока что не имеет смысла. А с чем вы знакомы?
Может имеет смысл писать на том что знаете? Да просто стоит конкретная задача, есть программа, редактор или просто для программа для просмотра, ну и надо каким то прикрутить открытие файлов с её помощью. То есть, например тот же 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

Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.

Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки.

Поздравляем! Вы создали свое первое консольное приложение "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. В таком случае вам просто нужно будет изменить политику в окне редактора локальной групповой политики, и все будет в порядке. Для этого следуйте инструкциям ниже:

  1. Прежде всего, мы должны убедиться, что опция «Запускать от имени другого пользователя» видна для вас. Для этого откройте диалоговое окно «Выполнить», нажав клавиши Windows + R.
  2. Затем в диалоговом окне «Выполнить» введите gpedit.msc и нажмите клавишу Enter.
  3. Откроется окно редактора локальной групповой политики. Там перейдите по следующему пути:

Конфигурация компьютера> Административные шаблоны> Компоненты Windows> Пользовательский интерфейс с учетными данными

  1. Затем на правой панели дважды щелкните требуемый надежный путь для политики ввода учетных данных.Политики пользовательского интерфейса учетных данных
  2. Убедитесь, что для него установлено значение «Не настроено». Нажмите Применить, а затем нажмите ОК.Требовать надежный путь для параметров политики ввода учетных данных
  3. Как только вы это сделаете, перейдите в каталог, в котором существует приложение, которое вы хотите запустить.
  4. Щелкните приложение правой кнопкой мыши, удерживая нажатой клавишу Shift, и выберите в раскрывающемся меню параметр «Запуск от имени другого пользователя».Запуск Notepad ++ от имени другого пользователя
  5. После этого укажите имя пользователя и пароль другой учетной записи и нажмите ОК. Это запустит приложение от имени указанного пользователя.

Метод 2: использование командной строки

  1. Прежде всего, откройте меню «Пуск», а затем найдите командную строку, чтобы открыть его.
  2. После запуска окна командной строки введите следующую команду, чтобы запустить программу от имени другого пользователя:
  1. Перед нажатием клавиши Enter обязательно замените переменные USERNAME, PathToFile и UserPassword их соответствующими значениями.
  2. Как только вы это сделаете, нажмите клавишу Enter, и программа должна запуститься от имени указанного пользователя.
  3. Кроме того, вы можете создать командный файл с помощью указанной выше команды, поэтому вам не нужно открывать командную строку и вводить команду каждый раз, когда вы хотите запустить программу от имени другого пользователя.
  4. Для этого создайте текстовый документ и вставьте указанную выше команду в текстовый документ.
  5. После этого сохраните документ как пакетный файл, то есть с расширением .bat.
  6. Теперь каждый раз, когда вы хотите запустить приложение, просто запускайте этот .bat-файл, и он сделает всю работу за вас.

Метод 3: Использование меню Пуск

Наконец, вы также можете использовать пресловутое меню «Пуск» для запуска приложения от имени другого пользователя. Однако для этого вам нужно будет отредактировать политику в окне редактора локальной групповой политики. Как только вы это сделаете, вы сможете увидеть опцию «Запуск от имени другого пользователя», щелкнув правой кнопкой мыши приложение в меню «Пуск». Для этого следуйте инструкциям ниже:

  1. Прежде всего, откройте редактор локальной групповой политики, выполнив поиск в меню «Пуск».
  2. После того, как вы откроете редактор, перейдите по следующему пути:

Читайте также: