コード例 #1
0
 public CefWebDownloadUpdatedEventArgs(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     Cancel       = false;
     Browser      = browser;
     DownloadItem = downloadItem;
     Callback     = callback;
 }
コード例 #2
0
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem,
                                           CefDownloadItemCallback callback)
 {
     //downloadItem.CurrentSpeed 下载速度
     //downloadItem.TotalBytes 总字节数
     //downloadItem.ReceivedBytes 已完成字节数
     //downloadItem.PercentComplete 完成百分比
     //downloadItem.StartTime 下载开始时间
     //downloadItem.EndTime 下载完成时间
     if (downloadItem.IsComplete)
     {
         MessageBox.Show("文件下载成功!");
         if (browser.IsPopup && !browser.HasDocument)
         {
             browser.GetHost().ParentWindowWillClose();
             browser.GetHost().CloseBrowser();
         }
     }
 }
コード例 #3
0
        internal DownloadUpdatedEventArgs(CefDownloadItem downloadItem, CefDownloadItemCallback callback)
        {
            _downloadItem = downloadItem;
            _callback     = callback;


            DownloadFileId     = (int)_downloadItem.Id;
            CurrentSpeed       = _downloadItem.CurrentSpeed;
            StartTime          = _downloadItem.StartTime;
            EndTime            = _downloadItem.EndTime;
            FullPath           = _downloadItem.FullPath;
            IsCanceled         = _downloadItem.IsCanceled;
            IsComplete         = _downloadItem.IsComplete;
            IsInProgress       = _downloadItem.IsInProgress;
            PercentComplete    = _downloadItem.PercentComplete;
            ReceivedBytes      = _downloadItem.ReceivedBytes;
            ContentDisposition = _downloadItem.ContentDisposition;
            IsValid            = _downloadItem.IsValid;
            MimeType           = _downloadItem.MimeType;
            OriginalUrl        = _downloadItem.OriginalUrl;
            TotalBytes         = _downloadItem.TotalBytes;
            Url = _downloadItem.Url;
        }
コード例 #4
0
ファイル: DownloadItem.cs プロジェクト: qkb/CefLite
        static internal void ShowOrUpdate(CefDownloadItem item, CefDownloadItemCallback callback, bool create)
        {
            var id    = item.Id;
            var ditem = List.Where(v => v.Id == id).FirstOrDefault();

            if (ditem == null)
            {
                if (!create)
                {
                    return;
                }

                ditem = new DownloadItem();
                lock (List)
                    List.Add(ditem);
            }
            else
            {
            }
            ditem.SetFrom(item);
            ditem._callback = callback;
            PostVersionUpdateEvent();
        }
コード例 #5
0
        protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
        {
            owner.PerformDownloadUpdated(downloadItem, callback);

            //Log.Info( "OnDownloadUpdated: " + downloadItem.TotalBytes.ToString() + " " + downloadItem.ReceivedBytes.ToString() + " " + downloadItem.PercentComplete.ToString() + " " + downloadItem.IsComplete.ToString() + " " + downloadItem.FullPath );

            base.OnDownloadUpdated(browser, downloadItem, callback);
        }
コード例 #6
0
 public DownloadUpdatedEventArgs(CefDownloadItem item, CefDownloadItemCallback cb)
 {
     DownloadedItem = item;
     Callback       = cb;
 }
コード例 #7
0
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     base.OnDownloadUpdated(browser, downloadItem, callback);
     webBrowser.OnDownloading(downloadItem.TotalBytes,
                              downloadItem.ReceivedBytes,
                              downloadItem.CurrentSpeed,
                              downloadItem.PercentComplete,
                              downloadItem.Url,
                              downloadItem.SuggestedFileName,
                              downloadItem.MimeType,
                              downloadItem.IsComplete,
                              downloadItem.IsInProgress);
 }
コード例 #8
0
 internal void PerformDownloadUpdated(CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     DownloadUpdated?.Invoke(this, downloadItem, callback);
 }
コード例 #9
0
ファイル: DownloadItem.cs プロジェクト: qkb/CefLite
 static internal void Show(CefDownloadItem item, CefDownloadItemCallback callback)
 {
     ShowOrUpdate(item, callback, true);
 }
コード例 #10
0
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     if (downloadItem.IsComplete || downloadItem.IsCanceled)
     {
     }
     //base.OnDownloadUpdated(browser, downloadItem, callback);
 }
コード例 #11
0
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     base.OnDownloadUpdated(browser, downloadItem, callback);
 }
コード例 #12
0
        protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
        {
            ////base.OnDownloadUpdated(browser, downloadItem, callback);
            //PublicClass.DownloadProgress(browser, callback, downloadItem);// downloadItem.Url.Substring(downloadItem.Url.LastIndexOf("/") + 1, downloadItem.Url.Length - downloadItem.Url.LastIndexOf("/")));

            ////if (downloadItem.IsComplete)
            ////{
            ////    //  MessageBox.Show("下载成功!");
            ////    //if (browser.IsPopup && !browser.HasDocument)
            ////    //{
            ////    if (downloadItem.IsComplete)
            ////        browser.GetHost().CloseBrowser();
            ////    //}
            ////}
            CefDownloadItem cefDownloadItem = downloadItem;

            //long reciv = downloadItem.ReceivedBytes;
            try
            {
                uint ID = downloadItem.Id;
                int  dPercentComplete = downloadItem.PercentComplete;

                if (cefDownloadItem.IsInProgress)
                {
                    CefConstHelper.IsDownloading = true;
                    if (MainForm.Instance.DownloadPanel3.Controls.Count > 2)
                    {
                        MainForm.Instance.Invoke(new Action(() =>
                        {
                            for (int i = 0; i < MainForm.Instance.faTabStrip1.Items.Count; i++)
                            {
                                if (MainForm.Instance.faTabStrip1.Items[i].Title == CefConstHelper.CefDownloadTitle)
                                {
                                    for (int k = 1; i < MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count; k++)
                                    {
                                        if (k == MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count)
                                        {
                                            break;
                                        }
                                        Jdownload mjdownload = ((Jdownload)MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls[k]);
                                        if (mjdownload.IsDownloading && ID.ToString() == mjdownload.DownloadID)
                                        {
                                            mjdownload.pictureBox1.Image = null;
                                            mjdownload.label1.Text       = dPercentComplete.ToString() + "%"; //  sender.FinishedRate.ToString() + "%";
                                                                                                              //  break;
                                        }
                                    }
                                    break;
                                }
                            }

                            for (int y = 0; y < MainForm.Instance.DownloadPanel3.Controls.Count - 2; y++)
                            {
                                Jdownloading yDown = ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2]));
                                if (yDown.DownloadIndex == ID.ToString())
                                {
                                    ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = dPercentComplete.ToString() + "%"; // sender.FinishedRate.ToString() + "%";
                                    if (dPercentComplete < 0)
                                    {
                                        ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = (cefDownloadItem.ReceivedBytes / 1024000f).ToString("0.00") + "MB"; // sender.FinishedRate.ToString() + "%";
                                    }
                                    if (cefDownloadItem.PercentComplete <= 0 && cefDownloadItem.ReceivedBytes == 0 && cefDownloadItem.TotalBytes > 0)
                                    {
                                        ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = "100%";
                                    }
                                    if (((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).CancelDowning)
                                    {
                                        callback.Cancel();//取消下载
                                        ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.ForeColor   = Color.Red;
                                        ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text        = "停止";
                                        ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).CancelDown.Enabled = false;
                                    }
                                }
                            }
                        }));
                    }
                }
                //当下载完成时
                if (cefDownloadItem.IsComplete)
                {
                    MainForm.Instance.Invoke(new Action(() =>
                    {
                        bool downloadTabOpened = false;
                        for (int i = 0; i < MainForm.Instance.faTabStrip1.Items.Count; i++)
                        {
                            if (MainForm.Instance.faTabStrip1.Items[i].Title == CefConstHelper.CefDownloadTitle)
                            {
                                for (int k = 1; i < MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count - 1; k++)
                                {
                                    if (k == MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count)
                                    {
                                        break;
                                    }
                                    Jdownload jdownloadR = (Jdownload)(MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls[k]);
                                    if (jdownloadR.DownloadID == ID.ToString() && jdownloadR.IsDownloading)
                                    {
                                        jdownloadR.label1.Text = "";
                                        jdownloadR.label1.Hide();
                                        jdownloadR.ImageBase64str    = PublicClass.IamgeToBase64(System.Drawing.Icon.ExtractAssociatedIcon(jdownloadR.FullFilePaths).ToBitmap());
                                        jdownloadR.FileAlreadyDele   = false;
                                        jdownloadR.IsDownloading     = false;
                                        jdownloadR.pictureBox1.Image = System.Drawing.Icon.ExtractAssociatedIcon(jdownloadR.FullFilePaths).ToBitmap();
                                        jdownloadR.Invalidate();
                                        mDownloadRecode.Update(jdownloadR);
                                        downloadTabOpened = true;
                                    }
                                }
                                break;
                            }
                        }



                        if (MainForm.Instance.DownloadPanel3.Visible)
                        {
                            for (int h = 0; h < MainForm.Instance.DownloadPanel3.Controls.Count - 2; h++)
                            {
                                if (((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).DownloadIndex == ID.ToString())
                                {
                                    ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).buttonXP1.ImageDefault = Resources.up1;
                                    ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).label2.Visible         = false;
                                    ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).pictureBox1.Image      =
                                        Icon.ExtractAssociatedIcon(((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).FilePaths).ToBitmap();;
                                    ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).IsDownloaded         = true;
                                    ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).Opendownfile.Enabled = true;
                                    MainForm.Instance.DownloadPanel3.Invalidate();
                                    if (!downloadTabOpened) //当没有打开下载页面的时候也要更新一部分内容
                                    {
                                        string jsonStr     = File.ReadAllText(PublicClass.currDirectiory + @"\UserData\mDownloadRecodes");
                                        Jdownload downitem = new Jdownload();// = new FavirteButton();
                                        List <Jdownload> downitemBTs;
                                        try
                                        {
                                            var jobInfoList = JsonConvert.DeserializeObject <List <Jdownload> >(jsonStr);
                                            if (jobInfoList.Count > 0)
                                            {
                                                downitemBTs = jobInfoList;
                                                foreach (Jdownload jobInfo in downitemBTs)
                                                {
                                                    if (jobInfo.DownloadID == ID.ToString() && jobInfo.IsDownloading)
                                                    {
                                                        jobInfo.ImageBase64str = PublicClass.IamgeToBase64(((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).pictureBox1.Image);
                                                        downitem = jobInfo;
                                                        break;
                                                    }
                                                }
                                                mDownloadRecode.Update(downitem);
                                            }
                                        }
                                        catch (Exception e)
                                        {
                                            MessageBox.Show(e.Message);
                                        }
                                    }
                                    break;
                                }
                            }
                        }
                    }));


                    if (downloadItem.IsComplete)
                    {
                        CefConstHelper.IsDownloading = false;
                    }
                }
            }
            catch (Exception e)
            { }
        }
コード例 #13
0
ファイル: DownloadHandler.cs プロジェクト: PlumpMath/CefPaste
        protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
        {
            if (this.Client.HandleDownloadProgress != null)
            {
                var cancelled = downloadItem.IsCanceled;
                this.Client.HandleDownloadProgress(downloadItem.FullPath, downloadItem.ReceivedBytes, downloadItem.TotalBytes, ref cancelled);
                if (cancelled && downloadItem.IsCanceled == false)
                {
                    callback.Cancel();
                }
            }

            Log.Trace("DownloadHandler.OnDownloadUpdated( browser: {0}, downloadItem: {1} )", browser.Identifier, downloadItem.Id);

            //base.OnDownloadUpdated( browser, downloadItem, callback );
        }
コード例 #14
0
 protected internal unsafe override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     _implementation.OnDownloadUpdated(browser, downloadItem, callback);
 }
コード例 #15
0
 public override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     _implementation.OnDownloadUpdated(browser, downloadItem, callback);
 }
コード例 #16
0
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     if (downloadItem.IsComplete)
     {
         if (OwnerWebView.DownloadCompleted != null)
         {
             OwnerWebView.AsyncExecuteInUI(() => OwnerWebView.DownloadCompleted?.Invoke(downloadItem.FullPath));
         }
     }
     else if (downloadItem.IsCanceled)
     {
         if (OwnerWebView.DownloadCancelled != null)
         {
             OwnerWebView.AsyncExecuteInUI(() => OwnerWebView.DownloadCancelled?.Invoke(downloadItem.FullPath));
         }
     }
     else
     {
         if (OwnerWebView.DownloadProgressChanged != null)
         {
             OwnerWebView.AsyncExecuteInUI(() => OwnerWebView.DownloadProgressChanged?.Invoke(downloadItem.FullPath, downloadItem.ReceivedBytes, downloadItem.TotalBytes));
         }
     }
 }
コード例 #17
0
 public DownloadUpdatedEventArgs(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     this.DownloadItem = downloadItem;
     this._browser     = browser;
     this.Callback     = callback;
 }
コード例 #18
0
 /// <summary>
 /// Called when a download's status or progress information has been updated.
 /// This may be called multiple times before and after OnBeforeDownload().
 /// Execute |callback| either asynchronously or in this method to cancel the
 /// download if desired. Do not keep a reference to |download_item| outside of
 /// this method.
 /// </summary>
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     _owner.OnDownloadUpdated(new DownloadUpdatedEventArgs(downloadItem, callback));
 }
コード例 #19
0
ファイル: DownloadItem.cs プロジェクト: qkb/CefLite
 static internal void Update(CefDownloadItem item, CefDownloadItemCallback callback)
 {
     ShowOrUpdate(item, callback, false);
 }
コード例 #20
0
        protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
        {
            var e = new DownloadUpdatedEventArgs(downloadItem, callback);

            _owner.InvokeIfRequired(() => _owner.OnDownloadUpdated(e));
        }
コード例 #21
0
 protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
     if (downloadItem.IsComplete)
     {
         //  MessageBox.Show("下载成功");
         if (browser.IsPopup && !browser.HasDocument)
         {
             //browser.GetHost().ParentWindowWillClose();
             browser.GetHost().CloseBrowser();
         }
     }
 }
コード例 #22
0
 internal protected virtual void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback)
 {
 }