Próbuję zabić proces na zdalnym komputerze, ale to nie działa i nie dostaję żadnych błędów. Używam tego kodu:Jak zabić proces na komputerze zdalnym za pomocą wmi
ManagementScope scope = new ManagementScope("\\\\" + txtMaquina.Text + "\\root\\cimv2");
scope.Connect();
ObjectQuery query = new ObjectQuery("select * from Win32_process where name = '" + lstProcessos.SelectedItem.ToString() + "'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection objectCollection = searcher.Get();
foreach (ManagementObject managementObject in objectCollection)
managementObject.InvokeMethod("Terminate", null);
nazwa komputera jest txtMaquina.Text
i nazwę procesu Dostaję od wybranej pozycji na ListView
ktoś ma jakiś pomysł co jest nie tak tutaj?
możliwe duplikat [Nie można zakończyć proces zdalnie przy użyciu WMI i C#] (http://stackoverflow.com/questions/18993363/unable- to-remote-endate-a-process-using-wmi-and-c-sharp) – BugFinder
'lstProcessos.SelectedItem.ToString()' jest prawdopodobnie niepoprawny .. prawdopodobnie zwraca nazwę typu .. (aka 'ListViewItem'). - wyraźnie to nie jest to, czego chcesz. Listy listView mogą być dość skomplikowanymi formantami (to znaczy, jeśli był to kontrolka listbox, selectedItem prawdopodobnie miałby właściwość 'Text' na nim). –
jeśli wiążisz kontrolę , wartość jest ogólnie w własności dataItem; który jawnie rzutujesz z obiektu na ciąg ..... po prostu umieść punkt debugowania i zajrzyj do instancji 'lstProcessos.SelectedItem' (używając okna Lokalne/obserwuj .. lub unosząc się nad samym fragmentem kodu .. lub używając konsola immeidate .. –