Перемещение программы в местоположение - PullRequest
0 голосов
/ 08 июля 2011

Как я могу переместить мое приложение VB.NET в папку с использованием VB.NET в том же файле?

По сути, я хочу иметь возможность перемещать мое приложение VB.NET в папку «Пуск», когда оновыполняется (в том же приложении).Кроме того, я хочу иметь возможность перемещать его в одну и ту же папку на любом компьютере, поскольку на разных компьютерах нет заданного пути к папке «Пуск».Или я хотел бы просто создать ярлык для моего приложения в стартовой папке

Спасибо,

Odinulf

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Следующий код создаст ярлык для запущенного приложения в меню «Пуск» (для этого вам потребуются необходимые разрешения):

Во-первых, Добавить ссылку -> вкладка COM -> Хост-объект Windows ScriptМодель

Imports IWshRuntimeLibrary

Public Function CreateShortcut(ByVal fileName As String, ByVal description As String) As Boolean
        Try
            Dim shell As New WshShell
            'the following is the root of the Start Menu so if you want it in a folder you need to create it
            Dim ShortcutDir As String = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu)
            Dim shortCut As IWshRuntimeLibrary.IWshShortcut

            ' short cut files have a .lnk extension
            shortCut = CType(shell.CreateShortcut(ShortcutDir & "\" & fileName & ".lnk"), IWshRuntimeLibrary.IWshShortcut)

            ' set the shortcut properties
            With shortCut
                .TargetPath = System.Reflection.Assembly.GetExecutingAssembly.Location()
                .WindowStyle = 1
                .Description = description
                .WorkingDirectory = ShortcutDir
                ' the next line gets the first Icon from the executing program
                .IconLocation = System.Reflection.Assembly.GetExecutingAssembly.Location() & ", 0"

                '.Arguments = ""
                .Save()
            End With
            Return True
        Catch ex As System.Exception
            ' add your error handling here
            Return False
        End Try
    End Function
1 голос
/ 08 июля 2011

Вы не можете переместить, переименовать или удалить процесс, который используется в данный момент. Поэтому, когда вы запускаете свою программу, вы не можете ее переместить, вместо этого вам придется создать что-то вроде bootstrapper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...