Skip to content

Commit

Permalink
去掉注释代码
Browse files Browse the repository at this point in the history
  • Loading branch information
silentmoooon committed Apr 14, 2020
1 parent 60f65c5 commit 3e41b5b
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 110 deletions.
190 changes: 95 additions & 95 deletions service/ClipService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ public ClipService(Config config)
/// </summary>
/// <param name="result"></param>
public void SetValueToClipboard(ClipModel result)
{

{

if (result.Type == WECHAT_TYPE)
{
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(result.ClipValue));
Expand All @@ -70,49 +70,49 @@ public void SetValueToClipboard(ClipModel result)

}
else if (result.Type == IMAGE_TYPE)
{

byte[] fileBytes = Convert.FromBase64String(result.ClipValue);
MemoryStream ms = new MemoryStream(fileBytes);
BitmapImage bitImg = new BitmapImage();
bitImg.BeginInit();
bitImg.StreamSource = ms;
bitImg.EndInit();

if (File.Exists(result.DisplayValue))
{
var dataObject = new DataObject();
dataObject.SetData(DataFormats.Bitmap, bitImg);
MemoryStream memo = new MemoryStream(4);
byte[] bytes = new byte[] { (byte)(5), 0, 0, 0 };
memo.Write(bytes, 0, bytes.Length);
dataObject.SetData(DataFormats.FileDrop, new string[] { result.DisplayValue });
Clipboard.SetDataObject(dataObject, true);
}
else
{
string ext = Path.GetExtension(result.DisplayValue).ToLower();

string savePath = Path.GetTempPath() + Guid.NewGuid().ToString() + ext;
//savePath= @"C:\users\xiecan\desktop\" + Guid.NewGuid().ToString() + ext;
File.WriteAllBytes(savePath, fileBytes);


var dataObject = new DataObject();
dataObject.SetData(DataFormats.Bitmap, bitImg);
dataObject.SetData(DataFormats.FileDrop, new string[] { savePath });
MemoryStream memo = new MemoryStream(4);
byte[] bytes = new byte[] { (byte)(5), 0, 0, 0 };
memo.Write(bytes, 0, bytes.Length);

dataObject.SetData("Preferred DropEffect", memo);
Clipboard.SetDataObject(dataObject, true);
}





{

byte[] fileBytes = Convert.FromBase64String(result.ClipValue);
MemoryStream ms = new MemoryStream(fileBytes);
BitmapImage bitImg = new BitmapImage();
bitImg.BeginInit();
bitImg.StreamSource = ms;
bitImg.EndInit();

if (File.Exists(result.DisplayValue))
{
var dataObject = new DataObject();
dataObject.SetData(DataFormats.Bitmap, bitImg);
MemoryStream memo = new MemoryStream(4);
byte[] bytes = new byte[] { (byte)(5), 0, 0, 0 };
memo.Write(bytes, 0, bytes.Length);
dataObject.SetData(DataFormats.FileDrop, new string[] { result.DisplayValue });
Clipboard.SetDataObject(dataObject, true);
}
else
{
string ext = Path.GetExtension(result.DisplayValue).ToLower();

string savePath = Path.GetTempPath() + Guid.NewGuid().ToString() + ext;
//savePath= @"C:\users\xiecan\desktop\" + Guid.NewGuid().ToString() + ext;
File.WriteAllBytes(savePath, fileBytes);


var dataObject = new DataObject();
dataObject.SetData(DataFormats.Bitmap, bitImg);
dataObject.SetData(DataFormats.FileDrop, new string[] { savePath });
MemoryStream memo = new MemoryStream(4);
byte[] bytes = new byte[] { (byte)(5), 0, 0, 0 };
memo.Write(bytes, 0, bytes.Length);

dataObject.SetData("Preferred DropEffect", memo);
Clipboard.SetDataObject(dataObject, true);
}





}
else if (result.Type == HTML_TYPE)
{
Expand Down Expand Up @@ -155,11 +155,11 @@ public void SetValueToClipboard(ClipModel result)
else
{

IDataObject data = new DataObject(DataFormats.Text, result.ClipValue);

// Clipboard.SetDataObject(data, true);

//当有其他进程占用剪切板时,WPF的Clipboard会有BUG,winform的没有,所以暂时用winform的
IDataObject data = new DataObject(DataFormats.Text, result.ClipValue);

// Clipboard.SetDataObject(data, true);

//当有其他进程占用剪切板时,WPF的Clipboard会有BUG,winform的没有,所以暂时用winform的
System.Windows.Forms.Clipboard.SetDataObject(data, true);


Expand Down Expand Up @@ -340,15 +340,15 @@ public void HandleHtml(ClipModel clip)

string htmlStr = Clipboard.GetData(DataFormats.Html).ToString().Replace("&amp;", "&");

string plainText = Clipboard.GetText();


//只有当html内容中有图片才当作html格式处理,否则做文本处理
string plainText = Clipboard.GetText();


//只有当html内容中有图片才当作html格式处理,否则做文本处理
if (GetOccurTimes(htmlStr.ToLower(), "<img") > GetOccurTimes(plainText.ToLower(), "<img"))
{

clip.ClipValue = htmlStr;

clip.ClipValue = htmlStr;

string startTag = "<!--StartFragment-->";
string endTag = "<!--EndFragment-->";
//QQ上的多了个空格
Expand Down Expand Up @@ -383,30 +383,30 @@ public void HandleHtml(ClipModel clip)
/// </summary>
/// <param name="clip"></param>
public void HandleImage(ClipModel clip)
{

{

string[] files = (string[])Clipboard.GetData(DataFormats.FileDrop);
string base64;
if (files != null && files.Length > 0 && File.Exists(files[0]))
{
base64 = Convert.ToBase64String(File.ReadAllBytes(files[0]));
clip.DisplayValue = files[0];
}
else
{
BitmapSource bs = Clipboard.GetImage();
JpegBitmapEncoder jpegEncoder = new JpegBitmapEncoder();
jpegEncoder.Frames.Add(BitmapFrame.Create(bs));
MemoryStream ms = new MemoryStream();
jpegEncoder.Save(ms);
base64 = Convert.ToBase64String(ms.GetBuffer());
string base64;
if (files != null && files.Length > 0 && File.Exists(files[0]))
{
base64 = Convert.ToBase64String(File.ReadAllBytes(files[0]));
clip.DisplayValue = files[0];
}
else
{
BitmapSource bs = Clipboard.GetImage();
JpegBitmapEncoder jpegEncoder = new JpegBitmapEncoder();
jpegEncoder.Frames.Add(BitmapFrame.Create(bs));
MemoryStream ms = new MemoryStream();
jpegEncoder.Save(ms);
base64 = Convert.ToBase64String(ms.GetBuffer());
}
clip.Type = IMAGE_TYPE;

clip.ClipValue = base64;



clip.Type = IMAGE_TYPE;

clip.ClipValue = base64;



}

/// <summary>
Expand Down Expand Up @@ -469,30 +469,30 @@ public void HandleQQ(ClipModel clip)
clip.PlainText = plainText;
byte[] b = stream.ToArray();
string xmlStr = Encoding.UTF8.GetString(b);
xmlStr = xmlStr.Substring(0, xmlStr.IndexOf("</QQRichEditFormat>") + "</QQRichEditFormat>".Length);




xmlStr = xmlStr.Substring(0, xmlStr.IndexOf("</QQRichEditFormat>") + "</QQRichEditFormat>".Length);




XmlDocument document = new XmlDocument();
document.LoadXml(xmlStr);
XmlNodeList nodeList = document.SelectNodes("QQRichEditFormat/EditElement[@type='1']|QQRichEditFormat/EditElement[@type='2']|QQRichEditFormat/EditElement[@type='5']");

//如果只有一个图片且没有文字,则按图片处理
XmlNodeList nodeList = document.SelectNodes("QQRichEditFormat/EditElement[@type='1']|QQRichEditFormat/EditElement[@type='2']|QQRichEditFormat/EditElement[@type='5']");

//如果只有一个图片且没有文字,则按图片处理
if (GetOccurTimes(xmlStr, "filepath") == 1 && xmlStr.IndexOf("<![CDATA[") < 0)
{
string filePath = nodeList[0].Attributes["filepath"].Value;

string filePath = nodeList[0].Attributes["filepath"].Value;

clip.Type = IMAGE_TYPE;
clip.DisplayValue = string.Empty;
clip.ClipValue = Convert.ToBase64String(File.ReadAllBytes(filePath.Replace("file:///", "")));
clip.ClipValue = Convert.ToBase64String(File.ReadAllBytes(filePath.Replace("file:///", "")));
clip.PlainText = string.Empty;
return;
}

int ii = 0;
string htmlStr = Clipboard.GetData(DataFormats.Html).ToString();

string htmlStr = Clipboard.GetData(DataFormats.Html).ToString();

string startTag;
if (htmlStr.IndexOf("<!--StartFragment-->") > 0)
{
Expand All @@ -510,8 +510,8 @@ public void HandleQQ(ClipModel clip)
{

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlStr);

doc.LoadHtml(htmlStr);

var nodes = doc.DocumentNode.SelectNodes("//img");
if (nodes != null)
{
Expand All @@ -526,8 +526,8 @@ public void HandleQQ(ClipModel clip)
else
{
filePath = src;
}

}

Console.WriteLine(filePath);
src = "data:image/png;base64," + Convert.ToBase64String(File.ReadAllBytes(filePath.Replace("file:///", "")));

Expand Down
17 changes: 2 additions & 15 deletions view/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -642,22 +642,9 @@ private void SetValueToClip(ClipModel result)
clipService.SetValueToClipboard(result);

}
catch (Exception e){
//Console.WriteLine(e.StackTrace);
//IntPtr hwnd = WinAPIHelper.GetOpenClipboardWindow();
//StringBuilder sb = new StringBuilder(501);
//WinAPIHelper.GetWindowText(hwnd, sb, 500);
//Console.WriteLine("==");
//Console.WriteLine(sb.ToString());
//Console.WriteLine("==");
}
catch { }
Thread.Sleep(50);

//WinAPIHelper.keybd_event((byte)KeyInterop.VirtualKeyFromKey(Key.LeftCtrl),0,0,0);//按下
//WinAPIHelper.keybd_event((byte)KeyInterop.VirtualKeyFromKey(Key.V),0,0,0);//按下
//WinAPIHelper.keybd_event((byte)KeyInterop.VirtualKeyFromKey(Key.V),0,2,0);//弹起
//WinAPIHelper.keybd_event((byte)KeyInterop.VirtualKeyFromKey(Key.LeftCtrl), 0,2,0);//弹起


KeyboardKit.Keyboard.Press(Key.LeftCtrl);
KeyboardKit.Keyboard.Press(Key.V);

Expand Down

0 comments on commit 3e41b5b

Please sign in to comment.