# Programme in Autostart



## Justus (22. Dezember 2001)

Wie kann ich ein Programm (z.B. C:\Program.exe.) über die Registry in den Autostart eintragen lassen, also nicht über den Autostart Ordner?
Ich kenn mich in Sachen Registry nicht besonder gut aus, schreibt bitte desween eine genaue Antwort.


----------



## A5 Infoschlampe (24. Dezember 2001)

Also, es geht zwar auch mit direkten vb befehlen, aber diese wären ca 50 zeilen lang und für anfänger viel zu kompliziert. aber es gibt noch einen leichteren, genauso effiktiven weg:

probiers so:
---
---

```
' Diese Funktion wird später benötigt um die Backslash beim
' Pfad zu verdoppeln
Private Function KonvertToRegSyntax(Text As String) As String
Dim S As Integer
S = 1
While InStr(S, Text, "\") > 0
  KonvertToRegSyntax = Left$(Text, InStr(S, Text, "\")) & "\" & Right$(Text, Len(Text) - InStr(S, Text, "\"))
  Text = KonvertToRegSyntax
  If S = 0 Then Exit Function
  S = InStr(S, Text, "\") + 2
Wend
End Function
---
---
' Datei zum temporären speichern öffnen
open app.path & "\tmp.reg" for output as #1
'Header
print #1,"REGEDIT4"
print #1,""
' Schlüsselname zum automatischen Start von Programmen
print #1,"[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]"
' Jetzt Programmnamen + Pfad auf Platte
print #1,chr$(34) & "MeinProgrammname" & chr$(34) & "=" & chr$(34) & KonvertToRegSyntax( app.path & "\" & App.EXEName & ".exe") & chr$(34)
' Die chr$(34) Anweisungen werden benötigt um ein Anführungszeichen
 'in die Datei zu schreiben und Beachte(!): Beim Pfad MUSS statt 
'einem 2(!) Backslashs geschrieben werden, deswegen wird die Funktion
' KonvertToRegSyntax aufgerufen, die dies automatisch macht
print #1,"" ' Leerzeile am Ende der Datei: Muss sein(!)
close #1 ' Datei schliessen

'Programm in Registry eintragen
SHELL environ$("WINDIR") & "\regedit.exe /s " & chr$(34) & app.path & "\tmp.reg" & chr$(34), vbHide

' TempDatei wieder löschen
Kill app.path & "\tmp.reg"
```
---

so müssts klappen, habs jetzt nicht getestet , probiers mal und sag obs funzt - hoffe das hilft dir weiter


ciao


----------



## GerhardSchrader (10. Juli 2005)

Ich bin zwar nicht der nach gefragt hat, aber da ich nach so einer Funktion gesucht habe, habe ich es mal getestet und bei mir hats funktioniert, wobei man nach End funktion eine neue Prozedur aufrufen muß

Blinky


----------



## A5 Infoschlampe (12. August 2005)

*lach*   

Schlappe 4 Jahre später geantwortet...


----------



## Lakar (7. März 2010)

bei mir kommt da ein fehler raus, welchen ich wegen der mangelnder erfahrungen nicht beseitigen kann... (benutze vb6 pro) könntest du vllt editieren  danke 

ps: viele jahre später


----------

