2016-08-03 5 views
-1

Мне нужно создать одно приложение, которое работает в фоновом режиме.VB.NET Background Application

Я попытался скрыть это при запуске: Me.Hide. Не получилось, tho.

Мой вопрос теперь в том, как сделать приложение VB.NET, которое работает как администратор, и скрыто, не зная об этом пользователя.

Спасибо за ваше время.

+1

Не скрывайте форму в событии 'Load', она даже не показывается. Подпишитесь на событие «Shown» и спрячьте его там. - Но решение RoyalPotato было бы самым лучшим. –

+1

'как сделать приложение VB.NET, которое работает как администратор, и скрыто, не зная об этом пользователя.' - Попытка сделать вирус, ey? –

+1

lol, или, может быть, он просто не хочет иметь дело с этими глупыми подсказками. Windows pukes все время xD – RoyalPotato

ответ

3

Я предполагаю, что вы используете Windows Forms, так как вы сказали: «Я пытался скрыть его при запуске, Me.Hide. Не получилось, tho».

Это довольно просто, на самом деле. Не показывайте форму, пока не захотите. Для этого я отключил бы параметр Enable Application Framework в свойствах проекта. (См. https://msdn.microsoft.com/en-us/library/tzdks800.aspx, вариант, о котором я упоминал, где-то есть.).

Затем создайте новый класс (или вы можете использовать модуль) в своем проекте и назовите его «Программа». Название не очень важно, но по соглашению это обычно «Программа».

Создайте знаменитую процедуру «Главная» в этом классе. Существует несколько доступных подписей для этой функции.

  1. Простейшим так просто, как: Public Shared Sub Main()
  2. В качестве альтернативы, вы можете получить аргументы командной строки: Public Shared Sub Main(ByVal args() As String)
  3. Повторять 1, но в качестве функции, возвращающей 32-разрядное-целое число.
  4. Повторите 2, но в качестве функции, возвращающей 32-разрядное целое число со знаком.

Точка возврата целого числа в конце функций «Главная» - это возврат кода выхода, указывающего, все ли «ОК». Обычно вы возвращаете 0, если все работает, и код ошибки или что-то, чтобы указать ошибку.

Задайте проект «Объект запуска» для вашего нового класса.

Наконец, если вы когда-либо захотите показать форму, просто создайте экземпляр объекта, тип которого является вашей формой, и покажите его.

Dim form As New Form1() form.Show()

И как всегда, ликвидируйте форму, когда вы сделали с ним.

+2

Если бы вы не написали это так рано, я бы :). Это лучшее решение IMO, поскольку оно по-прежнему позволяет вашему приложению взаимодействовать с рабочим столом пользователя (одно важное различие между этим и службой Windows). - Небольшая заметка: при показе первой формы вы должны вызвать «Приложение».Run (New Form1) 'вместо этого, чтобы ваше приложение ввело цикл сообщения (иначе он просто выйдет, я думаю). –

+1

Ах да, я совсем забыл о приложении. Run! Все, делайте, как говорит Visual Vincent, и называете Application.Run, когда вы показываете первую форму. Обратите внимание, что (и я уверен, что Visual Vincent просто сделал это в качестве примера), вы можете или не захотите фактически создать объект формы в качестве параметра. Если вы это сделаете, вы не можете явно распоряжаться им. Что может или не может быть важно для вас в зависимости от того, сколько контроля над тем видом, который вы хотите/нуждаетесь/используете. – RoyalPotato

+1

А, спасибо. Но знаете ли вы, как позволить ему работать как администратор. Я хотел бы знать! Вы мой герой;) – Rootel

Смежные вопросы