Уведомление Windows не отображается при вызове .exe в vb.net с помощью process.start

#vb.net #notifications #window #process.start

#vb.net #уведомления #окно #process.start

Вопрос:

У меня есть vb.net программа, которая вызывает .exe с Process.start() кратким описанием этого .exe: он загружает файл с веб-сервера и отправляет некоторое уведомление Windows при запуске загрузки.. Этот алгоритм работает нормально, если я просто запускаю свой «LiveUpdate.exe «досье.

Это мой вызов в vb.net код:

Process.Start(location amp; "LiveUpdate.exe", "-f "settings.ini")

И это мой метод уведомления на c #

 public void Popup(string title, string description, Icon systemIcon, ToolTipIcon icon = ToolTipIcon.Info)
        {
            var notification = new NotifyIcon()
            {
                Visible = true,
                Icon = systemIcon, //SystemIcons.Information,
                BalloonTipIcon = icon,
                BalloonTipTitle = title,
                BalloonTipText = description
            };
            Task.Run(() => OpenAndCloseNotification(notification, 2));
        }

        public void OpenAndCloseNotification(NotifyIcon notification, int secconds)
        {
            var milisecconds = secconds * 1000;
            notification.ShowBalloonTip(milisecconds);
            Thread.Sleep(milisecconds);
            notification.Dispose();
        }
  

Может ли быть, что vb.net не разрешает всплывающие окна — уведомления?
Я приложу больше кода, если он вам понадобится, заранее спасибо.

Ответ №1:

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

 <blockquote class="imgur-embed-pub" lang="en" data-id="a/V2WnhOA"><a href="//imgur.com/V2WnhOA"></a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>  

 
     Private x, y As Integer
    Private fondo As Image
    Private icono As Icon
    Private WithEvents temporizador As Timer
    Private inicio As DateTime
    Private tiempo As Integer


    Private Sub FNotifi_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim destination = New Bitmap(Size.Width, Size.Height)
        Dim original = Image.FromFile(".ResourcesImagenesFondo1_2.bmp")
        Using g = Graphics.FromImage(destination)
            g.InterpolationMode = InterpolationMode.NearestNeighbor
            g.DrawImage(original, New Rectangle(0, 0, destination.Width, destination.Height), New Rectangle(0, 0, original.Width, original.Height), GraphicsUnit.Pixel)
        End Using


        Dim bmp As Bitmap
        ' bmp = New Bitmap(".ResourcesImagenesFondo1_2.bmp")
        bmp = New Bitmap(destination)
        'el color del pixel(1,1) (esquina sup. izda.) del Bitmap será renderizado
        'como transparente en el Bitmap (color RGB 255,0,0)
        'bmp.MakeTransparent(bmp.GetPixel(1, 1))
        'colocar el Bitmap como fondo del formulario
        Me.BackgroundImage = bmp
        'el color del pixel(1,1) (esquina sup. izda.) del Bitmap será renderizado
        'como transparente también en el formulario (color RGB 255,0,0)
        Me.TransparencyKey = bmp.GetPixel(1, 1)
        Me.BackgroundImageLayout = ImageLayout.Zoom

        Dim workingArea As Rectangle = Screen.GetWorkingArea(Me)
        x = workingArea.Right - Size.Width
        y = workingArea.Bottom - Size.Height
        Me.Location = New Point(x, y)

    End Sub

    Public Sub New(Titulo As String, mensaje As String, ByRef tempo As Timer, Optional tiempo As Integer = 10000)
        ' Esta llamada es exigida por el diseñador.
        InitializeComponent()

        inicio = Now
        temporizador = tempo
        Me.tiempo = tiempo

        LblTitulo.Text = Titulo
        LblMensaje.Text = mensaje

    End Sub

<blockquote class="imgur-embed-pub" lang="en" data-id="a/BW171wJ"><a href="//imgur.com/BW171wJ"></a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>



<blockquote class="imgur-embed-pub" lang="en" data-id="a/BW171wJ"><a href="//imgur.com/BW171wJ"></a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
 Run code snippetHide resultsExpand snippet




  

Комментарии:

1. Спасибо! Я попробую

Ответ №2:

У меня также было много проблем с уведомлениями Windows начиная с windows10. Я не знаю, от чего это зависит, но иногда работает, а другие нет.

вы пытались показать уведомление непосредственно при событии clic кнопки? по крайней мере, таким образом вы проверите, работает ли это.

В любом случае, что мне нужно было сделать в конце, так это создать свои собственные уведомления с формой, которая отображается в углу стола в течение требуемого времени.

Если вас заинтересовало это решение, я покажу вам код

Комментарии:

1. Было бы очень приятно, если бы вы могли вставить свой код