全局弹出界面

时间:2022-04-19 03:41:23
我希望写个服务,这个服务去找数据库,看记录更新没得,如果更新了,则弹出一个消息提示。
这个提示框必须在最前面,意思就是说不管用户在干嘛,都能看见这个提示框。

请问应该怎么实现,请高手支持下,谢谢。

11 个解决方案

#1


写个后台程序,开个线程,不断去读取就是了

#2


对 这个我知道,关键是怎么弹出框

#3


关键是弹出这个框提示,用应用程序也可以。

#4


引用 2 楼 qqqwwwqw 的回复:
对 这个我知道,关键是怎么弹出框

MessageBox?或者自己写一个窗体,使其TopMost=True
不知道服务是否可以这样做

#5


帮你顶一下,我也想知道

#6


引用 1 楼 bdmh 的回复:
写个后台程序,开个线程,不断去读取就是了

+1

#7


Form f =new Form();
f.ShowDialog();

#8


写个服务是不行的,必须创建一个弹出窗体才行的,我有代码,太长发不上来

#9


写个服务不行 写个窗体可以 

#10


引用 8 楼 hanfeng527 的回复:
写个服务是不行的,必须创建一个弹出窗体才行的,我有代码,太长发不上来

这个才是正确的答案, windows98以后的服务进程 是无法与桌面操作互交的. 这个是不安全的.

服务进程弹窗这个就别想了.

#11


在WinForm中嵌入一个服务,并且在服务中设定一个SynchronizationContext(引用名字空间System.Threading)静态变量,然后把Form中同步上下文(SynchronizationContext.Current)赋给服务中的静态变量,在服务中可以通过静态变量的Post方法把需操作的内容提交给winform。形如下面的代码:
public static SynchronizationContext SynContext { get; set; }
SynContext.Post(delegate
            {
                TheForm = new Form2();
                TheForm.ShowDialog();
            }, null);

当然也可以通过服务进程运行另外一个提醒程序。

#1


写个后台程序,开个线程,不断去读取就是了

#2


对 这个我知道,关键是怎么弹出框

#3


关键是弹出这个框提示,用应用程序也可以。

#4


引用 2 楼 qqqwwwqw 的回复:
对 这个我知道,关键是怎么弹出框

MessageBox?或者自己写一个窗体,使其TopMost=True
不知道服务是否可以这样做

#5


帮你顶一下,我也想知道

#6


引用 1 楼 bdmh 的回复:
写个后台程序,开个线程,不断去读取就是了

+1

#7


Form f =new Form();
f.ShowDialog();

#8


写个服务是不行的,必须创建一个弹出窗体才行的,我有代码,太长发不上来

#9


写个服务不行 写个窗体可以 

#10


引用 8 楼 hanfeng527 的回复:
写个服务是不行的,必须创建一个弹出窗体才行的,我有代码,太长发不上来

这个才是正确的答案, windows98以后的服务进程 是无法与桌面操作互交的. 这个是不安全的.

服务进程弹窗这个就别想了.

#11


在WinForm中嵌入一个服务,并且在服务中设定一个SynchronizationContext(引用名字空间System.Threading)静态变量,然后把Form中同步上下文(SynchronizationContext.Current)赋给服务中的静态变量,在服务中可以通过静态变量的Post方法把需操作的内容提交给winform。形如下面的代码:
public static SynchronizationContext SynContext { get; set; }
SynContext.Post(delegate
            {
                TheForm = new Form2();
                TheForm.ShowDialog();
            }, null);

当然也可以通过服务进程运行另外一个提醒程序。