---
title: "Stänga av datorn"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/75278-stänga-av-datorn"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Php"
published: "2003-04-28T14:43:42.000Z"
updated: "2003-05-07T17:01:16.000Z"
replies: 13
views: 442
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/75278-stänga-av-datorn"
---

# Stänga av datorn

## #1 — Php, 2003-04-28T14:43Z

Hej, jag undrar om man kan göra ett program i visual basic som stänger av datorn när man öppnar den. I windows 98 kunde jag använda mig av exitwin, men det fungerar inte i xp.

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

## #2 — niko, 2003-04-28T15:43Z

Krånglig API-mässig variant:
<http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_10603261.html>

Smidig Script-mässig:

```
dim OpSysSet as Object
Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery _
("select * from Win32_OperatingSystem where Primary=true") 
for each OpSys in OpSysSet 
     OpSys.ShutDown
next
```

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

## #3 — Php, 2003-04-29T14:25Z

Tack!

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

## #4 — Php, 2003-04-29T18:35Z

Hej, jag har en fråga till. Jag håller på med ett program och undrar nu om man kan ha en knapp i programet som man kan trycka på för att programet ska lägga sig i datorns autostart? Gärna en knapp som tar bort den från autostarten också.

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

## #5 — niko, 2003-04-29T19:22Z

Nu hamnar den inte i "autostartmappen" utan i registrets autostart, men det funkar lika bra:

Lägg till i autostart:

```
savestring HKEY_CURRENT_USER, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", _
"Whatever", Chr(34) & App.Path & "\" & App.EXEName & ".exe" & Chr(34)
```

Ta bort från autostart:

```
DeleteValue HKEY_CURRENT_USER, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", _
"Whatever"
```

Lägg sen denna kod i en bas-fil:

```
Public Const HKEY_CURRENT_USER = &H80000001

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
(ByVal hKey As Long, ByVal lpValueName As String) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Public Sub savestring(hKey As Long, strPath As String, strValue As String, _
strdata As String)
    Dim keyhand As Long
    Dim r As Long
    r = RegCreateKey(hKey, strPath, keyhand)
    r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
    r = RegCloseKey(keyhand)
End Sub

Public Function DeleteValue(ByVal hKey As Long, ByVal strPath As String, _
ByVal strValue As String)
    Dim keyhand As Long
    r = RegOpenKey(hKey, strPath, keyhand)
    r = RegDeleteValue(keyhand, strValue)
    r = RegCloseKey(keyhand)
End Function
```

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

## #6 — Php, 2003-04-29T19:56Z

Hej, jag får inte det att fungera precis. Jag får felmedelande på:
Public Const HKEY_CURRENT_USER = &H80000001
Jag tror att jag lagt koden på fel ställe. Vilken bas fil menar du att jag ska lägga in den i?

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

## #7 — niko, 2003-04-29T20:02Z

> Vilken bas fil menar du att jag ska lägga in den i?

I vilken som helst. Enklast är väl att skapa en ny (*Project-\>Add module*) och klistra in koden i den.

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

## #8 — Php, 2003-04-29T20:04Z

Förlåt, det var jag som hade gjort fel. Tack ännu en gång.

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

## #9 — Php, 2003-04-29T20:19Z

Hej, nu har jag upptäckt ett annat fel. Det är så att den lägger sig i autostarten men programet startar inte.

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

## #10 — niko, 2003-04-29T20:26Z

Om den ligger i rätt registernyckel så *ska* den starta (vid omboot). Det är Windows uppgift och har inget med VB att göra. Vad står det exakt i nyckeln?

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

## #11 — Php, 2003-04-29T21:49Z

Hej!
Allt verkar stämma men den startar ändå inte.
Kan man inte göra så att programet kopierar sig själv till autostart mappen istället?

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

## #12 — niko, 2003-04-29T22:11Z

> Allt verkar stämma men den startar ändå inte.

Som sagt vad står det i nyckeln?

> Kan man inte göra så att programet kopierar sig själv till autostart mappen istället?

Jo, det kan man säkert. Vet inte hur bara, på rak arm. Men om den inte startar via registernyckeln så förstår jag inte varför den skulle starta i "autostart". Det är nåt som är skumt ..

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

## #13 — Php, 2003-04-29T22:21Z

Jag testade lägga den manuelt i autostart mappen och det fungera.
Jag får väl annars testa på en annan dator.

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

## #14 — Nexus86, 2003-05-07T17:01Z

Kompillerade du koden innan du la till det i registret? :q

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/75278-stänga-av-datorn
