[VB] Autostart problem -,-

03/10/2013 09:44 Sunnii'#1
Huhu, ich versuche gerade mein Programm in die autostart zu kopieren, was aber nicht geht.- Warum ist mir ein Rätsel :/

PHP Code:
 Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
 
        Dim autostart 
As String Application.ExecutablePath
        Dim autostart1 
As String Environment.GetFolderPath(Environment.SpecialFolder.Startup) & "/" IO.Path.GetFileName(autostart1)
        Try
            
IO.File.Copy(autostartautostart1)
        Catch 
ex As Exception
 
        End 
Try 

HTML Code:
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        Dim autostart As String = Application.ExecutablePath
        Dim autostart1 As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup) & "/" & IO.Path.GetFileName(autostart1)
        Try
            IO.File.Copy(autostart, autostart1)
        Catch ex As Exception
 
        End Try
03/10/2013 11:58 'Heaven.#2
Hier sind verschiedene Möglichkeiten : [Only registered and activated users can see links. Click Here To Register...]
03/10/2013 19:08 adistoe#3
Autostart Funktion:
Code:
    Function CreateShortCut(ByVal ShortCutTarget As String, ByVal ShortCutFolder As Environment.SpecialFolder, ByVal ShortCutName As String, Optional ByVal OKMsgBox As Boolean = False, Optional ByVal ShortCutIconPfad As String = "", Optional ByVal ShortCutDescription As String = "") As Boolean
        Try
            Dim WSHShell As Object = CreateObject("WScript.Shell")
            Dim Folder As String = Environment.GetFolderPath(ShortCutFolder) & "\" & ShortCutName & ".lnk"
            Dim ShortCut As Object = WSHShell.CreateShortcut(Folder)
            With ShortCut
                .TargetPath = ShortCutTarget
                If ShortCutIconPfad <> "" Then .IconLocation = ShortCutIconPfad
                If ShortCutDescription <> "" Then .Description = ShortCutDescription
                .Save()
            End With
            WSHShell = Nothing
            ShortCut = Nothing
            If OKMsgBox = True Then MsgBox("Autostart eingetragen", MsgBoxStyle.Information, "Autostart")
            Return True
        Catch ex As Exception
            MsgBox("Autostarteinstellung konnte nicht geändert werden.")
            Return False
        End Try
    End Function
Aufruf:
Code:
CreateShortCut(Application.ExecutablePath, Environment.SpecialFolder.Startup, "Verknüpfungsname", True)
03/11/2013 11:43 SBotDE#4
Wie wärs wenn du mal versucht dein VB Projekt mit CMD zu verbinnden ?
z.B mit einer Batch datei die durch ein Process.start eben gestartet wird ?

MfG
SBotDE
03/11/2013 16:55 Sunnii'#5
Quote:
Originally Posted by SBotDE View Post
Wie wärs wenn du mal versucht dein VB Projekt mit CMD zu verbinnden ?
z.B mit einer Batch datei die durch ein Process.start eben gestartet wird ?

MfG
SBotDE
Bin da jetzt nicht wirklich ein Fan von, habs aber eh schon geschafft via c&p xd
03/11/2013 17:33 'Heaven.#6
Quote:
Originally Posted by SBotDE View Post
Wie wärs wenn du mal versucht dein VB Projekt mit CMD zu verbinnden ?
z.B mit einer Batch datei die durch ein Process.start eben gestartet wird ?

MfG
SBotDE
Hast du überhaupt irgendeinen ahnung von dem, was du postest? Was willst du mit ner bat und cmd?? warum nicht einfach einen verweis in der registry setzen? das ist eine codezeile
03/11/2013 17:36 adistoe#7
Quote:
Originally Posted by FexFex View Post
Bin da jetzt nicht wirklich ein Fan von, habs aber eh schon geschafft via c&p xd
Aber bitte guck dir den Code auch an und versuche ihn zu verstehen.
Zur Not google die Funktionen die du nicht verstehst, aber einfach c&p ohne zu gucken ist schlecht.
Sonst kann dir ja jeder irgend nen Dreck andrehen^^
Ausserdem kannst du den Code lernen, fürs nächste mal.

mfg
03/11/2013 19:39 Sunnii'#8
Quote:
Originally Posted by adistoe View Post
Aber bitte guck dir den Code auch an und versuche ihn zu verstehen.
Zur Not google die Funktionen die du nicht verstehst, aber einfach c&p ohne zu gucken ist schlecht.
Sonst kann dir ja jeder irgend nen Dreck andrehen^^
Ausserdem kannst du den Code lernen, fürs nächste mal.

mfg
lol schon klar hab 2 VB Bücher durch gelesen aber dazu stand nirgends etwas drinnen ^^. Wenn ich nur kopiere dann bringt es mir sowieso Null, will das ja in weiteren Projekten auch benutzen ^_^
03/13/2013 13:43 TheMarv :<#9
Du versuchst ein Programm, während es läuft zu kopieren, wahrscheinlich liegt der Fehler darin, dass er keinen Zugriff auf das Programm hat, da dieses schon verwendet wird!

Einfach per Msgbox(ex.ToString) den Fehler ausgeben lassen, der sagt schon alles
03/13/2013 15:13 'Heaven.#10
Quote:
Originally Posted by TheMarv :< View Post
Du versuchst ein Programm, während es läuft zu kopieren, wahrscheinlich liegt der Fehler darin, dass er keinen Zugriff auf das Programm hat, da dieses schon verwendet wird!

Einfach per Msgbox(ex.ToString) den Fehler ausgeben lassen, der sagt schon alles
Es heisst [Exception].Message...

Du solltest erwähnen das dazu der Code in einem try catch block sitzen muss
03/13/2013 18:58 Mansuro#11
Probiers mal so bei mir geht' s:
Code:
    Sub registerautostart(ByVal AppNameWithoutDotExe As String)
        Try
            If IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup) & "\" & AppNameWithoutDotExe & ".exe") Then
            Else
                My.Computer.FileSystem.CopyFile(AppNameWithoutDotExe & ".exe", Environment.GetFolderPath(Environment.SpecialFolder.Startup) & "\" & AppNameWithoutDotExe & ".exe")
            End If
        Catch ex As Exception
        End Try
    End Sub
03/14/2013 11:33 TheMarv :<#12
Quote:
Originally Posted by 'Heaven. View Post
Es heisst [Exception].Message...

Du solltest erwähnen das dazu der Code in einem try catch block sitzen muss
ex.ToString() ist auch ne Möglichkeit...

Daran hatte ich nicht gedacht, zeigt ihm der Compiler aber auch an^^
03/15/2013 18:44 Graphicscore#13
Der Autostart ist doch soweit ich weiß mit Registry oder nicht ?

Code:
Public Function Autostart(ByVal AutostartEnable As Boolean)
Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
If AutostartEnable = True Then
key.SetValue(My.Application.Info.AssemblyName, System.Reflection.Assembly.GetEntryAssembly.Location)
Else
key.DeleteValue(My.Application.Info.AssemblyName, False)
End If
key.Close()
Return AutostartEnable
End Function
Und dann der Aufruf mit
Code:
Autostart(True) 'Heisst das es im Autostart ist
'oder
Autostart(False) 'Wieder aus dem Autostart entfernen
Dann wird doch ein Schlüssel in der Registry angelegt warum wollt ihr denn immer was herum kopieren in irgendwelche Ordner?
03/22/2013 05:12 dready#14
Denk zwar das es hier massgeblich darum geht das er nochnicht wusste das man es über die Registry erledigen kann, jedoch gibts auch Situationen wo man tatsächlich auf sowas zurückgreifen muss wenn nur die Rechte der Useraccounts beknackt genug angelegt sind :P