Tag: 状态

C#PrintDocument和打印机状态

我试图使用以下代码获取PointOfSale打印机的打印机状态: Hashtable properties = new Hashtable(); ManagementObjectSearcher searcher = new ManagementObjectSearcher(“SELECT * FROM Win2_Printer”); foreach (ManagementObject obj in searcher.Get()) { if (obj[“name”].ToString() == printerName) { foreach (PropertyData data in obj.Properties) { if(data.Name.ToLower() = “printerstatus”) { int printerStatus = Convert.ToInt32(data.Value); } } } } 问题是,状态是3(空闲)或4(打印),即使拔下插头或纸张已用完。 我已经阅读了很多相同问题的post,但还没有找到答案。 它是否正确? 我怎么检查状态? 任何帮助表示赞赏。

自动推进状态机与无状态

我最近一直在试验Stateless(C#中的HSM)( https://code.google.com/p/stateless/ ),而且我遇到了一些我不确定如何实现的东西。 假设我有以下状态: 开始。 连 读 完 我想要实现的是:当建立TCP连接(处于连接状态)时,进入读状态。 或者,如果失败,则进入“完成”状态(可以返回“连接”状态并在超时后尝试新连接)。 如何使用Stateless实现此自动推进function,因为从状态内触发触发器会导致堆栈溢出exception? 干杯

检查显示器是否已连接

我要制作一个简单的程序,向服务器报告监视器的状态(是开/关还是仅仅是连接)。 到目前为止,我正在使用我在另一个讨论中找到的这种方法,但它每次都只返回给我,即使我已断开我的显示器。 public static Boolean isMonitorActive() { Boolean active = false; var query = “select * from WmiMonitorBasicDisplayParams”; using (var wmiSearcher = new ManagementObjectSearcher(“\\root\\wmi”, query)) { var results = wmiSearcher.Get(); foreach (ManagementObject wmiObj in results) { // get the “Active” property and cast to a boolean, which should // tell us if the display is […]

在扩展方法中保留状态

C#团队之前曾考虑过向C#添加扩展属性,事件等。 Per Eric Lippert: http://blogs.msdn.com/b/ericlippert/archive/2009/10/05/why-no-extension-properties.aspx 然而,为了使这些特征有用,它们必须能够用对象存储一些新的状态。 看起来这样做的唯一方法是使用字典并将对象的每个实例与其他状态相关联。 如果可以通过创建我自己的字典(以及可能的get / set扩展方法)“手动”复制此function将是有用的。 但是,为了将对象的特定实例与某个状态相关联,您需要散列对该对象的实际引用 。 在另一种语言中,您可以通过散列其内存位置来实现此目的,但是在C#中不能保证保持不变,并且使用不安全的代码来完成此function远非理想。 有没有人知道是否有可能获得一些对象的可引用引用,该对象在对象的内部状态发生变化时不会改变? 显然有一些内部机制可以跟踪单个对象而不管它们的内存位置如何,但我不确定它是否暴露给用户代码。 注意:简单地散列对象本身根本不起作用,因为GetHashCode()依赖于对象的内部状态而不是它所在的对象 。 感谢您的任何见解。

c#检查打印机状态

在我的应用程序(Windows 7,VS2010)中,我必须在成功打印图像后减少信用计数器。 无论如何,在开始整个过程​​之前,我想了解打印机状态,以便在纸张,卡纸等方面提醒用户。 现在,环顾四周我发现了几个使用Windows WMI的例子,但是……从来没有用过。 例如,使用THIS代码段,如果我取出纸张,打开盖子,打印机状态也随时可用…关闭打印机。 现在打印机状态总是很好,我正在办公室测试打印机在家里舒适地关闭。 让我用炸药引爆设备以获得打印机错误状态? 这是我用过的代码 ManagementObjectCollection MgmtCollection; ManagementObjectSearcher MgmtSearcher; //Perform the search for printers and return the listing as a collection MgmtSearcher = new ManagementObjectSearcher(“Select * from Win32_Printer”); MgmtCollection = MgmtSearcher.Get(); foreach (ManagementObject objWMI in MgmtCollection) { string name = objWMI[“Name”].ToString().ToLower(); if (name.Equals(printerName.ToLower())) { int state = Int32.Parse(objWMI[“ExtendedPrinterStatus”].ToString()); if ((state == […]

WCF服务默认是无状态的吗?

我有一个简单的WCF服务,允许客户端/消费者应用程序通过提供用户名和密码登录。 如果用户名和密码都正确,则WCF服务为客户端提供GUID。 然后将GUID和用户名存储为WCF服务中的键/值对。 从此处开始,客户端将每个请求的GUID作为识别手段发送。 由于我将键/值对存储在Dictionary / Hashmap中,因此只有在WCF服务有状态时,此方法才有效。 问题是,它们是默认的有状态还是我必须做些什么才能使它们以这种方式运行?

c#打印机属性WMI

你好我有这个代码来检索打印机属性: string printerName = “PrinterName”; string query = string.Format(“SELECT * from Win32_Printer ” + “WHERE Name LIKE ‘%{0}'”, printerName); ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection coll = searcher.Get(); foreach (ManagementObject printer in coll) { foreach (PropertyData property in printer.Properties) { Console.WriteLine(string.Format(“{0}: {1}”, property.Name, property.Value)); } } 但我需要的属性总是返回相同的: PrinterState:0 PrinterStatus:3 基本上我需要这个来检查打印机是否缺纸。 我认为会是:PrinterState:4 在wxp-86和w7-64上测试返回相同的.Net 4.0 谢谢。