自动更新

This commit is contained in:
liufei
2021-07-20 17:30:12 +08:00
parent 1c692d5fa6
commit 9f24601ff2
17 changed files with 317 additions and 102 deletions

View File

@@ -1,21 +1,23 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
</startup> </startup>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.0.6.0" newVersion="2.0.6.0" /> <bindingRedirect oldVersion="0.0.0.0-2.0.6.0" newVersion="2.0.6.0"/>
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<appSettings> <appSettings>
<add key="Version" value="1.0-beta"/> <add key="Version" value="0.1-beta"/>
<add key="GitHubUrl" value="https://github.com/Demo-Liu/GeekDesk"/> <add key="GitHubUrl" value="https://github.com/Demo-Liu/GeekDesk"/>
<add key="GiteeUrl" value="https://gitee.com/demo_liu/GeekDesk/tree/master"/> <add key="GiteeUrl" value="https://gitee.com/demo_liu/GeekDesk/tree/master"/>
<add key="GitHubUpdateUrl" value="https://github.com/Demo-Liu/GeekDesk/blob/master/Update.json"/>
<add key="GiteeUpdateUrl" value="https://gitee.com/demo_liu/GeekDesk/blob/master/Update.json"/> <add key="GitHubUpdateUrl" value="https://demo-liu.github.io/GeekDesk/Update.json"/>
<add key="GiteeUpdateUrl" value="https://demo-liu.github.io/GeekDesk/Update.json"/>
</appSettings> </appSettings>
</configuration> </configuration>

View File

@@ -1,4 +1,8 @@
using System.Windows; using Microsoft.Win32;
using System;
using System.IO;
using System.Windows;
using System.Windows.Threading;
namespace GeekDesk namespace GeekDesk
{ {
@@ -7,5 +11,138 @@ namespace GeekDesk
/// </summary> /// </summary>
public partial class App : Application public partial class App : Application
{ {
System.Threading.Mutex mutex;
private void App_Startup(object sender, StartupEventArgs e)
{
bool ret;
mutex = new System.Threading.Mutex(true, "GeekDesk", out ret);
if (!ret)
{
MessageBox.Show("已有一个客户端正在运行,请先结束原来客户端!");
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)
// {
// Exception ex = exception as Exception;
// using (FileStream fs = File.Open(".//ErrorLog.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
// {
// fs.Seek(0, SeekOrigin.End);
// byte[] buffer = Encoding.Default.GetBytes("-------------------------------------------------------\r\n");
// fs.Write(buffer, 0, buffer.Length);
// buffer = Encoding.Default.GetBytes(DateTime.Now.ToString() + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// if (ex != null)
// {
// buffer = Encoding.Default.GetBytes("成员名: " + ex.TargetSite + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// buffer = Encoding.Default.GetBytes("引发异常的类: " + ex.TargetSite.DeclaringType + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// buffer = Encoding.Default.GetBytes("异常信息: " + ex.Message + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// buffer = Encoding.Default.GetBytes("引发异常的程序集或对象: " + ex.Source + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// buffer = Encoding.Default.GetBytes("栈:" + ex.StackTrace + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// }
// else
// {
// buffer = Encoding.Default.GetBytes("应用程序错误: " + exception.ToString() + "\r\n");
// fs.Write(buffer, 0, buffer.Length);
// }
// }
//}
} }

View File

@@ -1,7 +1,6 @@
using GeekDesk.Control.Windows; using GeekDesk.Control.Windows;
using GeekDesk.Util; using GeekDesk.Util;
using GeekDesk.ViewModel; using GeekDesk.ViewModel;
using GlobalHotKey;
using HandyControl.Data; using HandyControl.Data;
using Microsoft.Win32; using Microsoft.Win32;
using System; using System;

View File

@@ -173,7 +173,7 @@ namespace GeekDesk.Control.UserControls.PannelCard
{ {
string path = (string)obj; string path = (string)obj;
string base64 = ImageUtil.FileImageToBase64(path, ImageFormat.Jpeg); //string base64 = ImageUtil.FileImageToBase64(path, ImageFormat.Jpeg);
IconInfo iconInfo = new IconInfo IconInfo iconInfo = new IconInfo
{ {

View File

@@ -1,5 +1,4 @@
 
using GalaSoft.MvvmLight.Command;
using GeekDesk.Control.UserControls; using GeekDesk.Control.UserControls;
using GeekDesk.Control.UserControls.Config; using GeekDesk.Control.UserControls.Config;
using GeekDesk.ViewModel; using GeekDesk.ViewModel;

View File

@@ -4,13 +4,41 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GeekDesk.Control.Windows" xmlns:local="clr-namespace:GeekDesk.Control.Windows"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d" mc:Ignorable="d"
Title="UpdateWindow" Height="450" Width="800" Title="UpdateWindow" Height="300" Width="450"
WindowStyle="None" WindowStyle="None"
AllowsTransparency="True" AllowsTransparency="True"
Background="Transparent" ShowInTaskbar="False"> Background="Transparent" ShowInTaskbar="False">
<Border Background="White"> <Border Background="AliceBlue" MouseDown="DragMove">
<StackPanel HorizontalAlignment="Center">
<hc:Card BorderThickness="0" Effect="{DynamicResource EffectShadow2}" Margin="20,20,20,0">
<!--Card 的内容部分-->
<Border CornerRadius="4,4,0,0" Height="160">
<StackPanel>
<TextBlock Margin="10" x:Name="MsgTitle" TextWrapping="Wrap" FontSize="16" HorizontalAlignment="Left" Style="{DynamicResource TextBlockLargeBold}" Text="测试"/>
<TextBlock Margin="15" x:Name="Msg" TextWrapping="Wrap" VerticalAlignment="Center" Text=""/>
</StackPanel>
</Border>
<!--Card 的尾部部分-->
<hc:Card.Footer>
<StackPanel Margin="10" Width="420">
<!--Card 的一级内容-->
<TextBlock TextWrapping="NoWrap" x:Name="Title" Style="{DynamicResource TextBlockLargeBold}" TextTrimming="CharacterEllipsis"
Text=""
HorizontalAlignment="Left"/>
<!--Card 的二级内容-->
<TextBlock TextWrapping="NoWrap" x:Name="SubTitle" Style="{DynamicResource TextBlockDefault}" TextTrimming="CharacterEllipsis"
Margin="0,6,0,0"
HorizontalAlignment="Left"/>
</StackPanel>
</hc:Card.Footer>
</hc:Card>
<hc:UniformSpacingPanel Spacing="100" HorizontalAlignment="Center" Margin="0,10,0,0">
<Button Content="暂不更新" Click="Close_Click" />
<Button Content="前往更新" Click="Confirm_Click" Background="#5BC0DE" Foreground="White" RenderTransformOrigin="0.696,0.45"/>
</hc:UniformSpacingPanel>
</StackPanel>
</Border> </Border>
</Window> </Window>

View File

@@ -1,5 +1,11 @@
using System; using GeekDesk.Constant;
using GeekDesk.Util;
using GeekDesk.ViewModel;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -19,9 +25,83 @@ namespace GeekDesk.Control.Windows
/// </summary> /// </summary>
public partial class UpdateWindow : Window public partial class UpdateWindow : Window
{ {
public UpdateWindow() private static AppConfig appConfig = MainWindow.appData.AppConfig;
private static string githubUrl = "";
private static string giteeUrl = "";
private UpdateWindow(JObject jo)
{ {
InitializeComponent(); try
{
WindowStartupLocation = WindowStartupLocation.CenterScreen;
InitializeComponent();
DataHandle(jo);
}
catch (Exception)
{
}
}
/// <summary>
/// 移动窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DragMove(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
DragMove();
}
}
private void DataHandle(JObject jo)
{
Title.Text = StringUtil.IsEmpty(jo["title"]) ? "" : jo["title"].ToString();
SubTitle.Text = StringUtil.IsEmpty(jo["subTitle"]) ? "" : jo["subTitle"].ToString();
MsgTitle.Text = StringUtil.IsEmpty(jo["msgTitle"]) ? "" : jo["msgTitle"].ToString();
JArray ja = JArray.Parse(StringUtil.IsEmpty(jo["msg"]) ? "[]" : jo["msg"].ToString());
githubUrl = StringUtil.IsEmpty(jo["githubUrl"]) ? ConfigurationManager.AppSettings["GitHubUrl"] : jo["githubUrl"].ToString();
giteeUrl = StringUtil.IsEmpty(jo["giteeUrl"]) ? ConfigurationManager.AppSettings["GiteeUrl"] : jo["giteeUrl"].ToString();
string msg = "";
for (int i=0; i<ja.Count; i++)
{
msg += "•" + ja[i].ToString() + "\n";
}
Msg.Text = msg;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void Confirm_Click(object sender, RoutedEventArgs e)
{
string packageUrl;
switch (appConfig.UpdateType)
{
case UpdateType.GitHub:
packageUrl = githubUrl;
break;
default:
packageUrl = giteeUrl;
break;
}
Process.Start(packageUrl);
this.Close();
}
private static System.Windows.Window window = null;
public static void Show(JObject jo)
{
if (window == null || !window.Activate())
{
window = new UpdateWindow(jo);
}
window.Show();
} }
} }
} }

View File

@@ -46,41 +46,22 @@
<PropertyGroup> <PropertyGroup>
<ApplicationIcon>Taskbar.ico</ApplicationIcon> <ApplicationIcon>Taskbar.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Apex.WinForms, Version=1.6.0.0, Culture=neutral, PublicKeyToken=98d06957926c086d, processorArchitecture=MSIL">
<HintPath>packages\SharpShellTools.2.2.0.0\lib\Apex.WinForms.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.6.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL"> <Reference Include="CommonServiceLocator, Version=2.0.6.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>packages\CommonServiceLocator.2.0.6\lib\net45\CommonServiceLocator.dll</HintPath> <HintPath>packages\CommonServiceLocator.2.0.6\lib\net45\CommonServiceLocator.dll</HintPath>
</Reference> </Reference>
<Reference Include="GalaSoft.MvvmLight, Version=5.4.1.0, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL">
<HintPath>packages\MvvmLightLibs.5.4.1.1\lib\net45\GalaSoft.MvvmLight.dll</HintPath>
</Reference>
<Reference Include="GalaSoft.MvvmLight.Extras, Version=5.4.1.0, Culture=neutral, PublicKeyToken=669f0b5e8f868abf, processorArchitecture=MSIL">
<HintPath>packages\MvvmLightLibs.5.4.1.1\lib\net45\GalaSoft.MvvmLight.Extras.dll</HintPath>
</Reference>
<Reference Include="GalaSoft.MvvmLight.Platform, Version=5.4.1.0, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL">
<HintPath>packages\MvvmLightLibs.5.4.1.1\lib\net45\GalaSoft.MvvmLight.Platform.dll</HintPath>
</Reference>
<Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath>
</Reference>
<Reference Include="HandyControl, Version=3.1.0.0, Culture=neutral, PublicKeyToken=45be8712787a1e5b, processorArchitecture=MSIL"> <Reference Include="HandyControl, Version=3.1.0.0, Culture=neutral, PublicKeyToken=45be8712787a1e5b, processorArchitecture=MSIL">
<HintPath>packages\HandyControl.3.1.0\lib\net472\HandyControl.dll</HintPath> <HintPath>packages\HandyControl.3.1.0\lib\net472\HandyControl.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="ServerManager, Version=2.2.0.0, Culture=neutral, processorArchitecture=x86">
<HintPath>packages\SharpShellTools.2.2.0.0\lib\ServerManager.exe</HintPath>
</Reference>
<Reference Include="SharpShell, Version=2.2.0.0, Culture=neutral, PublicKeyToken=f14dc899472fe6fb, processorArchitecture=MSIL">
<HintPath>packages\SharpShellTools.2.2.0.0\lib\SharpShell.dll</HintPath>
</Reference>
<Reference Include="srm, Version=2.2.0.0, Culture=neutral, PublicKeyToken=68bd4561cc3495fc, processorArchitecture=MSIL">
<HintPath>packages\SharpShellTools.2.2.0.0\lib\srm.exe</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
@@ -89,9 +70,6 @@
<HintPath>packages\System.Drawing.Common.6.0.0-preview.3.21201.4\lib\net461\System.Drawing.Common.dll</HintPath> <HintPath>packages\System.Drawing.Common.6.0.0-preview.3.21201.4\lib\net461\System.Drawing.Common.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
@@ -187,7 +165,6 @@
<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\ShellContextMenu.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" />
@@ -297,6 +274,7 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput> <LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<Resource Include="Resource\Iconfont\iconfont.json" /> <Resource Include="Resource\Iconfont\iconfont.json" />
<None Include="Properties\app.manifest" />
<None Include="Update.json" /> <None Include="Update.json" />
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">

View File

@@ -7,9 +7,7 @@ using GeekDesk.Task;
using GeekDesk.Thread; using GeekDesk.Thread;
using GeekDesk.Util; using GeekDesk.Util;
using GeekDesk.ViewModel; using GeekDesk.ViewModel;
using GlobalHotKey;
using HandyControl.Data; using HandyControl.Data;
using SharpShell.SharpContextMenu;
using System; using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Diagnostics; using System.Diagnostics;
@@ -36,7 +34,6 @@ namespace GeekDesk
public static int hotKeyId = -1; public static int hotKeyId = -1;
public static int toDoHotKeyId = -1; public static int toDoHotKeyId = -1;
public static MainWindow mainWindow; public static MainWindow mainWindow;
public HotKeyManager hkm = new HotKeyManager();
public MainWindow() public MainWindow()
{ {
LoadData(); LoadData();
@@ -46,7 +43,6 @@ namespace GeekDesk
this.Loaded += Window_Loaded; this.Loaded += Window_Loaded;
this.SizeChanged += MainWindow_Resize; this.SizeChanged += MainWindow_Resize;
ToDoTask.BackLogCheck(); ToDoTask.BackLogCheck();
UpdateThread.Update();
} }
private void LoadData() private void LoadData()
@@ -73,6 +69,8 @@ namespace GeekDesk
} }
RegisterHotKey(true); RegisterHotKey(true);
//RegisterCreateToDoHotKey(true); //RegisterCreateToDoHotKey(true);
UpdateThread.Update();
} }
/// <summary> /// <summary>
@@ -155,21 +153,21 @@ namespace GeekDesk
} }
} }
private void DisplayWindowHotKeyPress(object sender, KeyPressedEventArgs e) //private void DisplayWindowHotKeyPress(object sender, KeyPressedEventArgs e)
{ //{
if (e.HotKey.Key == Key.Y) // if (e.HotKey.Key == Key.Y)
{ // {
if (this.Visibility == Visibility.Collapsed) // if (this.Visibility == Visibility.Collapsed)
{ // {
ShowApp(); // ShowApp();
} // }
else // else
{ // {
this.Visibility = Visibility.Collapsed; // this.Visibility = Visibility.Collapsed;
} // }
} // }
} //}
void MainWindow_Resize(object sender, System.EventArgs e) void MainWindow_Resize(object sender, System.EventArgs e)

11
Properties/app.manifest Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
</asmv1:assembly>

View File

@@ -1,4 +1,5 @@
using GeekDesk.Constant; using GeekDesk.Constant;
using GeekDesk.Control.Windows;
using GeekDesk.Util; using GeekDesk.Util;
using GeekDesk.ViewModel; using GeekDesk.ViewModel;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@@ -9,6 +10,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows;
namespace GeekDesk.Thread namespace GeekDesk.Thread
{ {
@@ -46,15 +48,17 @@ namespace GeekDesk.Thread
string onlineVersion = jo["version"].ToString(); string onlineVersion = jo["version"].ToString();
if (onlineVersion.CompareTo(nowVersion) > 0) if (onlineVersion.CompareTo(nowVersion) > 0)
{ {
//检测到版本更新 App.Current.Dispatcher.Invoke((Action)(() =>
{
//检测到版本更新
UpdateWindow.Show(jo);
}));
} }
} }
} catch (Exception) } catch (Exception e)
{ {
MessageBox.Show(e.Message);
} }
} }
} }
} }

View File

@@ -1,5 +1,9 @@
{ {
"version" : "1.0-beta", "title" : "",
"msg" : "", "subTitle" : "",
"log" : "" "msgTitle" : "",
"msg" : [],
"githubUrl" : "",
"giteeUrl" : "",
"version": ""
} }

View File

@@ -47,7 +47,7 @@ namespace GeekDesk.Util
public static IntPtr GetJumboIcon(int iImage) public static IntPtr GetJumboIcon(int iImage)
{ {
IImageList spiml = null; IImageList spiml = null;
Guid guil = new Guid(IID_IImageList2);//or IID_IImageList Guid guil = new Guid(IID_IImageList);//or IID_IImageList
Shell32.SHGetImageList(Shell32.SHIL_JUMBO, ref guil, ref spiml); Shell32.SHGetImageList(Shell32.SHIL_JUMBO, ref guil, ref spiml);
IntPtr hIcon = IntPtr.Zero; IntPtr hIcon = IntPtr.Zero;

View File

@@ -13,6 +13,8 @@ namespace GeekDesk.Util
#region Get请求 #region Get请求
public static string Get(string url) public static string Get(string url)
{ {
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
//创建Web访问对 象 //创建Web访问对 象
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
//通过Web访问对象获取响应内容 //通过Web访问对象获取响应内容

View File

@@ -1,23 +0,0 @@
using SharpShell.SharpContextMenu;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GeekDesk.Util
{
class ShellContextMenu : SharpContextMenu
{
protected override bool CanShowMenu()
{
throw new NotImplementedException();
}
protected override ContextMenuStrip CreateMenu()
{
throw new NotImplementedException();
}
}
}

View File

@@ -10,9 +10,9 @@ namespace GeekDesk.Util
{ {
public static bool IsEmpty(string str) public static bool IsEmpty(object str)
{ {
if (str == null || str.Length == 0 || str.Trim().Length == 0) if (str == null || str.ToString().Length == 0 || str.ToString().Trim().Length == 0)
{ {
return true; return true;
} }

View File

@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="CommonServiceLocator" version="2.0.6" targetFramework="net452" requireReinstallation="true" /> <package id="CommonServiceLocator" version="2.0.6" targetFramework="net452" requireReinstallation="true" />
<package id="GlobalHotKey" version="1.1.0" targetFramework="net472" />
<package id="HandyControl" version="3.1.0" targetFramework="net472" /> <package id="HandyControl" version="3.1.0" targetFramework="net472" />
<package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" /> <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
<package id="SharpShell" version="2.7.2" targetFramework="net472" />
<package id="SharpShellTools" version="2.2.0.0" targetFramework="net472" />
<package id="System.Drawing.Common" version="6.0.0-preview.3.21201.4" targetFramework="net472" /> <package id="System.Drawing.Common" version="6.0.0-preview.3.21201.4" targetFramework="net472" />
</packages> </packages>