2011-05-12 111 views
3

我怎樣才能找到運行程序的機器的所有本地打印機,並且沒有管理員權限的用戶。我需要重新映射打印機IP並將打印機設置爲默認值。我的想法是使用模擬來做到這一點,但我不知道在哪裏可以找到打印機,以及是否使用模擬的好方法。獲取本地打印機列表來更改打印機IP和默認打印機

感謝您的幫助!

+0

你能提供有關操作系統的更多信息? – sra 2011-05-12 13:02:56

+0

我只使用Windows 7 – Tim 2011-05-12 13:13:06

回答

2

我不認爲你會有這樣的運氣。模擬不會在這裏工作,只是拋出一個異常。你可以通過模仿來嘗試這個,並嘗試打開Environment.Domain,它會給你一個例外。

你可以嘗試這樣的事情不帶模擬:

ManagementScope mscope = new ManagementScope(@"\root\CIMV2", options); 
mscope.Connect(); 
System.Management.ObjectQuery oQuery = new ObjectQuery("Select * from Win32_TCPIPPrinterPort"); 
System.Management.ManagementObjectSearcher searcher = new ManagementObjectSearcher(mscope, oQuery); 
ManagementObjectCollection moCollection = searcher.Get(); 

foreach (ManagementObject mo in moCollection) 
{ 
    string name = mo["Name"].ToString(); 

    if (name.Equals(this.portName)) 
    { 
     System.Threading.Thread.Sleep(10000); 
     mo["HostAddress"] = this.printerIP; 
     mo.Put(); 
     Console.WriteLine("Adjusted Printer Port to new IP address " + this.printerIP); 
     return true; 
    } 
} 
+0

謝謝。這似乎爲我工作 – Tim 2011-05-12 13:56:31

+0

不錯。比你應該考慮檢查這個答案? – sra 2011-05-12 14:15:55

+0

對不起,我是新人,不知道 – Tim 2011-05-12 14:17:38