成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自己動(dòng)手寫工具----簽到器(升級(jí)版)

開發(fā) 后端
上一篇中基本實(shí)現(xiàn)了簡(jiǎn)單的簽到任務(wù),但是不夠靈活。在上一篇自己動(dòng)手寫工具----簽到器的結(jié)尾中,我設(shè)想了幾個(gè)新增功能來提高工具的靈活程度,下面把新增功能點(diǎn)列出來看看:

一、前面的話

上一篇中基本實(shí)現(xiàn)了簡(jiǎn)單的簽到任務(wù),但是不夠靈活。在上一篇自己動(dòng)手寫工具----簽到器的結(jié)尾中,我設(shè)想了幾個(gè)新增功能來提高工具的靈活程度,下面把新增功能點(diǎn)列出來看看:

(1)新增其他的進(jìn)程任務(wù);

(2)任務(wù)按照進(jìn)程進(jìn)行分類:用IE就是執(zhí)行IE的任務(wù),與其他(如資源管理器等)無關(guān);

(3)每執(zhí)行完一個(gè)任務(wù)關(guān)閉任務(wù)窗口;

(4)對(duì)簽到性質(zhì)的任務(wù)進(jìn)行”已簽到“過濾;

(5)實(shí)現(xiàn)執(zhí)行的任務(wù)列表自定義;

(6)另外實(shí)現(xiàn)任務(wù)的可視化;

還是先來看看效果圖:

二、簽到器的改進(jìn)

在上一個(gè)版本中,(自己動(dòng)手寫工具----簽到器),我們可以自己來添加任務(wù),但是有個(gè)最重要的問題,那就是任務(wù)列表的可視化。上一版本中,只是針對(duì)簡(jiǎn)單的幾個(gè)IE任務(wù),所以比較簡(jiǎn)單,但是隨著任務(wù)越來越多,有的時(shí)候只想執(zhí)行其中的一些任務(wù)而不是所有,這就不可避免地要對(duì)任務(wù)進(jìn)行分類處理,這樣就可以針對(duì)自己選擇的任務(wù)進(jìn)行批量執(zhí)行。就是上面圖中左側(cè)的部分啦~~通過勾選需要執(zhí)行的任務(wù),點(diǎn)擊“確定”按鈕,你就可以看著任務(wù)被一個(gè)一個(gè)地執(zhí)行啦~\(≧▽≦)/~

在執(zhí)行的過程中,如果任務(wù)過多就會(huì)占用過多的資源(如開啟多個(gè)IE瀏覽器進(jìn)程,上一個(gè)版本就是醬紫的... ...),為了解決這個(gè)問題,對(duì)代碼進(jìn)行小小的優(yōu)化,每次執(zhí)行完成一個(gè)任務(wù),就會(huì)關(guān)閉該進(jìn)程,但是這里有個(gè)疑問,希望大神幫忙支支招兒,感激不盡啊~~~~
什么問題呢?就是如果執(zhí)行任務(wù)之前,你已經(jīng)打開了一個(gè)IE進(jìn)程,那么在啟動(dòng)執(zhí)行任務(wù)后,隨著該任務(wù)進(jìn)程的關(guān)閉會(huì)連同之前的IE進(jìn)程Kill掉,所以這是個(gè)BUG,查了一下資料,大概的意思是獲取進(jìn)程的某個(gè)句柄后關(guān)閉即可,本人還沒有測(cè)試,希望大神給指?jìng)€(gè)明路~~

下面是為了避免占用過多的系統(tǒng)資源,而進(jìn)行改進(jìn)后的執(zhí)行代碼:

  1. //關(guān)閉進(jìn)程 
  2.         private void KillProcess(string processName) 
  3.         { 
  4.             Process proc = new Process(); 
  5.             foreach (Process item in Process.GetProcessesByName(processName)) 
  6.             { 
  7.                 if (!item.CloseMainWindow()) 
  8.                 { 
  9.                     item.Kill(); 
  10.                 } 
  11.             } 
  12.         } 

  1. //執(zhí)行任務(wù) 
  2.         public void ExcuteTask(TaskModel task) 
  3.         { 
  4.             int processID; 
  5.             ProcessStartInfo ps = new ProcessStartInfo(task.Application, task.Url); 
  6.             ps.WindowStyle = ProcessWindowStyle.Maximized; 
  7.             Process myProc =Process.Start(ps); 
  8.             processID = myProc.Id; 
  9.             Thread.Sleep((int)numericUpDown2.Value * BASENUM); 
  10.             //設(shè)置鼠標(biāo)位置 
  11.             MouseEvents.SetCursorPosition(task.PositionX, task.PositionY); 
  12.             //模擬鼠標(biāo)雙擊 
  13.             MouseEvents.MouseDbClick(); 
  14.             Thread.Sleep(1000); 
  15.             KillProcess(task.Application); 
  16.         } 

既然添加了任務(wù)分類信息,那么數(shù)據(jù)的結(jié)構(gòu)就要發(fā)生變化了,每個(gè)任務(wù)多了一個(gè)屬性,就是所屬分類:

  1. private string typeName; 
  2.         private int typeID; 
  3.         //任務(wù)分類名稱 
  4.         public string TypeName 
  5.         { 
  6.             get { return typeName; } 
  7.             set { typeName = value; } 
  8.         } 
  9.  
  10.         //任務(wù)ID 
  11.         public int TypeID 
  12.         { 
  13.             get { return typeID; } 
  14.             set { typeID = value; } 
  15.         } 

數(shù)據(jù)結(jié)構(gòu):

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <tasks> 
  3.   <task> 
  4.     <taskType>         
  5.         <taskTypeName>Internet Explore</taskTypeName> 
  6.     </taskType> 
  7.     <taskName>百度知道</taskName> 
  8.     <application>iexplore.exe</application> 
  9.     <param>http://zhidao.baidu.com/</param> 
  10.     <position> 
  11.       <x>1223</x> 
  12.       <y>298</y> 
  13.     </position> 
  14.   </task> 
  15.   <task> 
  16.     <taskType>         
  17.         <taskTypeName>Internet Explore</taskTypeName> 
  18.     </taskType> 
  19.     <taskName>百度云盤</taskName> 
  20.     <application>iexplore.exe</application> 
  21.     <param>http://www.baiduyun.me/forum.php</param> 
  22.     <position> 
  23.       <x>1561</x> 
  24.       <y>144</y> 
  25.     </position> 
  26.   </task> 
  27. </tasks> 

還有一個(gè)地方想說一下,就是左側(cè)的任務(wù)列表,本來打算用ListView實(shí)現(xiàn),但是效果我不是很滿意,所以就改成了現(xiàn)在的樣子。至于標(biāo)簽,那只不過是自定義的控件,我對(duì)重寫控件很感興趣,本著學(xué)習(xí)和記錄的目的,打算把這一塊記錄下來(貌似有點(diǎn)跑題呀~)。在擼碼的時(shí)候,發(fā)現(xiàn)Label控件的大小不是很好控制,其實(shí)我的需求是Label既包含了AutoSize屬性,還能夠給checkbox留下一點(diǎn)空間,就是說checkbox的位置始終緊貼在Label的右內(nèi)側(cè),文字長(zhǎng)度改變時(shí),整個(gè)控件長(zhǎng)度也發(fā)生變化,但是checkbox的相對(duì)位置是不變的~~結(jié)果糾結(jié)了,哎... ...無奈只能用固定的長(zhǎng)度了,四個(gè)漢字的長(zhǎng)度,如果有大神知道怎么搞定這個(gè)需求,望不吝賜教~~下面貼出自定義控件代碼(大神繞道...)

新建用戶控件,并重寫控件的OnPaint方法:

  1. protected override void OnPaint(PaintEventArgs e) 
  2.         { 
  3.             Graphics g = e.Graphics; 
  4.             int x = this.Width; 
  5.             int y = this.Height; 
  6.             Point leftTop = new Point(0, 0); 
  7.             Point rightTop = new Point(x - 1, 0); 
  8.             Point leftBottom = new Point(0, y - 1); 
  9.             Point rightBottom = new Point(x - 1, y - 1); 
  10.  
  11.             g.DrawLine(new Pen(Color.White), leftTop, rightTop); 
  12.             g.DrawLine(new Pen(Color.White), leftBottom, rightBottom); 
  13.             g.DrawLine(new Pen(Color.White), leftTop, leftBottom); 
  14.             g.DrawLine(new Pen(Color.White), rightTop, rightBottom); 
  15.             //畫上邊緣 
  16.             for (int i = 0; i < x - 1; i += 3) 
  17.             { 
  18.                 g.FillRectangle(new SolidBrush(Color.Black), new Rectangle(i, 0, 2, 1)); 
  19.             } 
  20.  
  21.             //畫下邊緣 
  22.             for (int m = 0; m < x - 1; m += 3) 
  23.             { 
  24.                 g.FillRectangle(new SolidBrush(Color.Black), new Rectangle(m, y - 1, 2, 1)); 
  25.             } 
  26.  
  27.             //畫左邊緣 
  28.             for (int i = 0; i < y - 1; i += 3) 
  29.             { 
  30.                 g.FillRectangle(new SolidBrush(Color.Black), new Rectangle(0, i, 1, 2)); 
  31.             } 
  32.  
  33.             //畫右邊緣 
  34.             for (int i = 0; i < y - 1; i += 3) 
  35.             { 
  36.                 g.FillRectangle(new SolidBrush(Color.Black), new Rectangle(x - 1, i, 1, 2)); 
  37.             } 
  38.             base.OnPaint(e); 
  39.         } 

再給組合控件添加一些屬性,給外部調(diào)用:

  1. private bool labelChecked = false
  2.         private string labelText; 
  3.         public bool LabelChecked 
  4.         { 
  5.             get 
  6.             { 
  7.                 return ck.Checked; 
  8.             } 
  9.  
  10.             set 
  11.             { 
  12.                 ck.Checked = value; 
  13.             } 
  14.         } 
  15.  
  16.         public string LabelText 
  17.         { 
  18.             get 
  19.             { 
  20.                 if(!String.IsNullOrEmpty(lb.Text)) 
  21.                     return lb.Text; 
  22.                 return "輸入標(biāo)簽"
  23.             } 
  24.  
  25.             set 
  26.             { 
  27.                 lb.Text = value; 
  28.             } 
  29.         } 

那么這個(gè)組合控件就完成了,生成后可以在右側(cè)屬性欄為其賦值,直接使用就可以啦~~~

三、結(jié)語

本來想在上一篇完成后緊接著更新這一篇,但是時(shí)間有限,事情也很多,所以就推遲到現(xiàn)在才完成(其實(shí)還沒有完成,最上面劃刪除線的啷個(gè)~~)。不得不承認(rèn),在做的過程中總會(huì)遇見這樣那樣或多或少的問題,有些問題看起來很簡(jiǎn)單,但是做起來是有些困難的,克服了這些困難也就成功了,也就有經(jīng)驗(yàn)來處理類似的問題了,所以別問那些大牛是怎么那么牛的~~那是碼出來的。所以,騷年,敲代碼吧~~讓困難來得更猛烈些吧~~~~~

下一步我準(zhǔn)備繼續(xù)完善這個(gè)簽到器(其實(shí)功能擴(kuò)展多了,就不叫這個(gè)名字了... ...)。另外,有些園友想要源碼,我會(huì)盡快整理好發(fā)布到Github上~~多謝大家的支持!!!

如果覺得好玩兒,就幫贊一個(gè)唄~\(≧▽≦)/~

責(zé)任編輯:張偉 來源: 博客園
相關(guān)推薦

2015-07-23 14:53:50

貝葉斯分類器

2020-09-29 12:13:46

SQL引擎底層

2017-03-02 13:31:02

監(jiān)控系統(tǒng)

2009-12-02 10:08:28

阿爾法路由器升級(jí)

2018-09-12 10:58:11

NBA數(shù)據(jù)存儲(chǔ)

2018-02-07 10:46:20

數(shù)據(jù)存儲(chǔ)

2011-08-31 13:35:50

PhotovinePiictu照片分享

2013-09-11 10:28:10

VMwareWorkstation

2011-10-27 09:45:40

諾基亞增強(qiáng)現(xiàn)實(shí)Live View

2011-05-11 08:46:54

HoneycombAndroid谷歌

2009-06-01 21:29:03

Java升級(jí)Vista

2015-06-02 09:51:40

iOS網(wǎng)絡(luò)請(qǐng)求封裝接口

2015-06-02 10:24:43

iOS網(wǎng)絡(luò)請(qǐng)求降低耦合

2011-06-27 09:02:30

Debian 6.0Debian 6.0.

2012-05-08 10:37:11

谷歌BigQuery

2009-12-03 18:52:40

FAST路由器升級(jí)

2009-08-25 09:17:04

Windows 7升級(jí)版完全版

2023-02-23 15:29:21

BitTorrent開源

2011-04-18 17:25:34

Symbian Ann諾基亞

2023-12-15 10:14:42

數(shù)據(jù)庫select語句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 男插女下体视频 | 日韩视频一区在线观看 | 在线免费看黄 | 亚洲二区在线 | 日本在线视频中文字幕 | 成人午夜视频在线观看 | 久久久久久久成人 | 精品日韩在线 | 亚洲精品视频在线看 | a级黄色片视频 | 久久精品视频在线免费观看 | 亚洲国产欧美一区二区三区久久 | 午夜天堂精品久久久久 | 男女羞羞视频网站 | 日产久久| 性一交一乱一透一a级 | 亚洲欧美综合 | 日韩成人在线视频 | 欧美日韩视频网站 | 国产精品一区二区三区在线 | 特级丰满少妇一级aaaa爱毛片 | 日韩有码在线观看 | 91视频在线看 | 91精品在线播放 | 欧美成年黄网站色视频 | 精品久久久久久久久久久 | a级毛片国产 | 全免费a级毛片免费看视频免 | 亚洲精品美女视频 | 国产视频久久 | 91精品国产91久久久久久不卞 | 亚洲天堂中文字幕 | 激情 亚洲| 欧美日韩在线视频观看 | 亚洲视频免费在线观看 | 国产一区二区三区视频 | 一区欧美 | 精品亚洲视频在线 | 九九爱这里只有精品 | a欧美 | 日韩电影一区二区三区 |