添加开机自启动

This commit is contained in:
liufei
2021-07-21 11:15:51 +08:00
parent 7bab664283
commit 81f3ad0fdc
12 changed files with 251 additions and 88 deletions

View File

@@ -1,4 +1,5 @@
using Microsoft.Win32; using GeekDesk.Constant;
using Microsoft.Win32;
using System; using System;
using System.IO; using System.IO;
using System.Windows; using System.Windows;
@@ -23,96 +24,17 @@ namespace GeekDesk
{ {
bool ret; bool ret;
mutex = new System.Threading.Mutex(true, "GeekDesk", out ret); mutex = new System.Threading.Mutex(true, Constants.MY_NAME, out ret);
if (!ret) if (!ret)
{ {
Environment.Exit(0); Environment.Exit(0);
} }
#region (+)
try
{
//SetSelfStarting(true, "GeekDesk.exe");
}
catch (Exception ex)
{
}
#endregion
} }
#region
/// <summary>
/// 开机自动启动
/// </summary>
/// <param name="started">设置开机启动,或取消开机启动</param>
/// <param name="exeName">注册表中的名称</param>
/// <returns>开启或停用是否成功</returns>
public bool SetSelfStarting(bool started, string exeName)
{
RegistryKey key = null;
try
{
string exeDir = System.Windows.Forms.Application.ExecutablePath;
//RegistryKey HKLM = Registry.CurrentUser;
//key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
if (key == null)//如果该项不存在的话,则创建该子项
{
key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
if (started)
{
try
{
object ob = key.GetValue(exeName, -1);
if (!ob.ToString().Equals(exeDir))
{
if (!ob.ToString().Equals("-1"))
{
key.DeleteValue(exeName);//取消开机启动
}
key.SetValue(exeName, exeDir);//设置为开机启动
}
key.Close();
}
catch (Exception ex)
{
return false;
}
}
else
{
try
{
key.DeleteValue(exeName);//取消开机启动
key.Close();
}
catch (Exception ex)
{
return false;
}
}
return true;
}
catch (Exception ex)
{
if (key != null)
{
key.Close();
}
return false;
}
}
#endregion
} }
// private void WriteLog(object exception) // private void WriteLog(object exception)
// { // {
// Exception ex = exception as Exception; // Exception ex = exception as Exception;

View File

@@ -9,6 +9,9 @@ namespace GeekDesk.Constant
public class Constants public class Constants
{ {
public static string APP_DIR = AppDomain.CurrentDomain.BaseDirectory.Trim(); public static string APP_DIR = AppDomain.CurrentDomain.BaseDirectory.Trim();
public static string MY_NAME = "GeekDesk";
/// <summary> /// <summary>
/// app数据文件路径 /// app数据文件路径
/// </summary> /// </summary>

View File

@@ -25,7 +25,7 @@
Command="hc:ControlCommands.OpenLink" Command="hc:ControlCommands.OpenLink"
CommandParameter="https://github.com/Demo-Liu/GeekDesk" CommandParameter="https://github.com/Demo-Liu/GeekDesk"
Margin="0,0,10,0" Color="#24292F"/> Margin="0,0,10,0" Color="#24292F"/>
<hc:Shield Subject="码云" Status="Demo-liu" <hc:Shield Subject="Gitee" Status="Demo-liu"
Command="hc:ControlCommands.OpenLink" Command="hc:ControlCommands.OpenLink"
CommandParameter="" CommandParameter=""
Margin="0,5,10,0" Color="#C71D23"/> Margin="0,5,10,0" Color="#C71D23"/>
@@ -63,7 +63,7 @@
</hc:UniformSpacingPanel> </hc:UniformSpacingPanel>
<TextBlock Margin="0,20,0,0" FontSize="13" Width="200" TextAlignment="Center" Text="这是个人开发的程序,所有人可任意修改和免费使用(商用请联系作者)" TextWrapping="Wrap"/> <TextBlock Margin="0,20,0,0" FontSize="13" Width="200" TextAlignment="Center" Text="这是个人开发的程序,所有人可任意修改和免费使用(商用请联系作者)" TextWrapping="Wrap"/>
<hc:UniformSpacingPanel Spacing="10" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10,0,0"> <!--<hc:UniformSpacingPanel Spacing="10" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10,0,0">
<TextBlock Text="更新源:" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="更新源:" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<RadioButton Margin="10,0,0,0" Background="{DynamicResource SecondaryRegionBrush}" <RadioButton Margin="10,0,0,0" Background="{DynamicResource SecondaryRegionBrush}"
Style="{StaticResource RadioButtonIcon}" Content="Gitee" Style="{StaticResource RadioButtonIcon}" Content="Gitee"
@@ -71,7 +71,7 @@
<RadioButton Margin="10,0,0,0" Background="{DynamicResource SecondaryRegionBrush}" <RadioButton Margin="10,0,0,0" Background="{DynamicResource SecondaryRegionBrush}"
Style="{StaticResource RadioButtonIcon}" Content="GitHub" Style="{StaticResource RadioButtonIcon}" Content="GitHub"
IsChecked="{Binding UpdateType, Mode=TwoWay, Converter={StaticResource UpdateTypeConvert}, ConverterParameter=2}"/> IsChecked="{Binding UpdateType, Mode=TwoWay, Converter={StaticResource UpdateTypeConvert}, ConverterParameter=2}"/>
</hc:UniformSpacingPanel> </hc:UniformSpacingPanel>-->
</StackPanel> </StackPanel>
</hc:SimplePanel> </hc:SimplePanel>

View File

@@ -0,0 +1,45 @@
<UserControl x:Class="GeekDesk.Control.UserControls.Config.OtherControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:cvt="clr-namespace:GeekDesk.Converts"
xmlns:local="clr-namespace:GeekDesk.Control.UserControls.PannelCard"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d"
Background="AliceBlue"
d:DesignHeight="400" d:DesignWidth="500"
>
<UserControl.Resources>
<cvt:UpdateTypeConvert x:Key="UpdateTypeConvert"/>
</UserControl.Resources>
<hc:SimplePanel Margin="20">
<StackPanel >
<TextBlock Text="程序设置" />
<hc:UniformSpacingPanel Spacing="10" Margin="20,5,0,0">
<CheckBox x:Name="SelfStartUpBox" Content="开机自启动" IsChecked="{Binding SelfStartUp}" Click="SelfStartUpBox_Click">
<CheckBox.Background>
<LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
<GradientStop Color="#FF9EA3A6"/>
</LinearGradientBrush>
</CheckBox.Background>
</CheckBox>
</hc:UniformSpacingPanel>
<TextBlock Text="更新源" Margin="0,20,0,0"/>
<hc:UniformSpacingPanel Spacing="10" Margin="20,5,0,0">
<RadioButton Margin="10,0,0,0" Background="{DynamicResource SecondaryRegionBrush}"
Style="{StaticResource RadioButtonIcon}" Content="Gitee"
hc:IconElement.Geometry="{StaticResource Gitee}"
Foreground="#B32225"
IsChecked="{Binding UpdateType, Mode=TwoWay, Converter={StaticResource UpdateTypeConvert}, ConverterParameter=1}"/>
<RadioButton Margin="10,0,0,0" Background="{DynamicResource SecondaryRegionBrush}"
hc:IconElement.Geometry="{StaticResource GitHub}"
Style="{StaticResource RadioButtonIcon}" Content="GitHub"
Foreground="Black"
IsChecked="{Binding UpdateType, Mode=TwoWay, Converter={StaticResource UpdateTypeConvert}, ConverterParameter=2}"/>
</hc:UniformSpacingPanel>
</StackPanel>
</hc:SimplePanel>
</UserControl>

View File

@@ -0,0 +1,37 @@
using GeekDesk.Constant;
using GeekDesk.Util;
using GeekDesk.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace GeekDesk.Control.UserControls.Config
{
/// <summary>
/// OtherControl.xaml 的交互逻辑
/// </summary>
public partial class OtherControl : UserControl
{
public OtherControl()
{
InitializeComponent();
}
private void SelfStartUpBox_Click(object sender, RoutedEventArgs e)
{
AppConfig appConfig = MainWindow.appData.AppConfig;
RegisterUtil.SetSelfStarting(appConfig.SelfStartUp, Constants.MY_NAME);
}
}
}

View File

@@ -103,6 +103,21 @@
/> />
</hc:SideMenuItem.Icon> </hc:SideMenuItem.Icon>
</hc:SideMenuItem> </hc:SideMenuItem>
<hc:SideMenuItem Header="其它"
Tag="Other"
Selected="MemuClick">
<hc:SideMenuItem.Icon>
<Button Background="Transparent"
IsEnabled="False"
Opacity="1"
BorderThickness="0"
hc:IconElement.Geometry="{StaticResource Other}"
hc:IconElement.Height="18"
hc:IconElement.Width="18"
HorizontalAlignment="Right"
/>
</hc:SideMenuItem.Icon>
</hc:SideMenuItem>
</hc:SideMenu> </hc:SideMenu>
</hc:Card> </hc:Card>
<hc:ScrollViewer Grid.Row="0" Grid.Column="1"> <hc:ScrollViewer Grid.Row="0" Grid.Column="1">

View File

@@ -18,6 +18,7 @@ namespace GeekDesk.Control.Windows
private static AboutControl about = new AboutControl(); private static AboutControl about = new AboutControl();
private static ThemeControl theme = new ThemeControl(); private static ThemeControl theme = new ThemeControl();
private static MotionControl motion = new MotionControl(); private static MotionControl motion = new MotionControl();
private static OtherControl other = new OtherControl();
public MainWindow mainWindow; public MainWindow mainWindow;
private ConfigWindow(AppConfig appConfig, MainWindow mainWindow) private ConfigWindow(AppConfig appConfig, MainWindow mainWindow)
@@ -64,6 +65,9 @@ namespace GeekDesk.Control.Windows
case "Theme": case "Theme":
RightCard.Content = theme; RightCard.Content = theme;
break; break;
case "Other":
RightCard.Content = other;
break;
default: default:
RightCard.Content = about; RightCard.Content = about;
break; break;

View File

@@ -102,6 +102,9 @@
<Compile Include="Control\Other\CustomIconUrlDialog.xaml.cs"> <Compile Include="Control\Other\CustomIconUrlDialog.xaml.cs">
<DependentUpon>CustomIconUrlDialog.xaml</DependentUpon> <DependentUpon>CustomIconUrlDialog.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Control\UserControls\Config\OtherControl.xaml.cs">
<DependentUpon>OtherControl.xaml</DependentUpon>
</Compile>
<Compile Include="Control\UserControls\ToDo\TodoControl.xaml.cs"> <Compile Include="Control\UserControls\ToDo\TodoControl.xaml.cs">
<DependentUpon>TodoControl.xaml</DependentUpon> <DependentUpon>TodoControl.xaml</DependentUpon>
</Compile> </Compile>
@@ -165,6 +168,7 @@
<Compile Include="Converts\MenuWidthConvert.cs" /> <Compile Include="Converts\MenuWidthConvert.cs" />
<Compile Include="Util\MouseUtil.cs" /> <Compile Include="Util\MouseUtil.cs" />
<Compile Include="Util\MouseUtilities.cs" /> <Compile Include="Util\MouseUtilities.cs" />
<Compile Include="Util\RegisterUtil.cs" />
<Compile Include="Util\StringUtil.cs" /> <Compile Include="Util\StringUtil.cs" />
<Compile Include="Util\SvgToGeometry.cs" /> <Compile Include="Util\SvgToGeometry.cs" />
<Compile Include="Util\SystemIcon.cs" /> <Compile Include="Util\SystemIcon.cs" />
@@ -182,6 +186,10 @@
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="Control\UserControls\Config\OtherControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Control\UserControls\ToDo\TodoControl.xaml"> <Page Include="Control\UserControls\ToDo\TodoControl.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>

View File

@@ -69,6 +69,11 @@ namespace GeekDesk
} }
RegisterHotKey(true); RegisterHotKey(true);
//RegisterCreateToDoHotKey(true); //RegisterCreateToDoHotKey(true);
if (!appData.AppConfig.SelfStartUped)
{
RegisterUtil.SetSelfStarting(appData.AppConfig.SelfStartUp, Constants.MY_NAME);
}
UpdateThread.Update(); UpdateThread.Update();
} }

View File

@@ -33,5 +33,17 @@
M760.844227 482.947384l227.272092-215.929406a116.216042 116.216042 0 0 0 0-164.329483l-56.713429-56.713429a116.216042 116.216042 0 0 0-162.144622-2.068645l-221.995883 210.792657-215.673731-230.363439-1.766484-1.836213A75.958805 75.958805 0 0 0 222.392061 22.057805L60.526358 183.923508a75.912319 75.912319 0 0 0-1.30162 105.593896l212.442925 226.946687-200.867807 190.803497a116.216042 116.216042 0 0 0-33.098329 57.73613L3.7432 909.971609a76.888533 76.888533 0 0 0 96.529044 91.276079l139.738169-41.163722a116.843609 116.843609 0 0 0 47.2302-27.217797l198.032135-188.153772 238.521805 254.838537 1.766484 1.836213a75.958805 75.958805 0 0 0 107.430109 0.441621l161.865703-161.865703a75.912319 75.912319 0 0 0 1.30162-105.593896zM283.475213 833.129562L177.90456 727.558909a36.886972 36.886972 0 0 0-11.482145-7.600529L690.74271 221.833181l110.428483 110.428483a34.399948 34.399948 0 0 0 5.578371 3.718913z m537.452708-734.95025a41.233452 41.233452 0 0 1 57.550184 0.743783l56.713428 56.713428a41.419397 41.419397 0 0 1-0.743783 59.03775l-75.610156 71.658811a35.492379 35.492379 0 0 0-4.648642-7.158908l-109.196593-109.057134zM247.169321 380.630781a37.189133 37.189133 0 0 0 25.892934-10.877822l56.225322-56.225321a37.491295 37.491295 0 0 0-52.994516-52.994515l-56.225321 56.225321a37.189133 37.189133 0 0 0-10.459443 23.731316l-95.62256-102.270117c-0.604323-0.604323-0.604323-1.208647-0.418378-1.348106l161.865704-161.91219c0.139459-0.139459 0.790269-0.139459 1.464322 0.488107l215.999136 230.758573-166.862994 158.518682zM79.074438 929.309958a1.8827 1.8827 0 0 1-2.324321-2.324321l33.958328-144.96789a41.558857 41.558857 0 0 1 6.22918-13.457818 37.189133 37.189133 0 0 0 7.902691 11.877279l103.432277 103.432278a41.070749 41.070749 0 0 1-9.297283 4.160534l-139.784656 41.186965z m700.922193 19.524295c-0.139459 0.139459-0.790269 0.139459-1.464322-0.488107l-147.12951-157.170575a36.58481 36.58481 0 0 0 16.502678-9.041608l56.225321-56.225322a37.491295 37.491295 0 1 0-52.994515-52.994515l-56.225321 56.225321a37.189133 37.189133 0 0 0-8.553501 13.945925l-46.742092-49.972898L706.478362 534.593793 941.443956 785.620444c0.557837 0.604323 0.557837 1.208647 0.418378 1.348106l-161.819217 161.865703z M760.844227 482.947384l227.272092-215.929406a116.216042 116.216042 0 0 0 0-164.329483l-56.713429-56.713429a116.216042 116.216042 0 0 0-162.144622-2.068645l-221.995883 210.792657-215.673731-230.363439-1.766484-1.836213A75.958805 75.958805 0 0 0 222.392061 22.057805L60.526358 183.923508a75.912319 75.912319 0 0 0-1.30162 105.593896l212.442925 226.946687-200.867807 190.803497a116.216042 116.216042 0 0 0-33.098329 57.73613L3.7432 909.971609a76.888533 76.888533 0 0 0 96.529044 91.276079l139.738169-41.163722a116.843609 116.843609 0 0 0 47.2302-27.217797l198.032135-188.153772 238.521805 254.838537 1.766484 1.836213a75.958805 75.958805 0 0 0 107.430109 0.441621l161.865703-161.865703a75.912319 75.912319 0 0 0 1.30162-105.593896zM283.475213 833.129562L177.90456 727.558909a36.886972 36.886972 0 0 0-11.482145-7.600529L690.74271 221.833181l110.428483 110.428483a34.399948 34.399948 0 0 0 5.578371 3.718913z m537.452708-734.95025a41.233452 41.233452 0 0 1 57.550184 0.743783l56.713428 56.713428a41.419397 41.419397 0 0 1-0.743783 59.03775l-75.610156 71.658811a35.492379 35.492379 0 0 0-4.648642-7.158908l-109.196593-109.057134zM247.169321 380.630781a37.189133 37.189133 0 0 0 25.892934-10.877822l56.225322-56.225321a37.491295 37.491295 0 0 0-52.994516-52.994515l-56.225321 56.225321a37.189133 37.189133 0 0 0-10.459443 23.731316l-95.62256-102.270117c-0.604323-0.604323-0.604323-1.208647-0.418378-1.348106l161.865704-161.91219c0.139459-0.139459 0.790269-0.139459 1.464322 0.488107l215.999136 230.758573-166.862994 158.518682zM79.074438 929.309958a1.8827 1.8827 0 0 1-2.324321-2.324321l33.958328-144.96789a41.558857 41.558857 0 0 1 6.22918-13.457818 37.189133 37.189133 0 0 0 7.902691 11.877279l103.432277 103.432278a41.070749 41.070749 0 0 1-9.297283 4.160534l-139.784656 41.186965z m700.922193 19.524295c-0.139459 0.139459-0.790269 0.139459-1.464322-0.488107l-147.12951-157.170575a36.58481 36.58481 0 0 0 16.502678-9.041608l56.225321-56.225322a37.491295 37.491295 0 1 0-52.994515-52.994515l-56.225321 56.225321a37.189133 37.189133 0 0 0-8.553501 13.945925l-46.742092-49.972898L706.478362 534.593793 941.443956 785.620444c0.557837 0.604323 0.557837 1.208647 0.418378 1.348106l-161.819217 161.865703z
</Geometry> </Geometry>
<Geometry x:Key="Other">
M512 0c282.775704 0 512 229.224296 512 512S794.775704 1024 512 1024 0 794.775704 0 512 229.224296 0 512 0zM303.407407 455.111111a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z m208.592593 0a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z m208.592593 0a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z
</Geometry>
<Geometry x:Key="Gitee">
M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z m284.8 313.6c0 12.8-12.8 25.6-25.6 25.6H416c-41.6 0-76.8 35.2-76.8 76.8v243.2c0 12.8 12.8 25.6 25.6 25.6h240c41.6 0 76.8-35.2 76.8-76.8v-12.8c0-12.8-12.8-25.6-25.6-25.6H480c-12.8 0-25.6-12.8-25.6-25.6v-64c0-12.8 12.8-25.6 25.6-25.6h291.2c12.8 0 25.6 12.8 25.6 25.6v144c0 92.8-76.8 169.6-169.6 169.6H252.8c-12.8 0-25.6-12.8-25.6-25.6V412.8C227.2 310.4 310.4 224 416 224h355.2c12.8 0 25.6 12.8 25.6 25.6v64z
</Geometry>
<Geometry x:Key="GitHub">
M1021.72444445 512a495.16088889 495.16088889 0 0 1-97.57582223 299.64515555 500.62222222 500.62222222 0 0 1-250.85724444 184.22897778 30.58346667 30.58346667 0 0 1-26.2144-4.73315555 25.85031111 25.85031111 0 0 1-8.00995556-20.02488889v-139.81013334a119.05706667 119.05706667 0 0 0-34.58844444-94.29902222 473.31555555 473.31555555 0 0 0 67.72053333-11.65084444 248.30862222 248.30862222 0 0 0 62.2592-26.2144 187.50577778 187.50577778 0 0 0 53.52106667-43.69066667 209.35111111 209.35111111 0 0 0 36.40888889-69.90506667 334.2336 334.2336 0 0 0 13.83537778-100.12444444 191.87484445 191.87484445 0 0 0-52.7928889-136.53333333 176.21902222 176.21902222 0 0 0-5.09724444-135.44106667 87.01724445 87.01724445 0 0 0-53.52106666 7.28177778 341.87946667 341.87946667 0 0 0-61.16693334 29.12711111l-25.12213333 15.65582222a473.31555555 473.31555555 0 0 0-254.86222223 0c-7.28177778-5.09724445-16.384-10.55857778-28.03484444-17.84035555A371.00657778 371.00657778 0 0 0 300.82844445 220.72888889a94.29902222 94.29902222 0 0 0-57.16195556-9.10222222 178.40355555 178.40355555 0 0 0-4.73315556 136.53333333 197.70026667 197.70026667 0 0 0-52.4288 137.26151111A327.68 327.68 0 0 0 200.33991111 584.81777778a223.55057778 223.55057778 0 0 0 36.40888889 69.90506667 172.94222222 172.94222222 0 0 0 53.52106667 44.41884444 304.7424 304.7424 0 0 0 62.2592 26.2144 471.13102222 471.13102222 0 0 0 68.08462222 11.65084444 105.22168889 105.22168889 0 0 0-32.768 68.44871112 112.86755555 112.86755555 0 0 1-30.21937778 9.4663111 190.41848889 190.41848889 0 0 1-36.40888889 3.2768A78.6432 78.6432 0 0 1 274.61404445 803.27111111a124.5184 124.5184 0 0 1-36.4088889-41.50613333 109.22666667 109.22666667 0 0 0-32.03982222-34.58844445 91.7504 91.7504 0 0 0-32.768-16.01991111h-13.1072a47.33155555 47.33155555 0 0 0-19.29671111 2.91271111q-5.46133333 3.2768-3.2768 7.64586667a50.24426667 50.24426667 0 0 0 6.18951111 9.10222222 62.98737778 62.98737778 0 0 0 8.73813334 8.37404445l4.73315555 2.91271111a88.83768889 88.83768889 0 0 1 29.12711111 25.12213333 179.49582222 179.49582222 0 0 1 20.75306667 33.49617778l6.5536 15.29173333a82.28408889 82.28408889 0 0 0 29.12711111 41.14204445 109.22666667 109.22666667 0 0 0 44.05475556 18.93262222 223.18648889 223.18648889 0 0 0 45.8752 4.73315556 207.16657778 207.16657778 0 0 0 36.40888888-2.54862223l15.29173334-2.54862222v95.39128889a26.2144 26.2144 0 0 1-8.73813334 20.02488889 31.67573333 31.67573333 0 0 1-26.57848888 4.73315555 498.43768889 498.43768889 0 0 1-249.40088889-185.32124444A486.78684445 486.78684445 0 0 1 2.27555555 512a497.70951111 497.70951111 0 0 1 68.44871112-254.86222222A504.6272 504.6272 0 0 1 257.13777778 70.72426667 497.70951111 497.70951111 0 0 1 512 2.27555555a497.70951111 497.70951111 0 0 1 254.86222222 68.44871112A504.6272 504.6272 0 0 1 953.27573333 257.13777778 496.98133333 496.98133333 0 0 1 1021.72444445 512z
</Geometry>
</ResourceDictionary> </ResourceDictionary>

82
Util/RegisterUtil.cs Normal file
View File

@@ -0,0 +1,82 @@
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GeekDesk.Util
{
class RegisterUtil
{
#region
/// <summary>
/// 开机自动启动
/// </summary>
/// <param name="started">设置开机启动,或取消开机启动</param>
/// <param name="exeName">注册表中的名称</param>
/// <returns>开启或停用是否成功</returns>
public static bool SetSelfStarting(bool started, string exeName)
{
RegistryKey key = null;
try
{
string exeDir = System.Windows.Forms.Application.ExecutablePath;
//RegistryKey HKLM = Registry.CurrentUser;
//key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
if (key == null)//如果该项不存在的话,则创建该子项
{
key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
if (started)
{
try
{
object ob = key.GetValue(exeName, -1);
if (!ob.ToString().Equals(exeDir))
{
if (!ob.ToString().Equals("-1"))
{
key.DeleteValue(exeName);//取消开机启动
}
key.SetValue(exeName, exeDir);//设置为开机启动
}
key.Close();
}
catch (Exception ex)
{
return false;
}
}
else
{
try
{
key.DeleteValue(exeName);//取消开机启动
key.Close();
}
catch (Exception ex)
{
return false;
}
}
return true;
}
catch (Exception ex)
{
if (key != null)
{
key.Close();
}
return false;
}
}
#endregion
}
}

View File

@@ -54,9 +54,39 @@ namespace GeekDesk.ViewModel
private UpdateType updateType = UpdateType.Gitee; //更新源 默认gitee源 private UpdateType updateType = UpdateType.Gitee; //更新源 默认gitee源
private bool selfStartUp = true; //开机自启动设置
private bool selfStartUped = false; //是否已设置
#region GetSet #region GetSet
public bool SelfStartUped
{
get
{
return selfStartUped;
}
set
{
selfStartUped = value;
OnPropertyChanged("SelfStartUped");
}
}
public bool SelfStartUp
{
get
{
return selfStartUp;
}
set
{
selfStartUp = value;
selfStartUped = true;
OnPropertyChanged("SelfStartUp");
}
}
public Key ToDoHotkey public Key ToDoHotkey
{ {
get get