#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. Было бы очень приятно, если бы вы могли вставить свой код