.NET kullanarak bir bilgisayarı yeniden başlatmak için pinvoke kullanmadan mümkün mü?PC'yi "pure" .NET kullanarak ve * p * invoke kullanarak * yeniden başlatmak mümkün mü?
Sadece başlığı tekrarladım, ama daha fazla nasıl detaylandırılacağından emin değilim!
Düzenleme:
Ben çözüm olarak "kapatma -r" kullanmak istemiyorum bahsetmeliydik. Başka bir deyişle
Environment.ShutDown();
, Windows'un yeni sürümleri ortaya olarak .NET ile korunur şey:
bir şey gibi saf bir .NET yol sonra gerçekten.Düzenleme 2:
Lütfen "Ne p nesi/çağırmak" soran dur. Bu tür cevaplar, SO kullanıcılarının tam olarak sevdiği gibi görünüyor; Bir soruya cevap vermek için varsayılan “yanal” yaklaşım. Ancak, p/invoke ile gerçek bir sorun olmamasına rağmen ve ben mutlu bir şekilde kullanacağım, ancak, .NET'in bir şeyleri başarmak için daha resmi bir yolu olup olmadığını sormak, yeryüzünde neyin yanlış olduğunu? .NET'de ise, OS'ler arasında herhangi bir API değişmesi (büyük olasılıkla) yansıtılır. Nedeni ne olursa olsun, DLL ithalat kullanımını en aza indirmek için bir suç değil mi?
[DllImport("something32.dll")]
static extern int ClimbWall32Ex(IntPtr32 blah);
Ve tıpkı olabilir: burada
SomeNamespace.ClimbWall();
Herkes bir çığlık olacaktır: Ben böyle bir söz konusu şey dahil eğer
eminim "Ne SomeNamespace.ClimbWall();
kullanarak derdin ??"
Sigh.
P/Invoke kullanımıyla ilgili sorun nedir? Kullanılacak ve BCL içinde yaygın olarak kullanılmaktadır. –
... ve yeniden başlatma için bir yöntem ortaya çıkaran bir nesne olsa bile, yalnızca Windows API işlevlerini başlık altında çağırıyordum. –
p/invoke kullanımı ile ilgili bir sorun yoktur ve çoğu.NET, yalnızca Windows API için bir sarıcıdır, ancak bir şeyler yapmanın bir NET yolu varsa, o zaman genel olarak kullanmalısınız! Örneğin, eski API çağrılarını desteklemeyen yeni işletim sistemi vb. Güncelleştirmeler, .NET – joshcomley