---
title: "Windows"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/60715-windows"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "alan"
published: "2002-11-30T00:50:44.000Z"
updated: "2002-11-30T16:17:42.000Z"
replies: 4
views: 317
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/60715-windows"
---

# Windows

## #1 — alan, 2002-11-30T00:50Z

Hej,
Jag skulle vilja ha 2 koder till VB

1\. Starta om datorn
2\. Stänga av datorn

Hälsningar!

Permalänk: https://www.webforum.nu/p/60715

## #2 — Gein, 2002-11-30T00:57Z

Det här torde funka.

**ExitWindowsEx**
Stänger av eller startar om användarens dator. Eftersom avstängning/omstart börjar när funktionen anropas, finns det inte mycket för programmet att göra. 

**Returnerar**
Funktionen returnerar 0 om ett fel inträffade. Om funktionen lyckas, returneras ett icke-noll-värde.

**Parameters**
uFlags
En eller flera av följande flaggor specifierar hur omstarten 
eller avstägningen av datorn sker:
EWX_FORCE = 4
Tvingar applikationer att stängas utan att be användaren att stänga dem
EWX_LOGOFF = 0
'Loggar av från nätverket.
EWX_POWEROFF = 8
'Stäng av operativsystem och om det är möjligt, stäng av datorn.
EWX_REBOOT = 2
Genomför en full omstart av datorn. 
EWX_SHUTDOWN = 1
Stänger ner systemet.
dwReserved
Reserverad för senare versioner av Windows, Sätts alltid till 0.   

**Form**
Exempel:' Startar om datorn, tvingar öppna program att stängas 
Dim retval As Long  ' returvärdet 

retval = ExitWindowsEx(EWX_REBOOT Or EWX_FORCE, 0) 
If retval = 0 Then Debug.Print "Omstarten misslyckades."
 

  
**Kommentarer**  
Plattformar: Win 95/98, Win NT  

källa: [pellesoft.nu](http://www.pellesoft.nu)

Permalänk: https://www.webforum.nu/p/870076

## #3 — niko, 2002-11-30T09:49Z

> **Gein skrev:**
>
> Kommentarer 
> Plattformar: Win 95/98, Win NT 
> 
> 
> källa: pellesoft.nu

I så fall har din källa delvis fel. Ett enkelt *ExitWindowsEx* fungerar bara på Win9x. NT, 2000 och XP är ganska mycket krångligare. 

Kod: <http://support.microsoft.com/default.aspx?scid=KB;en-us;q176695>. 

Dessutom måste processen som anropar koden så klart ha *rättigheter* att boota om, vilket normalt bara Power Users/Administrators har.

Permalänk: https://www.webforum.nu/p/870136

## #4 — Gein, 2002-11-30T11:14Z

Ja just det. Minns att jag hade problem med det förut, ska se om jag hittar någon gammal kod för jag vet att jag fick det att funka till w2k

Permalänk: https://www.webforum.nu/p/870161

## #5 — niko, 2002-11-30T16:17Z

Man behöver inte heller använda API:et på de plattformar där WMI (Windows Management Instrumentation) är förinstallerat (Me, 2000, XP).

Om man lägger till en referens till WMI Scripting Library så kan man skriva:

```
   Dim p_objSet                        As SWbemObjectSet
   Dim p_objSWbemObj                   As Object

   Set p_objSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2"). _
                  ExecQuery("select * from Win32_OperatingSystem where Primary=true")
   
   For Each p_objSWbemObj In p_objSet
      p_objSWbemObj.reboot
   Next p_objSWbemObj
```

RebootNT_WMI.zip på <http://gethelp.devx.com/techtips/nt_pro/10_minute_solutions/10minNT1200-3.asp> innehåller exempel både med WMI och API.

Permalänk: https://www.webforum.nu/p/870327

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/60715-windows
