精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲美女www午夜| 欧美日韩国产中字| 96久久精品| 国产亚洲第一页| 加勒比久久高清| 色94色欧美sute亚洲线路一ni| 色综合久久av| 国产99999| a91a精品视频在线观看| 国产一区二区三区在线免费观看| 蜜臀av免费观看| 性欧美video高清bbw| 97se亚洲国产综合自在线| 国产精品久久久久久久电影| 国产这里有精品| 亚洲精品一级二级三级| 91精品久久久久久蜜臀| 国产极品尤物在线| 日本视频在线免费观看| av在线综合网| 成人国产精品日本在线| 男女啊啊啊视频| 天天综合精品| 亚洲欧美在线免费观看| 在线播放av网址| 久久精品xxxxx| 天天亚洲美女在线视频| 国产一区一区三区| 国产精品影院在线| a在线欧美一区| 亚洲自拍欧美色图| 日本成人一级片| 黑人一区二区| 久久久精品国产网站| 欧美多人猛交狂配| 国产精品久久久久久久久久白浆 | 欧美暴力调教| 亚洲国产三级在线| 国产三级中文字幕| av在线免费一区| 91免费在线看| 精品一区2区三区| 高h调教冰块play男男双性文| 老司机精品视频在线| 日产精品久久久一区二区福利| 久久久久亚洲AV| 伊人久久大香线| 俺也去精品视频在线观看| 九九九视频在线观看| 国产精品一区二区99| 亚洲男人av在线| 香蕉视频黄色在线观看| 日本国产精品| 日韩电影免费观看中文字幕| 日韩aaaaa| 久久国产精品色av免费看| 精品久久久久久最新网址| 爱情岛论坛亚洲自拍| 亚洲综合伊人| 91精品国产高清一区二区三区| 精品999在线| 国产情侣一区二区三区| 欧美视频在线一区二区三区| 91看片在线免费观看| 美女色狠狠久久| 欧美日韩久久久| 尤物国产在线观看| 综合久久伊人| 日韩午夜精品电影| 国产国语老龄妇女a片| 国产三级精品三级在线观看国产| 日韩免费视频一区| 毛茸茸free性熟hd| 亚洲另类av| 一区二区国产精品视频| 影音先锋男人看片资源| 综合一区在线| 韩日精品中文字幕| 亚洲成人第一网站| 精一区二区三区| 国产高清不卡av| 国产精品无码天天爽视频| 国产成人精品免费在线| 九九九热999| 国产98在线| 18欧美乱大交hd1984| 国产精品久久国产| 日韩深夜视频| 欧美日韩成人综合天天影院| a级大片免费看| 清纯唯美亚洲经典中文字幕| 亚洲人成电影网站色| 一级性生活免费视频| 欧美激情偷拍| 国产精品69av| 国产99视频在线| 92精品国产成人观看免费 | 2023国产精品久久久精品双| 久久久久免费视频| 日韩手机在线视频| 国产伦精一区二区三区| 免费电影一区| 日本资源在线| 欧美天堂一区二区三区| 午夜影院免费观看视频| 国产不卡一区| 高清一区二区三区四区五区| 中文字幕一区二区人妻| av激情亚洲男人天堂| 在线天堂一区av电影| 91蜜桃在线视频| 亚洲成人自拍网| 久热精品在线播放| 欧美福利在线播放网址导航| 久久精品美女视频网站| 啦啦啦免费高清视频在线观看| 精品无码三级在线观看视频| 国内精品二区| a天堂中文在线官网在线| 一本一道综合狠狠老| 香蕉视频在线观看黄| 精品久久久中文字幕| 国产69精品久久久| 99在线观看精品视频| 亚洲国产成人自拍| 自慰无码一区二区三区| 国内精品视频| 色偷偷9999www| 国产精品一区二区三区四| 日本中文字幕一区| 国产区二精品视| 欧美黑人猛交的在线视频| 欧美日韩卡一卡二| 成人激情五月天| 国产精品呻吟| 国产私拍一区| 国产精品186在线观看在线播放| 欧美男人的天堂一二区| 免费看日本黄色片| 久久在线91| 久久久婷婷一区二区三区不卡| 波多野结衣在线高清| 欧美一区二视频| 日本中文在线视频| 精品一区二区免费| 一区二区在线观看网站| 国产成人福利夜色影视| 亚洲日本欧美日韩高观看| a v视频在线观看| 99久久精品免费| 毛片在线视频播放| 精品综合久久88少妇激情| 欧美黄色成人网| 国产精品伦理一区| 国产精品激情偷乱一区二区∴| 国产免费视频传媒| 国产剧情一区| 国产精品第一页在线| 日韩大胆视频| 91久久久免费一区二区| 中文字幕欧美激情极品| 理论电影国产精品| 香蕉视频在线网址| 2020国产精品极品色在线观看| 操91在线视频| 亚洲精品久久久久久久久久久久久久| 亚洲风情在线资源站| 国模私拍在线观看| 国产又粗又猛视频| 精品一区二区三区的国产在线播放 | 欧美大片网站| 久久久99久久精品女同性| 国产情侣av在线| 亚洲国产综合在线| 中文字幕av观看| 三级一区在线视频先锋| 一本一道久久a久久综合精品| 亚洲日日夜夜| 久久久久中文字幕| 黄色毛片在线观看| 伊人影院中文字幕| 好操啊在线观看免费视频| 亚洲高清不卡在线| 亚洲熟妇一区二区三区| 视频在线观看91| 熟女视频一区二区三区| 成人在线超碰| 国产精品草莓在线免费观看 | 久青草国产在线| 欧美午夜不卡在线观看免费| 亚洲人与黑人屁股眼交| 成人午夜视频在线| caopor在线视频| 午夜影院欧美| 国产精品一区二区三区四区五区| 日韩脚交footjobhd| www.亚洲成人| 日韩一级中文字幕| 欧美少妇性性性| 九九热国产视频| 中文字幕av一区二区三区免费看 | 欧美三级一区| 全球成人中文在线| caopo在线| 一区二区三区视频免费| 免费看av毛片| 欧美二区乱c少妇| 影音先锋亚洲天堂| 亚洲免费观看高清在线观看| 女~淫辱の触手3d动漫| 国产在线播放一区二区三区| 国产综合免费视频| 激情久久久久久| 日韩在线播放av| 中文字幕在线有码| 国产亲近乱来精品视频| 欧美夫妇交换xxx| 国产在线精品国自产拍免费| 午夜视频在线瓜伦| 99精品视频免费全部在线| 中文字幕第50页| 欧美三级伦理在线| 久久99精品久久久久子伦| 日韩成人在线看| 国产精品专区一| 欧美成人黑人| 欧美亚洲午夜视频在线观看| 色操视频在线| 日韩专区在线观看| 国内av一区二区三区| 亚洲成人久久网| 国产黄色一级大片| 欧美卡1卡2卡| 中文字幕一级片| 色噜噜狠狠一区二区三区果冻| 日韩毛片在线播放| 亚洲午夜久久久久久久久电影院 | 久久要要av| 日本不卡一区| 亚洲福利天堂| 久久精品日产第一区二区三区乱码 | 一区二区三区四区在线观看国产日韩 | 欧美极品少妇xxxxⅹ裸体艺术| 免费日本一区二区三区视频| 中日韩午夜理伦电影免费| 嫩草在线播放| 亚洲美女又黄又爽在线观看| 视频午夜在线| 亚洲精品美女免费| 色婷婷av一区二区三| 亚洲精品一区在线观看| 亚洲精品久久久久久久久久| 精品久久久久av影院 | 日韩毛片在线看| 午夜影院在线视频| 日韩精品一二三四区| 你懂的视频在线观看| 亚洲精品一卡二卡| 欧美少妇一级片| 欧美freesextv| 亚洲美女网站18| 欧美电影免费观看高清| 伊人久久大香线蕉成人综合网 | 韩国黄色一级大片| 伊人青青综合网| 日本aa在线观看| 99国产成+人+综合+亚洲欧美| 欧美,日韩,国产在线| 午夜在线精品偷拍| 午夜免费一区二区| 精品亚洲porn| 好吊操视频这里只有精品| 成人午夜电影小说| 法国伦理少妇愉情| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日本黄色免费观看| 久久久久久久久久久电影| 国产午夜精品久久久久久久久| 中文字幕色av一区二区三区| 欧美色图亚洲视频| 亚洲成人tv网| 波多野结衣在线电影| 91麻豆精品国产91久久久使用方法| jizz国产视频| 亚洲欧美色图片| 欧美jizz18hd性欧美| 欧美激情在线视频二区| 欧美一级鲁丝片| 91精品久久久久| 久久97精品| 亚洲欧洲精品在线| 在线观看一区视频| 色综合天天色综合| 国产.精品.日韩.另类.中文.在线.播放| 免费的av网站| 亚洲欧洲性图库| 国产毛片aaa| 91精品国产aⅴ一区二区| 亚洲色图狠狠干| 久久人人爽亚洲精品天堂| a级片免费在线观看| 国产精品视频中文字幕91| 日本网站免费观看| 亚洲日本韩国一区| 最新中文字幕一区| 欧美一二三区在线观看| 欧美挠脚心网站| 欧美精品一区二区三区国产精品| gay欧美网站| av免费精品一区二区三区| 精品国产午夜| 国产精品裸体瑜伽视频| 久久99精品久久久| 免费中文字幕av| 亚洲宅男天堂在线观看无病毒| 中文字幕乱伦视频| 亚洲成成品网站| 中文字幕有码在线视频| 国产精品国产福利国产秒拍 | 国产精品精品软件男同| 欧美日韩亚洲视频| 黄色av小说在线观看| 日韩一区二区三区xxxx| 666av成人影院在线观看| 激情一区二区三区| 一区二区三区国产精华| 向日葵污视频在线观看| 污污视频在线看| 青青草原一区二区| 国产一区二区三区不卡av| 五月天色婷婷综合| 麻豆91精品视频| 成人免费无遮挡无码黄漫视频| 午夜精品久久久久久不卡8050| 精品久久久久成人码免费动漫| 中文字幕亚洲自拍| 全球最大av网站久久| 日本精品一区二区| 老司机一区二区三区| 欧美无人区码suv| 亚洲电影一区二区三区| 丰满人妻一区二区三区四区53| 久久精品青青大伊人av| 99tv成人影院| 亚洲午夜精品一区二区三区| 日本最新不卡在线| 亚洲AV无码成人精品区明星换面| 一本色道久久加勒比精品 | 成人黄色在线看| 久久一区二区三| 精品国产免费一区二区三区四区 | 色呦哟—国产精品| 亚洲欧洲日本精品| 国产精品成人免费在线| 国产精品嫩草影院桃色| 久久综合伊人77777蜜臀| 国产精品国产三级在线观看| 懂色av粉嫩av蜜臀av| 国产一区久久久| 国产精品久久久久久久精| 欧美一区二区三区免费观看视频| 伊人影院在线视频| 国产精品美女xx| 国产日韩亚洲| 99久久久无码国产精品衣服| 欧美日韩一级二级| 中文字幕中文字幕在线中高清免费版| 亚洲综合国产精品| 激情五月***国产精品| 波多野结衣视频播放| 91黄色小视频| 国产1区在线| 超碰97网站| 老鸭窝毛片一区二区三区| 性爱在线免费视频| 精品精品欲导航| 一个人看的www视频在线免费观看| 亚洲成人自拍| 国产精品白丝av| 午夜精品久久久久久久久久久久久蜜桃| 亚洲人成自拍网站| 欧美激情三级| 一本大道熟女人妻中文字幕在线| 国产精品美女久久久久高潮| 狠狠综合久久av一区二区| 中文字幕日韩av资源站| 欧美男人天堂网| 久久福利视频导航| 日韩欧美国产大片| 亚洲欧美在线精品| 亚洲va欧美va人人爽| 3d成人动漫在线| 国产日韩欧美一区二区| 免费人成网站在线观看欧美高清| 麻豆精品一区二区三区视频| 亚洲欧美一区二区精品久久久| 国产精品777777在线播放| 欧美爱爱视频免费看| 专区另类欧美日韩| 日本天堂在线|