Czy możliwe jest, bez użycia pinvoke, ponowne uruchomienie komputera przy użyciu .NET?Czy można ponownie uruchomić komputer przy użyciu "czystego" .NET i * bez * przy użyciu p/invoke?
Po prostu powtórzyłem tytuł, ale nie jestem zbyt pewny, jak rozwinąć o wiele więcej!
Edit:
Powinienem wspomnieć, że nie chce użyć "shutdown -r" jako rozwiązanie.
byłem naprawdę po czystej NET sposób, coś jak:
Environment.ShutDown();
Innymi słowy, coś, co jest utrzymywany z .NET jako nowe wersje Windows powstać.
Edit 2:
Proszę przystanek pytaniem "co się stało z p/wywołać". Tego rodzaju odpowiedzi są dokładnie tym, co użytkownicy SO wydają się kochać; rzekome "boczne" podejście do odpowiedzi na pytanie. Jednak, mimo że nie ma prawdziwego problemu z p/invoke i z przyjemnością go wykorzystam, co jest nie tak z pytaniem, czy .NET ma bardziej oficjalny sposób na osiągnięcie czegoś? Jeśli jest w .NET, to wszelkie zmiany API między systemami (najprawdopodobniej) zostaną odzwierciedlone. Niezależnie od powodu, nie jest przestępstwem dążenie do zminimalizowania użycia importu DLL, prawda?
jestem pewien, czy zawarte w pytaniu coś takiego:
[DllImport("something32.dll")]
static extern int ClimbWall32Ex(IntPtr32 blah);
A może po prostu zrobić:
SomeNamespace.ClimbWall();
Każdy jeden tutaj by krzyczeć: „Co jest złego w używaniu SomeNamespace.ClimbWall();
?? "
Westchnienie.
Na czym polega problem z korzystaniem z P/Invoke? Jest tam do wykorzystania i jest szeroko stosowany w BCL. –
... a nawet gdyby istniał obiekt ujawniający metodę ponownego rozruchu, założę się, że byłoby to po prostu wywołanie natywnych funkcji Windows API pod maską. –
Nie ma problemu z używaniem p/invoke i większością.NET to po prostu wrapper dla Windows API, ale gdyby istniał sposób .NET, to ogólnie rzecz biorąc, powinieneś go użyć! Na przykład wszelkie aktualizacje w nowych systemach operacyjnych itp., Które mogą nie obsługiwać starych wywołań API, zostaną naprawione (!) Z aktualizacją do .NET – joshcomley