精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#WINDOWS服務交互的實現

開發 后端
C#WINDOWS服務交互的實現是如何辦到的呢?C#WINDOWS服務交互的實現的具體實施是怎么樣子的呢?那么本文就向你介紹C#WINDOWS服務交互的實現的具體內容。

C#WINDOWS服務交互的實現的前言:這幾天想做個文件監控服務,看了一下網上的關于WINDOWS服務的文章,數量都不少,都只講了如何做一個最基本的服務,卻沒有講述如何與用戶進行交互。查看了MSDN,看一下關于服務的描述:

WINDOWS服務交互應用程序在不同于登錄用戶的交互區域的窗口區域中運行。窗口區域是包含剪貼板、一組全局原子和一組桌面對象的安全對象。由于 WINDOWS服務交互的區域不是交互區域,因此 Windows 服務應用程序中引發的對話框將是不可見的,并且可能導致程序停止響應。同樣,錯誤信息應記錄在 Windows 事件日志中,而不是在用戶界面中引發。

 .NET Framework 支持的 WINDOWS服務交互類不支持與交互區域(即登錄用戶)進行交互。同時,.NET Framework 不包含表示區域和桌面的類。如果 WINDOWS服務交互務必須與其他區域進行交互,則需要訪問非托管的 Windows API。

也就是說我們要實現可交互的服務(比如我們想給服務在運行時做一些參數設置等),那我們一定要using System.Runtime.InteropServices

那么來看一下如果才能實現一個可交互的服務呢。步驟與實現基本的服務一樣(各位可自行參考MSDN或網上google一下).

在實現OnStart時要注意,這里可不能彈出一個FORM什么的。這樣做是沒有任何反應的。我們可以在這個方法里運行一個線程。該線程需要訪問窗口區域對象或桌面對象,當然 framework里是沒有提供這些的,要訪問非托管代碼的。

來看一下代碼,再運行試一下。

  1. using System;  
  2. using System.Collections;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Diagnostics;  
  6. using System.ServiceProcess;  
  7. using System.Threading;  
  8. using System.Runtime.InteropServices;  
  9. namespace FileWatchService  
  10. {  
  11. public class Service1 : System.ServiceProcess.ServiceBase  
  12. {  
  13. ///   
  14. /// 必需的設計器變量。  
  15. ///   
  16. private System.ComponentModel.Container components = null;  
  17. Thread threadForm=null;  
  18. public Service1()  
  19. {  
  20. // 該調用是 Windows.Forms 組件設計器所必需的。  
  21. InitializeComponent();  
  22.  
  23. // TODO: 在 InitComponent 調用后添加任何初始化  
  24. }  
  25.  
  26. #region 組件設計器生成的代碼  
  27. ///   
  28. /// 設計器支持所需的方法 - 不要使用代碼編輯器   
  29. /// 修改此方法的內容。  
  30. ///   
  31. private void InitializeComponent()  
  32. {  
  33. //   WINDOWS服務交互
  34. // Service1  
  35. //   
  36. this.ServiceName = "JadeWatchService";  
  37.  
  38. }  
  39. #endregion  
  40. [STAThread]  
  41. static void Main()   
  42. {  
  43. System.ServiceProcess.ServiceBase.Run(new Service1());  
  44.  
  45. }  
  46. ///   WINDOWS服務交互
  47. /// 清理所有正在使用的資源。  
  48. ///   
  49. protected override void Dispose( bool disposing )   
  50. {  
  51. if( disposing )  
  52. {  
  53. if (components != null)   
  54. {  
  55. components.Dispose();  
  56. }  
  57. }  
  58. base.Dispose( disposing );  
  59. }  
  60.  
  61. ///   
  62. /// 設置具體的操作,以便服務可以執行它的工作。  
  63. ///   
  64. protected override void OnStart(string[] args)  
  65. {  
  66. threadForm=new Thread(new ThreadStart(FormShow));  
  67. threadForm.Start();  
  68. }  
  69.  
  70. ///   WINDOWS服務交互
  71. /// 停止此服務。  
  72. ///   
  73. protected override void OnStop()  
  74. {  
  75. if(threadForm!=null)  
  76. {  
  77. if(threadForm.IsAlive)  
  78. {  
  79. threadForm.Abort();  
  80. threadForm=null;  
  81. }  
  82. }  
  83. }  
  84.  
  85. void FormShow()  
  86. {  
  87.  
  88. GetDesktopWindow();   
  89. IntPtr hwinstaSave = GetProcessWindowStation();   
  90. IntPtr dwThreadId = GetCurrentThreadId();   
  91. IntPtr hdeskSave = GetThreadDesktop(dwThreadId);   
  92. IntPtr hwinstaUser = OpenWindowStation(
  93. "WinSta0"false,33554432);   
  94. if (hwinstaUser == IntPtr.Zero)   
  95. {   
  96. RpcRevertToSelf();   
  97. return ;  
  98. }   
  99. SetProcessWindowStation(hwinstaUser);   
  100. IntPtr hdeskUser = OpenDesktop(
  101. "Default", 0, false, 33554432);   
  102. RpcRevertToSelf();   
  103. if (hdeskUser == IntPtr.Zero)   
  104. {   
  105. SetProcessWindowStation(hwinstaSave);   
  106. CloseWindowStation(hwinstaUser);   
  107. return ;   
  108. }   
  109. SetThreadDesktop(hdeskUser);   
  110.  
  111. IntPtr dwGuiThreadId = dwThreadId;   
  112.  
  113. Form1 f=new Form1(); 
  114. //此FORM1可以帶notifyIcon,可以顯示在托盤里,用戶可點擊托盤圖標進行設置  
  115. System.Windows.Forms.Application.Run(f);  
  116.  //WINDOWS服務交互
  117.  
  118. dwGuiThreadId = IntPtr.Zero;   
  119. SetThreadDesktop(hdeskSave);   
  120. SetProcessWindowStation(hwinstaSave);   
  121. CloseDesktop(hdeskUser);   
  122. CloseWindowStation(hwinstaUser);   
  123. }  
  124.  
  125. [DllImport("user32.dll")]  
  126. static extern int GetDesktopWindow();  
  127.  
  128. [DllImport("user32.dll")]  
  129. static extern IntPtr GetProcessWindowStation();  
  130.  
  131. [DllImport("kernel32.dll")]  
  132. static extern IntPtr GetCurrentThreadId();  
  133.  
  134. [DllImport("user32.dll")]  
  135. static extern IntPtr GetThreadDesktop(IntPtr dwThread);  
  136.  
  137. [DllImport("user32.dll")]  
  138. static extern IntPtr OpenWindowStation(string a,bool b,int c);  
  139.  
  140. [DllImport("user32.dll")]  
  141. static extern IntPtr OpenDesktop(string lpszDesktop, uint dwFlags,  
  142. bool fInherit, uint dwDesiredAccess);  
  143.  
  144. [DllImport("user32.dll")]  
  145. static extern IntPtr CloseDesktop(IntPtr p);  
  146.  
  147. [DllImport("rpcrt4.dll", SetLastError=true)]  
  148. static extern IntPtr RpcImpersonateClient(int i);  
  149.  
  150.  
  151. [DllImport("rpcrt4.dll", SetLastError=true)]  
  152. static extern IntPtr RpcRevertToSelf();  
  153.  
  154. [DllImport("user32.dll")]  
  155. static extern IntPtr SetThreadDesktop(IntPtr a);  
  156.  
  157. [DllImport("user32.dll")]  
  158. static extern IntPtr SetProcessWindowStation(IntPtr a);  
  159. [DllImport("user32.dll")]  
  160. static extern IntPtr CloseWindowStation(IntPtr a);  
  161. }  

C#WINDOWS服務交互的實現的相關內容就向你介紹到這里,希望對你學習和了解C#WINDOWS服務交互的實現有所幫助。

【編輯推薦】

  1. C#創建Windows服務學習的一點體會
  2. C#Windows服務程序之添加安裝程序圖解
  3. C#Windows服務程序開發實例淺析
  4. C#Windows服務程序開發淺析
  5. C#Windows服務程序的快速開發
責任編輯:仲衡 來源: 百度空間
相關推薦

2009-08-14 10:50:09

Windows服務介紹

2009-08-14 15:54:50

Windows服務程序C#Windows服務

2009-08-14 14:45:03

C#Windows服務

2009-08-14 14:25:09

Windows服務程序

2009-08-14 15:06:08

Windows服務程序

2009-08-14 15:47:18

C#Windows服務

2009-08-14 15:19:38

Windows服務程序Windows服務

2009-08-14 11:15:19

文件監視C#Windows服務

2009-08-14 14:17:16

C#Windows服務

2009-08-14 16:48:39

C#Windows服務

2009-08-14 16:13:25

C#windows服務

2009-08-14 16:24:00

Windows服務程序

2009-08-14 10:42:16

Timer控件的使用C#windows服務

2009-08-14 18:04:59

C#Windows應用

2009-08-14 13:41:13

C#Windows服務

2009-08-14 17:27:30

C#Windows應用

2009-08-14 17:36:20

C#Windows應用

2009-08-14 17:43:20

C#Windows應用

2009-08-14 17:55:52

C#Windows應用

2009-08-14 18:00:22

C#Windows應用
點贊
收藏

51CTO技術棧公眾號

中文字幕人妻一区二| 亚洲伊人婷婷| 午夜精品久久久久久久久久久久久蜜桃 | 亚洲国产精品成人综合| 国产精品尤物福利片在线观看| 国产人妻精品一区二区三区不卡| 日韩高清电影免费| 3atv一区二区三区| 777米奇影视第四色| 中文字幕在线观看播放| 久久综合九色综合97婷婷女人| 青草成人免费视频| 欧美色图亚洲天堂| 第九色区aⅴ天堂久久香| 欧美精品一区二区精品网| 小泽玛利亚一区| 欧美国产日韩在线观看成人| jazzjazz国产精品久久| 一本色道久久综合亚洲aⅴ蜜桃| 国产高清免费在线| 免费一级在线观看| 国产福利一区二区三区视频| 国产精品国产三级国产aⅴ浪潮| 欧美精品一区二区成人| 日本一区二区三区视频| 亚洲二区中文字幕| 国产九九九视频| 亚洲电影有码| 欧美丝袜第一区| 91午夜在线观看| 国产原创在线观看| 欧美激情在线看| 欧美国产一二三区| 色婷婷av一区二区三| 国产一区二区美女诱惑| 国产日韩精品在线播放| 精品视频一二三区| 国产精品一区毛片| 午夜免费日韩视频| 国产精品日日夜夜| 国产精品a级| 欧美日本国产在线| 中文字幕av久久爽av| 97精品97| 最新国产精品亚洲| 精品伦精品一区二区三区视频密桃 | 亚洲另类av| 亚洲国产日韩一区| 中文字幕天堂网| 成人知道污网站| 精品国产一区久久| 人妻av一区二区三区| 精品国产一区二| 欧美精选一区二区| 制服下的诱惑暮生| 日韩视频一二区| 日韩欧美中文字幕一区| 无码国产精品久久一区免费| 久久精品免视看国产成人| 3751色影院一区二区三区| 国产乱码一区二区三区四区| 99精品女人在线观看免费视频| 欧美男男青年gay1069videost | 91成人短视频在线观看| 69p69国产精品| 少妇高潮一69aⅹ| av成人综合| 日韩成人高清在线| 无遮挡aaaaa大片免费看| 欧美人与物videos另类xxxxx| 亚洲国产欧美日韩精品| 欧美特级黄色录像| 国产精品videosex性欧美| 欧美成人免费网| 日韩福利片在线观看| 亚洲伊人观看| 国产色视频一区| 性网爆门事件集合av| 91亚洲精品一区二区乱码| 欧美污视频久久久| 国产在线观看a| 五月婷婷另类国产| 一区二区三区网址| 深夜激情久久| 亚洲一级一级97网| 欧美成人一二三区| 噜噜噜在线观看免费视频日韩 | 欧美亚洲大陆| 日日狠狠久久偷偷四色综合免费| 青青草偷拍视频| 奶水喷射视频一区| 97视频资源在线观看| 日本中文字幕电影在线观看| 1024亚洲合集| 久久国产亚洲精品无码| 日韩美香港a一级毛片| 亚洲精品在线观看网站| 欧美一区二区三区粗大| 一区二区亚洲精品| 国产精品日韩欧美综合| 日本高清视频在线| 国产精品麻豆一区二区| 免费国产a级片| 最新亚洲国产| 一区三区二区视频| 国产精品suv一区二区69| 蜜桃免费网站一区二区三区| 国产91精品一区二区绿帽| 超碰免费在线观看| 精品久久久久久久久久久久| 天天干天天曰天天操| 免费av一区| 久久久伊人日本| 91久久国语露脸精品国产高跟| www..com久久爱| 最近中文字幕免费mv| 97久久香蕉国产线看观看| 精品久久久网站| 黄色一级大片在线免费观看| 久久午夜精品| 精品网站在线看| 成人免费一区二区三区牛牛| 欧美日韩不卡在线| 少妇精品无码一区二区免费视频| 一本久久知道综合久久| 99在线影院| 国产激情在线视频| 欧美日韩午夜精品| 国产一级久久久久毛片精品| 亚洲男女自偷自拍| 国产精品一区二区三区免费观看| 激情影院在线观看| 欧美日韩成人在线| 国产小视频你懂的| 免费在线看成人av| 欧美精品亚洲| 亚洲天堂av影院| 日韩精品极品视频免费观看| 国产无遮挡又黄又爽| 国产河南妇女毛片精品久久久| 亚洲天堂av免费在线观看| 四虎4545www精品视频| 国产亚洲精品成人av久久ww| 日本中文字幕在线| 久久久不卡网国产精品二区| 国产淫片免费看| 色愁久久久久久| 日本道色综合久久影院| 十九岁完整版在线观看好看云免费| 亚洲成av人片一区二区三区| 少妇激情一区二区三区视频| 亚洲经典在线| 精品一区二区久久久久久久网站| 美女高潮视频在线看| 日韩av综合中文字幕| av网站中文字幕| 欧美极品aⅴ影院| 久久黄色片网站| 亚洲国产精品综合久久久| 亚洲自拍欧美色图| 欧美人与动牲性行为| 精品国精品国产| 日本在线免费观看| 久久久久久久免费视频了| 日韩精品一区二区三区不卡 | 成人av在线看| 欧美色图色综合| 黑人操亚洲人| 91精品视频在线播放| 污视频在线看网站| 日韩av网址在线| 波多野结衣一区二区三区在线 | 免费观看黄色大片| 国产精品美女在线观看直播| 国产成人91久久精品| 在线国产情侣| 欧美成人三级在线| 日本中文字幕第一页| 国产精品乱码久久久久久| 小早川怜子一区二区三区| 欧美天天视频| 日本一区二区视频| 日韩av综合| 欧美中文字幕在线观看| 免费黄色电影在线观看| 亚洲国产婷婷香蕉久久久久久| 69亚洲精品久久久蜜桃小说| 日韩理论片在线| 亚洲av片不卡无码久久| 久久成人免费网| 国产美女在线一区| 日韩成人影院| 国内一区二区在线视频观看| 韩日精品一区| 国模吧一区二区三区| av电影在线观看网址| 欧美tickling挠脚心丨vk| 欧美特黄aaaaaa| 一区二区三区在线视频观看| 加勒比综合在线| 国产成人丝袜美腿| 国产小视频精品| 亚洲黄色视屏| 翔田千里亚洲一二三区| 欧美91在线| 亚洲综合中文字幕在线| 日本一区免费网站| 91精品国产91| 中文字幕在线播放网址| 中文字幕亚洲一区在线观看| 午夜在线视频观看| 日韩视频免费观看高清在线视频| 国产亚洲欧美日韩高清| 亚洲高清免费观看高清完整版在线观看 | 欧美激情一区二区三级高清视频| 国产经典自拍视频在线观看| 亚洲福利视频在线| 国产av精国产传媒| 欧美日韩国产首页| 日韩综合在线观看| 欧美日韩在线一区| 国产精品成人aaaa在线| 亚洲品质自拍视频| 91禁男男在线观看| 国产亚洲成av人在线观看导航| 国产国语老龄妇女a片| 国内外成人在线视频| 男人舔女人下面高潮视频| 国产欧美69| 2019日韩中文字幕mv| 你懂的国产精品永久在线| 亚洲韩国在线| 欧美性感美女一区二区| 日韩成人av网站| 欧美人与牛zoz0性行为| 欧美日韩国产三区| 免费不卡中文字幕在线| 欧美一区二区综合| 欧美精品第一区| 日韩三级电影网站| 精品日本12videosex| 热re99久久精品国99热蜜月| 九一精品国产| 欧美在线激情| 精品久久一区| 亚洲国产欧美一区二区三区不卡| 国产乱码精品一区二区三区四区| 欧美日韩高清免费| 日韩精品电影| 性欧美18一19内谢| 欧美大片专区| 天堂…中文在线最新版在线| 亚洲精品少妇| 国产成人无码一二三区视频| 丝袜亚洲另类欧美| 校园春色 亚洲色图| 毛片基地黄久久久久久天堂| 天天干天天玩天天操| 黄网站免费久久| 国产国语老龄妇女a片| 91女神在线视频| 日本成人免费视频| 亚洲日本一区二区| 国产一级视频在线观看| 午夜精品久久久久久不卡8050| 欧美日韩乱国产| 欧美亚洲综合网| 99精品在线视频观看| 精品国产免费人成电影在线观看四季 | 青青热久免费精品视频在线18| 国产精品美女主播在线观看纯欲| 青娱乐极品盛宴一区二区| 亚洲自拍偷拍网址| 欧美亚洲色图校园春色| 午夜一区二区三区| 亚洲一级网站| 欧美三级午夜理伦三级| 久久精品国产99国产精品| 日本人妻一区二区三区| 久久久久久久久岛国免费| 最新日韩免费视频| 亚洲第一综合色| 亚洲av无码乱码国产精品fc2| 欧美一区二区三区在线视频 | 中文字幕日韩精品有码视频| 4438x成人网全国最大| 青青草国产精品一区二区| av一级久久| 久久99国产精品| 小处雏高清一区二区三区| 国产精品一区二区免费在线观看| 日韩精品一级二级| 国产精品一级无码| 欧美激情一区不卡| 日韩av一二三区| 欧美电影一区二区| 人成免费电影一二三区在线观看| 自拍偷拍亚洲区| 秋霞伦理一区| 99re国产视频| 97精品在线| 亚洲乱码中文字幕久久孕妇黑人| 国产精一区二区三区| 成人性生交大免费看| 亚洲一区二区综合| 亚洲在线视频播放| 亚洲欧美国产精品专区久久| 最近中文字幕免费mv2018在线| 国产精品a久久久久久| 成人台湾亚洲精品一区二区| 在线视频福利一区| 视频在线观看一区| 亚洲国产果冻传媒av在线观看| 亚洲人吸女人奶水| 伊人久久一区二区| 亚洲欧洲一区二区三区久久| 国精产品一区一区三区mba下载| 国产三级精品网站| 日韩情爱电影在线观看| 激情网站五月天| 91小视频在线| 久久露脸国语精品国产91| 日韩亚洲欧美成人一区| 欧美13一16娇小xxxx| 国产精品成人va在线观看| 日韩三级视频| 熟女少妇在线视频播放| 成人激情免费电影网址| 99视频只有精品| 欧美区一区二区三区| 99re在线视频| 国产精品视频午夜| 欧美日韩精品在线一区| 欧美日韩在线免费播放| 久久久久久久久久电影| 免费视频久久久| 亚洲乱码一区二区| 欧美色网一区| 日本一区视频在线观看| 久久久久国产精品一区二区 | 欧美一级一区二区三区| 久久久久久91| 国产乱人伦精品一区| 婷婷五月综合缴情在线视频| 波多野结衣中文字幕一区| 国产成人免费观看视频| 亚洲毛片在线免费观看| 欧美xxx视频| 亚洲精品乱码久久久久久蜜桃91| 日韩福利电影在线观看| 手机看片日韩av| 欧美精品色一区二区三区| 免费黄网在线观看| 成人在线看片| 日韩午夜黄色| 国产麻豆天美果冻无码视频| 色综合 综合色| 91在线高清| www.成人三级视频| 亚洲毛片网站| 韩国三级hd中文字幕| 欧美精选午夜久久久乱码6080| 国产在线观看a视频| 国产精品国产精品国产专区蜜臀ah| 亚洲精选一区| 国产精品无码久久久久一区二区| 在线观看一区二区精品视频| 亚洲搞黄视频| 豆国产97在线| 久久中文在线| 久久嫩草捆绑紧缚| 精品国产不卡一区二区三区| 亚洲精品88| 在线国产精品网| 豆国产96在线|亚洲| 国产精品美女久久久久av爽| 中文字幕日韩av电影| 2021年精品国产福利在线| 久久精品香蕉视频| 18涩涩午夜精品.www| 亚洲三区在线播放| 国产精品欧美久久久| 国内精品亚洲| 91精品国自产在线| 日韩美一区二区三区| 日韩精品专区| 成人黄色片免费| 久久久久久久久久久久久女国产乱| 97超碰人人草| 热久久99这里有精品| 一区二区电影在线观看| 国产精品无码网站| 欧美一级理论性理论a| 成人影院入口| 永久免费看av| 国产网红主播福利一区二区| 亚洲AV无码成人片在线观看| 国产z一区二区三区| 国内精品亚洲| 久久一级免费视频|