ab56a9bcf7
SVN-Revision: r240
207 lines
7.3 KiB
C#
207 lines
7.3 KiB
C#
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;
|
||
}
|
||
}
|
||
}
|