要在Windows应用程序中设置两个checkbox选项:开机自启动,启动后最小化到托盘。
因为只有一个单独的程序文件,所以考虑用注册表保存用户的设置。请问应该对注册表中的哪些项进行操作?我知道开机自启动可以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中建值,可是发现有个软件会在HKEY_USERS\S-1-5-21-xxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxx\Software\Microsoft\Windows\CurrentVersion\Run中键值。请问第二种方式中xxxx位置的数字代表什么含义,怎样获取具体的数值,这种方式与第一种方式有什么区别?

解决方案 »

  1.   

    1.写注册表
    2.设置程序的主窗口的windowstate = Minimized
      

  2.   

    最小化到托盘可以使用NotifyIcon类。
      

  3.   


    '最小化隐藏主窗体,显示到托盘
        Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
            Try
                If Me.WindowState = FormWindowState.Minimized Then
                    Me.NotifyIcon1.Visible = True
                    Me.Hide()
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message.Trim)
            End Try
        End Sub     '点托盘图标显示主窗体和菜单
        Private Sub NotifyIcon1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDown
            Try
                If e.Button = MouseButtons.Left Then    //判断下鼠标哪个键,因为右键是弹出菜单的
                    Me.Visible = True
                    Me.NotifyIcon1.Visible = False
                    Me.WindowState = FormWindowState.Normal
                    Me.Activate()
                ElseIf e.Button = MouseButtons.Right Then
                    
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message.Trim)
            End Try
        End Sub
    '开机自动启动
        Private Sub MenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem7.Click
            If MenuItem7.Checked = False Then
                Dim starupPath As String = Application.ExecutablePath
                Dim loca As RegistryKey = Registry.LocalMachine
                Dim run As RegistryKey = loca.CreateSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
                Try
                    run.SetValue("OA上网助手", starupPath)
                    MessageBox.Show("开机自动启动设置成功!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    loca.Close()
                Catch ex As Exception
                    MessageBox.Show(ex.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
                MenuItem7.Checked = True
                MenuItem8.Checked = False
            End If
        End Sub公司之前上网要开OA,后来写了个自动登陆的,最小化到托盘,有菜单,开机自动运行。随便写的,自己看下把
      

  4.   

    可以考虑用Windows Server来实现,这个东东不需要用户登陆就可以运行,而且用VS2003/05实现也很简单