Tag: 消息

C#中的可靠多播

在c#/ .Net 3.5中我有哪些可靠的多播选项? 我不想使用MSMQ。 我对商业和开源选项持开放态度。 谢谢

C#SQL输出到SSMS消息选项卡等文本

我在找到一种方法来获取更新/插入/删除/表创建的结果时遇到了一些麻烦…… 我想在SSMS(SQL Server Management Studio)消息选项卡中看到它(猜测该工具是done_in_proc)。 目前,我可以获得exception,并且我可以捕获在SQL脚本中完成的打印。 我已经尝试过ExecuteScalar,ExecuteReader,ExecuteWithResults并且什么也没得到。 谢谢, 码: public void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e) { foreach (SqlError err in e.Errors) { richTextBoxDeployCopy.AppendText(“Info : “+err.Message + Environment.NewLine); } } public void ExecSQLScript(string Instance, string Database, string SQLScript, string Username, string Password) { if (Application2Deploy == “DUMMY”) { server = “Server”; } else { server = […]

如何在不等待事件监听器运行的情况下触发事件?

我对.NET(C#)中的事件有疑问。 我必须编写代码,用于运行后台任务的几种情况,并且我想通知主线程或控制器类已发生某些事情,例如任务已完成,或已完成复制文件,但我不知道t希望后台任务等待主线程的委托处理事件。 我想做一些像消息传递这样的事情:发送消息,但谁在乎他们用它做什么。 例如: 编写一个类来依次处理多个进程,一个接一个。 每个进程都需要在后台线程上运行。 当工作完成时,事件触发并告诉控制器它已完成(假设使用OnCompleted()方法) 问题是如果控制器的事件处理程序用于启动后续进程,则先前进程的OnComplete方法将保留在调用堆栈上(永远不会完成执行),直到所有进程完成为止。 在那种情况下,后台任务如何通知控制器类工作完成而不在堆栈上保留事件提升方法? 示例2:备份程序。 后台线程运行以将每个文件复制到目标。 后台需要通知 UI最后复制的文件,但不需要等待UI更新。 相反,它只是想说,“顺便说一句,这里有一些信息。现在,让我重新开始工作。” 事件监听器不应阻止事件提升者的处理。

ISupportIncrementalLoading Collection – 在LoadingMoreItems正在进行时通知UI

我已经在我的应用程序中创建了一个IncrementalLoadingCollection类,它实现了ISupportIncrementalLoading并从ObservableCollectioninheritance。 它工作正常,项目已加载,但我想在应用程序的Status Bar显示有一些消息正在进行中。 实现这一目标的好方法是什么? 由于在滚动列表时会在内部调用LoadMoreItemsAsync ,因此我无法访问该部分以提供更新Status Bar的代码。 现在,我在LoadMoreItemsAsync中这样做,我觉得这是一个糟糕的方法,但到目前为止我找不到更好的… 任何建议都非常感谢。

设计帮助 – 多态事件处理

设计问题 – 多态事件处理 我目前正在尝试减少当前项目中的事件句柄数量。 我们有多个通过USB发送数据的系统。 我目前有一个例程来读取消息并解析初始标头详细信息以确定消息来自哪个系统。 标题有点不同,所以我创建的EventArgs不一样。 然后我通知所有“观察员”这一变化。 所以我现在所拥有的是以下内容: public enum Sub1Enums : byte { ID1 = 0x01, ID2 = 0x02 } public enum Sub2Enums : ushort { ID1 = 0xFFFE, ID2 = 0xFFFF } public class MyEvent1Args { public Sub1Enums MessageID; public byte[] Data; public MyEvent1Args(Sub1Enums sub1Enum, byte[] data) { MessageID = sub1Enum; Data […]

有谁知道ShellHook消息HSHELL_RUDEAPPACTIVATED是什么意思?

我正在编写应用程序,它建立shell钩子来获取shell事件(如果重要的话,我正在使用C#)。 我正在使用这个例子: http : //msbob.spaces.live.com/blog/cns!DAFD19BC5D669D8F!1,332.entry Hook工作正常,但我没有收到我感兴趣的消息:HSHELL_WINDOWACTIVATED(所有其他与窗口相关的事件都运行良好)。 相反,我收到的代码为32772的消息应该是HSHELL_RUDEAPPACTIVATED(一些谷歌搜索帮助)。 但我无法理解为什么我根本没有收到HSHELL_WINDOWACTIVATED以及这个HSHELL_RUDEAPPACTIVATED消息的含义。 MSDN没有提及它。 任何人都可以向我解释一下吗?

在dll库中显示消息框

我正在编写一个DLL库(例如用于检查用户的登录详细信息),我想在此过程中弹出确认对话框或信息对话框,例如 “Are you sure you want to continue? (Yes/No/Cancel)” 由于某些原因。 目前我需要这个用于Winforms中的应用程序,我也想在我的其他webforms应用程序中使用相同的dll。 谁能指导如何实现它? 需要少说我不想引用System.Windows.Forms或System.Web 。 任何人都可以给我一些指示吗? 我正在使用.net 4.0 我不想发布/订阅事件,因为我对cab架构不是很熟悉。 编辑 我有一个用于在应用程序的运行时创建数据库的DLL。 所以我的dll通常检查数据库是否已经存在并且是否是最新的,如果它然后停止。 但如果它不存在或不是最新的,那么我想询问用户他现在或之后是否要更新它。 如果用户现在说,更新它然后继续申请。 这只是一个例子,欢迎任何相关的信息。 谢谢。

在另一个表单中发生事件后更新一个表单

我正在努力确定基于另一个表单中发生的事件更新一个表单的最佳方法。 例如,我的应用程序有一个表单,显示ListView中的部件列表(即库存,非库存等…)。 我的应用程序还有一个允许用户添加新部件的表单。 该应用程序不是MDI 。 每次从其他表单插入,更新或删除项目时,更新显示部件列表的表单的最佳选项是什么? 我意识到我可以将引用传递给第二种forms,在这种情况下,表单是从第一种forms实例化的,但是,我宁愿不紧密地结合表单。 我已经尝试过自定义事件但是,我认为这需要在中间实现一个接管表单实例化的类,以便它可以访问这两个对象。 我想我可以使用.NET内置的属性。 我最好的选择是什么?

发送和接收UDP数据包

以下代码在端口15000上发送数据包: int port = 15000; UdpClient udp = new UdpClient(); //udp.EnableBroadcast = true; //This was suggested in a now deleted answer IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, port); string str4 = “I want to receive this!”; byte[] sendBytes4 = Encoding.ASCII.GetBytes(str4); udp.Send(sendBytes4, sendBytes4.Length, groupEP); udp.Close(); 但是,如果我不能在另一台计算机上接收它,它就没用了。 我所需要的只是将命令发送到局域网上的另一台计算机,并让它接收它并做一些事情。 不使用Pcap库,有什么办法可以实现这个目标吗? 我的程序正在与之通信的计算机是Windows XP 32位,而发送计算机是Windows 7 64位,如果它有所作为。 我已经研究了各种net send命令,但我无法弄明白。 我也可以访问计算机(XP one)的本地IP,因为它可以在其上物理输入’ipconfig’。 […]

C# – 从C#应用程序向Google Chrome发送消息

我一直在寻找,我还没有找到我将如何从C#中做到这一点。 我想要这样做,所以我可以告诉谷歌Chrome从我的C#应用​​程序前进 , 后退 , 打开新标签 , 关闭标签 , 打开新窗口和关闭窗口 。 我使用WinAmp做了类似的事情 [DllImport(“user32”, EntryPoint = “SendMessageA”)] private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam); 还有一些其他人。 但我不知道要发送什么消息或者如何找到传递给它的窗口,或者其他什么。 那么有人可以告诉我如何从C#向Chrome发送这6个命令吗? 谢谢 编辑:好的,我正在投票,所以也许我不够清楚,或者人们假设我没有试图自己解决这个问题。 首先,我对整个DllImport的东西不太满意。 我还在学习它是如何运作的。 几年前我在winamp找到了如何做同样的想法,我正在查看我的代码。 我做到了所以我可以跳过一首歌,回去,播放,暂停,并停止从我的C#代码winamp。 我开始导入: [DllImport(“user32.dll”, CharSet = CharSet.Auto)] public static extern IntPtr FindWindow([MarshalAs(UnmanagedType.LPTStr)] string lpClassName, [MarshalAs(UnmanagedType.LPTStr)] string lpWindowName); [DllImport(“user32.dll”, CharSet = […]