1

つい最近、Microsoft Visual Basic 2010 Expressを使い始め、ブラウザコンポーネントにURLをロードするアプリケーションを作成しています。

ユーザーが構成できる設定の1つは、「Windowsの起動時にアプリを起動する」ことです。このチェックボックスがオンになっていて、ユーザーが自分の設定を保存すると、Microsoftスタートアップフォルダーにショートカットを作成して、Windowsの起動時にアプリケーションが実行されるようにします。

私は次のコードを使用してこれを行います:

My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True).SetValue(Application.ProductName, Application.ExecutablePath)
Dim startup As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup)
IO.File.Copy(Application.ExecutablePath, startup & "\ApplicationName.exe")

問題は、デスクトップまたはスタートメニューのプログラムフォルダにあるVisual Basicがインストール時に作成するショートカットを使用すると、ユーザーが定義した設定が読み込まれることです。ただし、スタートアップフォルダからのショートカットを実行すると、すべての設定がデフォルトで設定された、完全に「新しい」アプリケーションの種類が読み込まれます。

私が間違っているかもしれないことを知っている人はいますか?私はインターネットをたくさん検索し、アプリのショートカットをスタートアップフォルダーVBにコピーするなどのStackOverflowトピックも調べました(これは私には機能しませんでした)

どんな助けでも大歓迎です。さらに詳しい情報が必要な場合は、お問い合わせください。できるだけ早く調べます。

4

1 に答える 1

1

ショートカットを作成するのではなく、実行可能ファイルをスタートアップフォルダにコピーします!! このコピーされた実行可能ファイルは、その近くに構成ファイルを見つけられないため、新しいファイルを作成します。そのため、デフォルト値が表示されます。ショートカットを作成するには、プロジェクト->参照->追加...の[COM]タブから[WindowsScriptHostオブジェクトモデル]をインポートします。

Dim oShell As IWshRuntimeLibrary.WshShell
Dim oShortCut As IWshRuntimeLibrary.WshShortcut

oShell = New IWshRuntimeLibrary.WshShell
oShortCut = oShell.CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Startup) & _
                                                    "\" & GetFileName(Application.ExecutablePath) & ".lnk")
Dim s = Environment.GetFolderPath(Environment.SpecialFolder.Startup)
With oShortCut
    .TargetPath = Application.ExecutablePath
    .Arguments = ""
    .WorkingDirectory = GetDirectoryName(Application.ExecutablePath)
End With
oShortCut.Save()
oShortCut = Nothing : oShell = Nothing
于 2011-11-15T13:48:48.060 に答える