Files
lserp_cs_6.0/插件库/Lskj.Control/FrmMiniBlink.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

207 lines
7.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Lskj.MiniBlink;
using Lskj.Model;
using MiniBlinkPinvoke;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Web;
using System.Windows.Forms;
namespace Lskj.Control
{
public partial class FrmMiniBlink : UserControl
{
/// <summary>
/// type=2下载验证
/// </summary>
public bool IsDownVerify = false;
BlinkBrowser blinkBrowser1 = null;
static BlinkBrowser mb = null;
public string url = string.Empty;
public bool AllowDownload = true;
//System.Windows.Forms.Timer queryTimer = new System.Windows.Forms.Timer();
private IntPtr taskPtr;
XL.DownTaskInfo taskInfo = new XL.DownTaskInfo();
[JSFunctin]
public void Console_WriteLine(string msg)
{
MessageBox.Show("Console_WriteLine " + msg);
}
public FrmMiniBlink()
{
InitializeComponent();
blinkBrowser1 = new BlinkBrowser();
blinkBrowser1.GlobalObjectJs = this;
mb = blinkBrowser1;
blinkBrowser1.Dock = DockStyle.Fill;
Neghte(url);
this.Controls.Add(blinkBrowser1);
blinkBrowser1.KeyDown += PreviewFrm_KeyDown;
}
private void PreviewFrm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 113) //点击F2 把当前网站添加到剪切板
{
try
{
if (ERPInfo.Instance.UserName.Equals("管理员"))
{
//弹出当前网址
string NUrl = this.url;
MessageBox.Show(string.Format("Url:{0}已复制到粘贴板", NUrl));
System.Windows.Forms.Clipboard.SetText(NUrl);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
public void LoadUrl(string url)
{
this.url = url;
blinkBrowser1.Url = url;
}
public void Neghte(string url)
{
//BlinkBrowserPInvoke.wkeSetHandle(blinkBrowser1.handle, this.Handle);
//BlinkBrowserPInvoke.wkeSetHandleOffset(blinkBrowser1.handle, blinkBrowser1.Location.X-2,0);
blinkBrowser1.OnUrlChange2Call += BlinkBrowser1_OnUrlChange2Call;
blinkBrowser1.OnTitleChangeCall += BlinkBrowser1_OnTitleChangeCall;
blinkBrowser1.DocumentReadyCallback += BlinkBrowser1_DocumentReadyCallback;
blinkBrowser1.OnDownloadFile += BlinkBrowser1_OnDownloadFile;
this.url = url;
blinkBrowser1.Url = url;
// blinkBrowser1.Focus();
}
/// <summary>
/// 下载文件
/// </summary>
/// <param name="url"></param>
private void BlinkBrowser1_OnDownloadFile(string url)
{
//只是简单实现下载,可以模仿其他下载界面,先弹出一个窗体,让用户选择保存路径文件名什么的。
//使用前先拷贝 libs/XL 目录中文件到软件运行目录。
if (File.Exists("xldl.dll"))
{
var initSuccess = XL.XL_Init();
if (initSuccess)
{
XL.DownTaskParam p = new XL.DownTaskParam()
{
IsResume = 0,
szTaskUrl = url,
szFilename = url.Substring(url.LastIndexOf('/') + 1),//简单处理文件名,实际中还需要单独处理,这里有BUG
szSavePath = AppDomain.CurrentDomain.BaseDirectory
};
string SzFileName = HttpUtility.UrlDecode(p.szFilename);
string[] szName = SzFileName.Split('/');
taskPtr = XL.XL_CreateTask(p);
var startSuccess = XL.XL_StartTask(taskPtr);
if (startSuccess)
{
Download(p.szTaskUrl, szName[szName.Length - 1]);
}
}
else
{
MessageBox.Show("XL_Init初始化失败");
}
}
else
{
MessageBox.Show("请先将 libs/XL 目录中文件到软件运行目录。");
}
}
/// <summary>
/// <para>说明:定义服务器文件地址,含文件名。客户端接收地址及文件名由客户端自行定义</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="URL">The URL.</param>
/// <param name="FileName">Name of the file.</param>
public void Download(string URL, string FileName)
{
if (!AllowDownload) return;
FrmSelectDownload frmSelectDownload = new FrmSelectDownload();
frmSelectDownload.URL = URL;
frmSelectDownload.FileName = FileName;
frmSelectDownload.Show();
//SaveFileDialog saveFileDialog = new SaveFileDialog();
//saveFileDialog.FileName = FileName;
//saveFileDialog.Title = "下载模板文件到";
//saveFileDialog.RestoreDirectory = true;
////点了保存按钮进入
//if (saveFileDialog.ShowDialog() == DialogResult.OK)
//{
// string localFilePath = System.IO.Path.GetFullPath(saveFileDialog.FileName);//获得文件路径,含文件名
// string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);//获取文件名,不带路径
// string FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf("\\"));//获取文件路径,不带文件名
// FrmDownload frm = new FrmDownload(URL, FileName, localFilePath);
// frm.Show();
//}
}
//[JSFunctin]
//public static async void DOTaskWithAsync(string str)
//{
// await Task.Run(() =>
// {
// Dotaskfunction(str);
// });
//}
public static void Dotaskfunction(string s)
{
Thread.Sleep(1000 * 5);
if (mb != null)
{
mb.Invoke(new Action<string>(
(sx) =>
{
string _str = "ceshi" + sx;
_str = System.Web.HttpUtility.UrlEncode(_str);
string invokeJSStr = "asyncTest('" + _str + "')";
mb.InvokeJS(invokeJSStr);
}
), s);
}
}
private void BlinkBrowser1_DocumentReadyCallback()
{
}
private void BlinkBrowser1_OnTitleChangeCall(string title)
{
Text = title;
}
private void BlinkBrowser1_OnUrlChange2Call(string url)
{
this.url = url;
}
}
}