Application Класс
Определение
Предоставляет методы и свойства static для управления приложением, например методы для запуска и остановки приложения, для обработки сообщений Windows и свойства для получения сведений о приложении. Provides static methods and properties to manage an application, such as methods to start and stop an application, to process Windows messages, and properties to get information about an application. Этот класс не наследуется. This class cannot be inherited.
Примеры
В следующем примере кода показаны числа из списка в форме. The following code example lists numbers in a list box on a form. Каждый раз при щелчке button1 приложение добавляет в список еще один номер. Each time you click button1 , the application adds another number to the list.
Main Метод вызывает Run , чтобы запустить приложение, которое создает форму listBox1 и button1 . The Main method calls Run to start the application, which creates the form, listBox1 and button1 . Когда пользователь нажимает кнопку button1 , button1_Click метод отображает MessageBox . When the user clicks button1 , the button1_Click method displays a MessageBox. Если пользователь нажимает кнопку No MessageBox , button1_Click метод добавляет число в список. If the user clicks No on the MessageBox, the button1_Click method adds a number to the list. Если пользователь нажимает кнопку Yes , приложение вызывает Exit для обработки всех оставшихся сообщений в очереди, а затем завершает работу. If the user clicks Yes , the application calls Exit to process all remaining messages in the queue and then to quit.
Вызов метода Exit приведет к сбою при частичном доверии. The call to Exit will fail in partial trust.
Комментарии
ApplicationКласс содержит методы запуска и завершения приложений и потоков, а также для обработки сообщений Windows следующим образом: The Application class has methods to start and stop applications and threads, and to process Windows messages, as follows:
Run запускает цикл обработки сообщений приложения в текущем потоке и, при необходимости, делает форму видимой. Run starts an application message loop on the current thread and, optionally, makes a form visible.
Exit или ExitThread останавливает цикл обработки сообщений. Exit or ExitThread stops a message loop.
DoEvents обрабатывает сообщения, пока программа находится в цикле. DoEvents processes messages while your program is in a loop.
AddMessageFilter Добавляет фильтр сообщений в конвейер обмена сообщениями приложения для отслеживания сообщений Windows. AddMessageFilter adds a message filter to the application message pump to monitor Windows messages.
IMessageFilter позволяет предотвращать возникновение события или выполнять специальные операции перед вызовом обработчика событий. IMessageFilter lets you stop an event from being raised or perform special operations before invoking an event handler.
Этот класс содержит CurrentCulture Свойства и, CurrentInputLanguage позволяющие получить или задать сведения о языке и региональных параметрах для текущего потока. This class has CurrentCulture and CurrentInputLanguage properties to get or set culture information for the current thread.
Нельзя создать экземпляр этого класса. You cannot create an instance of this class.
Свойства
Получает значение, определяющее, может ли вызывающий объект выйти из этого приложения. Gets a value indicating whether the caller can quit this application.
Получает путь для данных приложения, являющихся общими для всех пользователей. Gets the path for the application data that is shared among all users.
Получает раздел реестра для данных приложения, являющихся общими для всех пользователей. Gets the registry key for the application data that is shared among all users.
Возвращает название компании, сопоставленное с приложением. Gets the company name associated with the application.
Получает или задает данные о языке и региональных параметрах для текущего потока. Gets or sets the culture information for the current thread.
Получает или задает текущий язык ввода для текущего потока. Gets or sets the current input language for the current thread.
Получает путь для исполняемого файла, запустившего приложение, включая исполняемое имя. Gets the path for the executable file that started the application, including the executable name.
Возвращает текущий режим высокого DPI для данного приложения. Gets the current high DPI mode for the application.
Получает путь для данных приложения локального неперемещающегося пользователя. Gets the path for the application data of a local, non-roaming user.
Получает значение, указывающее, существует ли цикл обработки сообщений в данном потоке. Gets a value indicating whether a message loop exists on this thread.
Получает коллекцию открытых форм, принадлежащих приложению. Gets a collection of open forms owned by the application.
Получает название продукта, сопоставленного с данным приложением. Gets the product name associated with this application.
Получает версию продукта, сопоставленную с данным приложением. Gets the product version associated with this application.
Получает значение, указывающее, будет ли текущее приложение прорисовывать элементы управления с помощью визуальных стилей. Gets a value specifying whether the current application is drawing controls with visual styles.
Получает или задает строку формата для использования в заголовках окон верхнего уровня, когда они отображаются с предупреждающим объявлением. Gets or sets the format string to apply to top-level window captions when they are displayed with a warning banner.
Получает путь для исполняемого файла, запустившего приложение, не включая исполняемое имя. Gets the path for the executable file that started the application, not including the executable name.
Получает путь для данных приложения пользователя. Gets the path for the application data of a user.
Получает раздел реестра для данных приложения пользователя. Gets the registry key for the application data of a user.
Возвращает значение, указывающее, включены ли визуальные стили для приложения. Gets a value that indicates whether visual styles are enabled for the application.
Получает или задает значение, которое указывает, используется ли курсор ожидания для всех открытых форм приложения. Gets or sets whether the wait cursor is used for all open forms of the application.
Получает значение, указывающее, каким образом визуальные стили применяются к окну приложения. Gets a value that specifies how visual styles are applied to application windows.
Методы
Добавляет фильтр сообщений для мониторинга сообщений Windows при их маршрутизации к местам назначения. Adds a message filter to monitor Windows messages as they are routed to their destinations.
Обрабатывает все сообщения Windows, которые в данный момент находятся в очереди сообщений. Processes all Windows messages currently in the message queue.
Включает визуальные стили для приложения. Enables visual styles for the application.
Определяет, равен ли указанный объект текущему объекту. Determines whether the specified object is equal to the current object.
(Унаследовано от Object)
Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений. Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.
Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений. Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.
Выходит из цикла обработки сообщений в текущем потоке и закрывает все окна в потоке. Exits the message loop on the current thread and closes all windows on the thread.
Запускает любые фильтры для сообщения окна и возвращает копию измененного сообщения. Runs any filters against a window message, and returns a copy of the modified message.
Служит хэш-функцией по умолчанию. Serves as the default hash function.
(Унаследовано от Object)
Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.
(Унаследовано от Object)
Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.
(Унаследовано от Object)
Инициализирует OLE в текущем потоке. Initializes OLE on the current thread.
Вызывает событие ThreadException. Raises the ThreadException event.
Вызывает событие Idle в размещенных скриптах. Raises the Idle event in hosted scenarios.
Регистрирует ответный вызов, чтобы проверить, выполняется ли цикл обработки сообщений в размещенных средах. Registers a callback for checking whether the message loop is running in hosted environments.
Удаляет фильтр сообщений из средства переноса сообщений приложения. Removes a message filter from the message pump of the application.
Завершает работу приложения и немедленно запускает новый экземпляр. Shuts down the application and starts a new instance immediately.
Запускает стандартный цикл обработки сообщений приложения в текущем потоке, без формы. Begins running a standard application message loop on the current thread, without a form.
Запускает стандартный цикл обработки сообщений приложения в текущем потоке с ApplicationContext. Begins running a standard application message loop on the current thread, with an ApplicationContext.
Запускает стандартный цикл обработки сообщений приложения в текущем потоке и делает указанную форму видимой. Begins running a standard application message loop on the current thread, and makes the specified form visible.
Задает значения по умолчанию во всем приложении для свойства UseCompatibleTextRendering , определенного в конкретных элементах управления. Sets the application-wide default for the UseCompatibleTextRendering property defined on certain controls.
Задает режим высокого DPI процесса. Sets the high DPI mode of the process.
Приостанавливает работу системы или переводит ее в спящий режим или же запрашивает приостановку работы системы или перевод ее в спящий режим. Suspends or hibernates the system, or requests that the system be suspended or hibernated.
Указывает, как приложение должно реагировать на необработанные исключения. Instructs the application how to respond to unhandled exceptions.
Предоставляет приложению инструкции, определяющие, как приложение должно отвечать на необработанные исключения, при необходимости применяя поведение, зависящее от потока. Instructs the application how to respond to unhandled exceptions, optionally applying thread-specific behavior.
Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.
(Унаследовано от Object)
Отменяет регистрацию ответного вызова цикла обработки сообщений, сделанного с помощью метода RegisterMessageLoop(Application+MessageLoopCallback). Unregisters the message loop callback made with RegisterMessageLoop(Application+MessageLoopCallback).
События
Происходит при закрытии приложения. Occurs when the application is about to shut down.
Происходит при переходе приложения в модальное состояние. Occurs when the application is about to enter a modal state.
Происходит, когда приложение заканчивает обработку и собирается перейти в состояние простоя. Occurs when the application finishes processing and is about to enter the idle state.
Возникает, когда приложение собирается выйти из модального состояния. Occurs when the application is about to leave a modal state.
Происходит при выдаче неперехваченного исключения потока. Occurs when an untrapped thread exception is thrown.
Происходит при закрытии потока. Occurs when a thread is about to shut down. Перед закрытием главного потока для приложения вызывается данное событие, за которым следует событие ApplicationExit. When the main thread for an application is about to be shut down, this event is raised first, followed by an ApplicationExit event.
Пояснение к коду с Application.StartupPath
app.path = Application.StartupPath
В VB 6.0 была такая фича: пишешь app.path & ‘ amefili.txt’, а как это будет выглядить в .NET?
Обновление приложения: можно ли использовать Application.StartupPath в качестве корневой папки
Привет всем)))) есть несколько вопросов по поводу этой темы Итак первый вопрос: #Region.
Как подняться на один уровень вверх относительно пути «Application.StartupPath»
В папке с установленным приложением1 находится папка «Other» с приложением2. Нужно, чтобы.
Пояснение к коду
Добрый день! Вопрос в следующем, есть конструктор объявленный в хелпе: virtual __fastcall.
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Пояснение по коду
Плиз хелп с кодом, если не сложно, напишите комментарии к // Add // Remove // Get, не понимаю, что.
пояснение к коду
помогите пожалуйста. напишите поянение к коду. var f1, f2 : text; s : string; i .
Дайте пояснение по коду
int count = 0; for (int i = 0; strok; i++) < if ((strok == 'a' && strok == ';') || (strok ==.
Задача о рюкзаке методом полного перебора. Нужно пояснение по коду
Здравствуйте, нужно пояснение по этому коду. Код не мой, также в нем много ошибок. Заранее спасибо.
Сколько у Пети способов попасть в школу, пройдя ровно K шагов. Пояснение по коду
Есть такая задача: На расстоянии N шагов от школы стоит Петя. Каждую минуту он выбирает, куда.
Лучший способ получить путь к папке приложения
Я вижу, что есть несколько способов получить путь к папке приложения:
- Application.StartupPath
- System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location)
- AppDomain.CurrentDomain.BaseDirectory
- System.IO.Directory.GetCurrentDirectory()
- Environment.CurrentDirectory
- System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
- System.IO.Path.GetDirectory(Application.ExecutablePath)
каков наилучший способ в зависимости от ситуации?
8 ответов:
AppDomain.CurrentDomain.BaseDirectory вероятно, наиболее полезно для доступа к файлам, расположение которых относительно каталога установки приложения.
В АН ASP.NET приложение, это будет корневой каталог приложения, а не подпапка bin — что, вероятно, то, что вы обычно хотите. В клиентском приложении это будет каталог, содержащий основной исполняемый файл.
в приложении VSTO 2005 это будет каталог, содержащий управляемые сборки VSTO для вашего приложения, нет, скажем, путь к исполняемому файлу Excel.
другие могут возвращать разные каталоги в зависимости от вашей среды — например, см. ответ @Vimvq1987.
CodeBase это место, где был найден файл и может быть URL, начинающийся с http://. В таком случае Location вероятно, будет кэш загрузки сборки. Не гарантируется, что кодовая база будет установлена для сборок в GAC.
обратите внимание, что не все эти методы будут возвращать одинаковое значение. В некоторых случаях они могут возвращать одно и то же значение, но будьте осторожны, их цели различны:
Application.StartupPath и 7. System.IO.Path.GetDirectoryName(Application.ExecutablePath) — будет работать только для приложение Windows Forms
собирается дать вам что-то вроде: «C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\legal-services\e84f415e\96c98009\assembly\dl3\42aaba80\bcf9fd83_4b63d101» где находится страница, на которой вы работаете.
AppDomain.CurrentDomain.BaseDirectory для веб-приложения может быть полезно и вернет что-то вроде «C:\hg\Services\Services\Services.Website\» который является базовым каталогом и весьма полезен.
System.IO.Directory.GetCurrentDirectory() и 5. Environment.CurrentDirectory
вы получите местоположение, где процесс был уволен из-так что для веб-приложения, работающего в режиме отладки из Visual Studio что-то вроде «C:\Program Files (x86)\IIS Express»
будет вам место, где .dll под управлением кода для веб-приложения, которое может быть «file:\C:\hg\Services\Services\Services.Website\bin»
теперь в случае, например, консольных точек приложения 2-6 будет каталог, где есть.
надеюсь, что это экономит ваше время.
для веб-приложения, чтобы получить текущий корневой каталог веб-приложения, как правило, на веб-страницу для текущего входящего запроса:
Я запустил процесс из службы Windows через Win32 API в сеансе от пользователя, который фактически вошел в систему (в сеансе Диспетчера задач 1, а не 0). В этом случае мы можем узнать, какая переменная является лучшей.
для всех 7 случаев из вопроса выше, следующие результаты:
возможно, это полезно для некоторых из вас, делая то же самое, когда вы ищете лучшую переменную для вашего случая.
этот «System.IO.Path.GetDirectory(Application. ExecutablePath)» изменен на System.IO.Path.GetDirectoryName(Application. ExecutablePath)
- : [Имя — ‘ btn_OpenFile ‘]
- у меня есть ‘ abc.ехе’, который я хочу открыть.
- Путь К Файлу : C:\Users\Admin\Documents\Visual Studio 2015\Projects\MyProject\MyProject\abc.exe.
Итак, я сделаю следующее :
- в событии щелчка кнопки: btn_OpenFile_Click()
Примечание : «Окружающая Среда.CurrentDirectory » возвращает этот путь: «C:\Users\Admin\Documents\Visual Studio 2015\Projects\MyProject\MyProject\bin\Debug»
Итак, Поставив «\..» это, вы можете пойти выше справочник.