一种开发软件的新思路,给Web页面穿个马甲,用web页面做软件UI,用C#(或者C++等其它语言)代码做功能
喜欢就点一下“推荐”,给我点写下去的动力,谢谢!
声明:
本文版权归作者碧血黄沙.NET所有,欢迎转载,但转载必须保留以下版权信息,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
作者:碧血黄沙.net
出处:博客园http://www.cnblogs.com/wjj/archive/2010/02/25/1673157.html
你可以免费使用或修改提供的源代码,但请保留源代码中的版权信息。
本人继仿QQMusic、仿360杀毒、仿QQRadio播放器之后,最近疯狂迷恋上了“金山网盾”的界面。老在思考如何用C#做出象“金山网盾”那样的界面。
想模仿它,那就先研究它。打开“金山网盾”的安装目录,发现有一个webui文件夹,哈哈,真爽,软件所有的界面资源全在这里了,我就以webui\kwebshield\main.htm文件为例子说明一下吧!
直接在浏览器打开main.htm,发现和软件主界面一模一样,嘿嘿,终于找到了。但点击上面的按钮均无反应,看看WEB页面的代码如下:
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5 <title>金山网盾首页</title>
6 <link rel="stylesheet" type="text/css" href="../public/css/common.css">
7 <link rel="stylesheet" type="text/css" href="style/index/index.css">
8 <script type="text/javascript" src="../public/lib/jquery.js"></script>
9 <script type="text/javascript" src="js/index/js_loader.js"></script>
10 </head>
11 <body ondrag="return false;" kcore="OnKWebApp" onselectstart="return false;">
12 <div id="DivMain">
13 <div id="DivTitle">
14 <div id="DivSystemBtn">
15 <img src="images/index/icob1_normal.gif"/>
16 <img src="images/index/icob2_normal.gif"/>
17 <img src="images/index/icob3_normal.gif"/>
18 </div>
19 <div id="DivMenuFeedBack">
20 <a href="javascript:void(0);" hidefocus="true"><img src="images/index/fankui_normal.gif"/></a>
21 </div>
22 </div>
23 <div id="DivMenu">
24 <div id="DivSafeStatus"><img id="ImgSafeSta" src="images/index/anquan.jpg" /></div>
25 <div id="DivMenuMon"><img class="MenuBtn" id="ImgMenuMon" src="images/index/jiankong_on.jpg"/></div>
26 <div id="DivMenuSet"><img class="MenuBtn" id="ImgMenuSet" src="images/index/shezhi_normal.jpg"/></div>
27 <div id="DivMenuBkList"><img class="MenuBtn" id="ImgMenuBkList" src="images/index/mingdan_normal.jpg"/></div>
28 <div id="DivMenuLog"><img class="MenuBtn" id="ImgMenuLog" src="images/index/chakan_normal.jpg"/></div>
29 </div>
30 <div id="DivContent">
31 <div id="DivMon">
32 <div id="DivTextSta">金山网盾正在保护您的上网安全</div>
33 <div id="DivStaTab">
34 <table>
35 <tr>
36 <td width="290" height="55" id="sta_item_1" class="sta_item">启用浏览器保护
37 <p style="color:#000;font-size:12px;">防止浏览网页时中毒或者上当受骗</p></td>
38 <td width="50" class="sta_text" id="bStartKWS">已启用</td>
39 <td width="72"><span id="BtnOpenBrowserMon" class="BtnStart">关闭</span></td>
40 </tr>
41 <tr>
42 <td height="65" id="sta_item_2" class="sta_item">启用搜索引擎保护
43 <p style="color:#000;font-size:12px;">保护百度、Google、Bing、搜狗等搜索安全</p></td>
44 <td class="sta_text" id="bStartKWS4Search">已启用</td>
45 <td><span id="BtnOpenSearchMon" class="BtnStart">关闭</span></td>
46 </tr>
47 <tr>
48 <td height="50" id="sta_item_2" class="sta_item">主页保护
49 <p style="color:#000;font-size:12px;" id="CurIeIndex">防止IE主页被恶意窜改</p></td>
50 <td class="sta_text" id="bStartIEProt">已锁定</td>
51 <td><span id="BtnOpenProtIE" class="BtnStart">锁定</span></td>
52 </tr>
53 </table>
54 </div>
55 <div id="DivLanJie">
56 <table>
57 <tr>
58 <td>保护天数:</td>
59 <td><span id="SpanProtDay">0</span> 天</td>
60 <td></td>
61 </tr>
62 <tr>
63 <td>拦截木马病毒总数:</td>
64 <td width="50" align="center"><a href="javascript:void(0);" title="查看日志" id="SpanHoldCount" hidefocus="true" >0</a></td>
65 <td style="padding-top:3px;padding-left:10px;"><a href="javascript:void(0);" hidefocus="true" title="清空所有拦截记录" id="BtnResetHoldCount" >清零</a> </td>
66 </tr>
67 </table>
68 <table style="margin-top:50px;">
69 <tr>
70 <td colspan="2">病毒库版本:<span id="SpanLibVer">查询中...</span></td>
71 </tr>
72 <tr>
73 <td width="180">程序版本:<span id="SpanVersionVal">查询中...</span></td>
74 <td align="center"><span id="BtnUpdate"><a href="javascript:void(0);" hidefocus="true" id="notify_call_update">立即升级</a></span></td>
75 </tr>
76 </table>
77 </div>
78 <div id="Frame4Report">
79 <!--<iframe src="http://labs.duba.net/kws/kwsad/kwsad.html" frameborder="no" border="0" width="200" height="168" allowtransparency="true"></iframe>-->
80 <iframe src="" id="BOBAO" frameborder="no" border="0" width="209" height="168" allowtransparency="true"></iframe>
81 </div>
82 </div>
83 <div id="DivSet" style="display:none;">
84 <div class="DivSetMenu">
85 <div id="BaseSetMenu" class="BaseSetMenu">
86 <table>
87 <tr>
88 <td width="5"><img src="images/index/table_button_left.jpg"/></td>
89 <td width="72" class="menu_on">基本设置</td>
90 <td width="3"><img src="images/index/table_button_right.jpg"/></td>
91 </tr>
92 </table>
93 </div>
94 <div id="BaseSetMenu_1" class="BaseSetMenu" style="display:none;">基本设置</div>
95 <div id="CustomSetMenu" class="CustomSetMenu" style="display:none;">
96 <table>
97 <tr>
98 <td width="5"><img src="images/index/table_button_left.jpg"/></td>
99 <td width="112" class="menu_on">自定义浏览器保护</td>
100 <td width="3"><img src="images/index/table_button_right.jpg"/></td>
101 </tr>
102 </table>
103 </div>
104 <div id="CustomSetMenu_1" class="CustomSetMenu">自定义浏览器保护</div>
105 <div id="ProtIEMenu" class="ProtIEMenu" style="display:none;">
106 <table>
107 <tr>
108 <td width="5"><img src="images/index/table_button_left.jpg"/></td>
109 <td width="112" class="menu_on">IE首页锁定</td>
110 <td width="3"><img src="images/index/table_button_right.jpg"/></td>
111 </tr>
112 </table>
113 </div>
114 <div id="ProtIEMenu_1" class="ProtIEMenu">IE首页锁定</div>
115 </div>
116 <div id="DivBaseSetContent" >
117 <div id="DivStepFirst">
118 <table>
119 <tr>
120 <td width="285">
121 <input type='checkbox' id="ChkStartTray"/>
122 <label for="ChkStartTray">启动托盘图标</label>
123 </td>
124 <td>
125 <input type='checkbox' id="ChkStartTrayFlash" disabled="true"/>
126 <label for="ChkStartTrayFlash">启动托盘闪动提示</label>
127 </td>
128 </tr>
129 </table>
130 </div>
131 <div id="DivStepSecond">
132 <table>
133 <tr>
134 <td width="175">
135 <input type='checkbox' id="ChkStartBox"/>
136 <label for="ChkStartBox">开启闪框提醒</label>
137 </td>
138 <td width="175">
139 <input type='checkbox' id="ChkRedBox" disabled="true"/>
140 <label for="ChkRedBox">仅危险时闪框</label>
141 </td>
142 </tr>
143 </table>
144 <table style="margin-top:10px;">
145 <tr>
146 <td width="85">闪烁时间:</td>
147 <td width="88">
148 <input type='radio' id="RadTimeShort" name="BoxTimeType" value="1">
149 <label for="RadTimeShort">较短</label>
150 </td>
151 <td width="107">
152 <input type='radio' id="RadTimeNormal" name="BoxTimeType" value="3">
153 <label for="RadTimeNormal">正常</label>
154 </td>
155 <td>
156 <input type='radio' id="RadTimeLong" name="BoxTimeType" value="5">
157 <label for="RadTimeLong">较长</label>
158 </td>
159 </tr>
160 </table>
161 <table style="margin-top:10px;">
162 <tr>
163 <td width="85">颜色设置:</td>
164 <td>安全提醒:</td>
165 <td width="65"><div id="SafeColor" class="ColorSelect" selfparam="0"></div></td>
166 <td>钓鱼警告:</td>
167 <td width="65"><div id="FraudColor" class="ColorSelect" selfparam="1"></div></td>
168 <td>挂马警告:</td>
169 <td width="65"><div id="TrojanColor" class="ColorSelect" selfparam="2"></div></td>
170 </tr>
171 </table>
172 </div>
173 <div id="DivStep4">
174 <table>
175 <tr>
176 <td width="185" height="85" valign="center"><input type="checkbox" id="StartProtMouse" />
177 <label for="StartProtMouse">开启鼠镖保护</label>
178 <p style="color:#000;">(为鼠标所指链接给出安全提示)</p>
179 </td>
180 </tr>
181 </table>
182 </div>
183 <div id="DivStepThree" style="display:none;">
184 <table style="margin-top:5px;">
185 <tr>
186 <td width="175"><input type="checkbox" id="StartProtDownLoad" />
187 <label for="StartProtDownLoad">启动下载保护</label></td>
188 </tr>
189 </table>
190 <table style="margin-top:20px;margin-left:10px;">
191 <tr>
192 <td width="120"><input type="checkbox" id="ProtBrowser" />
193 <label for="ProtBrowser">浏览器</label></td>
194 <td width="120"><input type="checkbox" id="ProtXunLei" />
195 <label for="ProtXunLei">迅雷</label></td>
196 <td width="120"><input type="checkbox" id="ProtXuanFeng" />
197 <label for="ProtXuanFeng">QQ旋风</label></td>
198 <td width="120"><input type="checkbox" id="ProtFlashGet" />
199 <label for="ProtFlashGet">FlashGet</label></td>
200 </tr>
201 </table>
202 </div>
203 <div id="DivTipReboot">设置需浏览器重启才生效 </div>
204 <div id="DivSetDef" class="BtnComBig">恢复默认设置</div>
205 <div id="DivSetApply" class="BtnComMid">应 用</div>
206 </div>
207 <div id="DivCustomSetContent" style="display:none;">
208 <div id="CustomSetTip">金山网盾支持所有浏览器,但不能避免一些程序腾空而出,您可以在列表中添加需要保护的程序</div>
209 <!--模拟表格头部-->
210 <div id="DivCustomTabHead">
211 <table class="TabListHead">
212 <tr height="24">
213 <td width="450" style="padding-left:30px;">程序名</td>
214 <td width="3"><img src="images/index/rz_table_line.gif"/></td>
215 <td width="67" style="padding-left:30px;">删除</td>
216 </tr>
217 </table>
218 </div>
219 <!--带滚动条表格-->
220 <div id="DivScroCustomTab">
221 <table id="TabCustomList" class="TabCom">
222 </table>
223 <table style="display:none;">
224 <tr height="20" id="TrForCreateProtEXE">
225 <td width="450" style="padding-left:10px;"></td>
226 <td width="70"><a href="javascript:void(0);" class="DelProtExe">删除</a></td>
227 </tr>
228 </table>
229 </div>
230 <div id="DivLinkCustom"><a href="javascript:void(0);" hidefocus="true" title="只保护exe类型的可执行文件" id="BtnAddCustom">添加</a></div>
231 </div>
232 <!--改成IE首页保护-->
233 <div id="DivProtIESetContent" style="display:none;">
234 <div id="DivClock" class="DivClock">
235 <table style="margin-top:10px;">
236 <tr>
237 <td width="386">输入要锁定的网址:<input type="text" class="IeUrl" value="" id="IEIndexText" /></td>
238 <td><div id="BtnLockIE" class="BtnComMid">锁 定</div></td>
239 </tr>
240 </table>
241 <table style="margin-top:10px;">
242 <tr>
243 <td width="125" align="right"><span id="URLBlank" class="LinkBtn">使用空白页</span></td>
244 <td width="125" align="right"><span id="URLBaidu" class="LinkBtn">把<span id="svt_name_2" style="cursor:pointer;">baidu</span>设为首页</span></td>
245 <td width="125" align="right"><span id="URLSVT" class="LinkBtn">把<span id="svt_name" style="cursor:pointer;">hao123</span>设为首页</span></td>
246 </tr>
247 </table>
248 </div>
249 <!--专版情况下是用-->
250 <div id="DivSVTClock" class="DivClock" style="display:none;">
251 <table style="margin-top:10px;">
252 <tr>
253 <td width="460">您当前使用的是<span id="SVTNAME"></span>专版金山网盾,IE首页锁定能有效防止IE首页被恶意篡改</td>
254 </tr>
255 <tr>
256 <td width="460" height="35"><span id="TipSVT">已经将您的IE浏览器首页保护为: </span><a href="" target="_blank" hidefocus="true" id="SVTURL"></a></td>
257 </tr>
258 <tr>
259 <td align="right"><a href="javascript:void(0);" id="ChangeIndex" hidefocus="true">我要锁定其他首页</a></td>
260 </tr>
261 </table>
262 </div>
263 <div id="DivClockErr">
264 <table style="margin-top:10px;">
265 <tr>
266 <td height="25" style="color:#ff8040;font-weight:700;">如果锁定IE首页失败可以尝试以下解决方案:</td>
267 </tr>
268 <tr>
269 <td height="25">1.添加“强制屏蔽列表”。(遇到顽固恶意首页,请将它添加到列表中,直接屏蔽。)</td>
270 </tr>
271 <tr>
272 <td><table><tr><td>输入要屏蔽网址:<input type="text" id="InputPingBi" value="" /></td><td style="padding-left:20px;"><div id="BtnAddShield" class="BtnComMid">添 加</div></td></tr></table></td>
273 </tr>
274 <tr>
275 <td style="padding-top:10px;padding-bottom:5px;">
276 <div class="DivTabIE">
277 <table width="100%" id="TabIeIndex" style="table-layout:fixed;"></table>
278 <!--为克隆提供模板-->
279 <table style="display:none;">
280 <tr id="tr_ie_pb">
281 <td width="410"><nobr></nobr></td>
282 <td width="100%"><a href="javascript:void(0);" class="DelTabIe" hidefocus="true">删除</a></td>
283 </tr>
284 </table>
285 </div>
286 </td>
287 </tr>
288 <tr>
289 <td height="25"><a href="javascript:void(0);" id="UseKSfa" hidefocus="true">2.使用金山急救箱修复IE首页</a></td>
290 </tr>
291 <tr>
292 <td height="25"><a href="javascript:void(0);" hidefocus="true" id="ToFeedBack">3.向网盾研发人员反馈,请注意留下您的联系方式</a></td>
293 </tr>
294 </table>
295 </div>
296 </div>
297 </div>
298 <div id="DivBkList" style="display:none;" >
299 <div class="DivSetMenu">
300 <div id="BkListMenu" class="CLSBkListMenu">
301 <table>
302 <tr>
303 <td width="5"><img src="images/index/table_button_left.jpg"/></td>
304 <td width="72" class="menu_on">网站黑名单</td>
305 <td width="3"><img src="images/index/table_button_right.jpg"/></td>
306 </tr>
307 </table>
308 </div>
309 <div id="BkListMenu_1" class="CLSBkListMenu" style="display:none;">网站黑名单</div>
310 <div id="FilterMenu" class="CLSFilterMenu" style="display:none;">
311 <table>
312 <tr>
313 <td width="5"><img src="images/index/table_button_left.jpg"/></td>
314 <td width="100" class="menu_on">网页内容净化</td>
315 <td width="3"><img src="images/index/table_button_right.jpg"/></td>
316 </tr>
317 </table>
318 </div>
319 <div id="FilterMenu_1" class="CLSFilterMenu">网页内容净化</div>
320 </div>
321 <div id="DivAddBkList">
322 <table>
323 <tr>
324 <td colspan="5" height="35" class="BkTit">将你认为存在威胁网址添加到黑名单,金山网盾将阻止对该网站的访问 </td>
325 </tr>
326 <tr>
327 <td height="35"><input type="text" mamaxlength="128" id="TextAddURL" value=""/></td>
328 <td width="88"><input type="radio" value="1" name="WebType" checked id="ChkTypeM"/><label for="ChkTypeM">带毒网站</label></td>
329 <td width="88"><input type="radio" value="3" name="WebType" id="ChkTypeD"/><label for="ChkTypeD">欺诈网站</label></td>
330 <td width="88"><input type="radio" value="4" name="WebType" id="ChkTypeV"/><label for="ChkTypeV">恶意广告</label></td>
331 <td><div id="BtnAddBkList" class="BtnComBig">添加到黑名单</div></td>
332 </tr>
333 </table>
334 </div>
335 <!--模拟表格头部-->
336 <div id="DivListTabHead">
337 <table class="TabListHead">
338 <tr height="24">
339 <td width="350" style="padding-left:30px;">网址</td>
340 <td width="3"><img src="images/index/rz_table_line.gif"/></td>
341 <td width="100" style="padding-left:30px;">性质</td>
342 <td width="3"><img src="images/index/rz_table_line.gif"/></td>
343 <td width="85" style="padding-left:30px;">删除</td>
344 </tr>
345 </table>
346 </div>
347 <!--带滚动条表格-->
348 <div id="DivListTab">
349 <table id="TabBkList" class="TabCom">
350 </table>
351 <table style="display:none;">
352 <tr height="18" id="TrForCreateBkList">
353 <td width="353" style="padding-left:10px;"></td>
354 <td width="103"></td>
355 <td width="68"><a href="javascript:void(0);" class="DelBkList">删除</a></td>
356 </tr>
357 </table>
358 </div>
359 <div id="DivListLink">
360 <table>
361 <tr>
362 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="notify_import_black_url">导入</a></td>
363 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="notify_export_black_url">导出</a></td>
364 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="notify_clean_black_url">清空</a></td>
365 <td width="130" align="center">当前第<span id="cur_page">1</span>/<span id="total_page">1</span>页</td>
366 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="first_page">首页</a></td>
367 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="prev_page">上页</a></td>
368 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="next_page">下页</a></td>
369 <td width="40"><a href="javascript:void(0);" hidefocus="true" id="last_page">末页</a></td>
370 <td width="75" style="padding-top:0px;">转到 <input type="text" id="go_page" value="" style="width:30px;" size="1" maxlength="6"/></td>
371 <td width="30" style="padding-top:0px;"><img id="Btn_go" style="cursor:pointer;" src="images/index/go_normal.gif" alt="转到" /></td>
372 </tr>
373 </table>
374 </div>
375 <!-- 改成 网页净化-->
376 <div id="DivFilterSetContent" style="display:none;">
377 <div id="FilterSetTip">
378 <table>
379 <tr><td height="30"><input type="checkbox" id="StartFilter" /> <label for="StartFilter" style="color:#326D00;font-weight:700;outline:none;">启用网页内容净化</label></td><td></td></tr>
380 <tr><td style="padding-left:30px;height:30px;"><input type="text" id="InputFilter" value="" maxlength="256"></td><td style="padding-left:30px;"><div id="DivAddFilter" class="BtnComMid">添 加</div></tr>
381 </table>
382 </div>
383 <!--模拟表格头部-->
384 <div id="DivFilterTabHead">
385 <table class="TabListHead">
386 <tr height="24">
387 <td width="37" style="padding-left:10px;">启用</td>
388 <td width="3"><img src="images/index/rz_table_line.gif"/></td>
389 <td width="410" style="padding-left:30px;">规则</td>
390 <td width="3"><img src="images/index/rz_table_line.gif"/></td>
391 <td width="67" style="padding-left:30px;">删除</td>
392 </tr>
393 </table>
394 </div>
395 <!--带滚动条表格-->
396 <div id="DivScroFilterTab">
397 <table id="TabFilterList" class="TabCom">
398 </table>
399 <table style="display:none;">
400 <tr height="20" id="TrForCreateFilter">
401 <td width="43" align="center">
402 <input type="checkbox" class="StartItemFilter" checked="true"/>
403 </td>
404 <td width="390" style="padding-left:10px;"><nobr></nobr></td>
405 <td width="70" align="center"><a href="javascript:void(0);" class="DelFilter">删除</a></td>
406 </tr>
407 </table>
408 </div>
409 <div id="DivLinkCustom">
410 <a href="javascript:void(0);" hidefocus="true" id="notify_import_filter_rule">导入</a>
411
412 <a href="javascript:void(0);" hidefocus="true" id="notify_export_filter_rule">导出</a>
413 </div>
414 </div>
415 </div>
416
417 <div id="DivLog" style="display:none;">
418 <div id="LogTabTit">
419 <table>
420 <tr>
421 <td width="127" style="padding-left:30px;">时间</td>
422 <td width="3"><img src="images/index/rz_table_line.gif"/></td>
423 <td width="399" style="padding-left:30px;">日志内容</td>
424 </tr>
425 </table>
426 </div>
427 <div id="LogTabContent">
428 <table id="TabLog" style="table-layout:fixed;"></table>
429 <table style="width:519px;table-layout:fixed;display:none;">
430 <tr height="20" id="TrForCreateLog" >
431 <td width="145"></td>
432 <td width="100%"></td>
433 </tr>
434 </table>
435 </div>
436 <div id="LogBtn">
437 <table>
438 <tr>
439 <td width="70"><a href="javascript:void(0);" hidefocus="true" id="RefreshLog">刷新日志</a></td>
440 <td width="70"><a href="javascript:void(0);" hidefocus="true" id="CleanLog">清空日志</a></td>
441 <td><a href="javascript:void(0);" id="notify_view_log">查看全部日志</a></td>
442 </tr>
443 </table>
444 </div>
445 </div>
446 </div>
447 <div id="DivBottom">
448 <table>
449 <tr><td width="470" align="right"><a target="_blank" hidefocus="true" href="http://blog.duba.net/wd">拦截测试</a></td>
450 <td width="100" align="right"><a target="_blank" hidefocus="true" href="http://labs.duba.net/dairy_wd.shtml">更新日志</a></td>
451 <td width="120" align="center"><a target="_blank" hidefocus="true" href="http://bbs.duba.net/forum-6394-1.html">网盾论坛</a></td>
452 </tr>
453 </table>
454 <!--Begin 事件触发C++-->
455 <!--Begin 首页-->
456 <input type="hidden" id="query_init_param" title="查询默认先显示哪个页面"/>
457 <input type="hidden" id="notify_sysmenu_close" title="关闭界面"/>
458 <input type="hidden" id="notify_sysmenu_minimize" title="最小化界面"/>
459 <input type="hidden" id="query_version_time" title="查询版本信息"/>
460 <!--input type="hidden" id="notify_call_update" title="调用升级"/-->
461 <input type="hidden" id="query_log_count" title="查询日志数量,拦截网页木马病毒总数"/>
462 <input type="hidden" id="notify_clean_log" title="清空日志,清零"/>
463 <input type="hidden" id="notify_setting_enable_kws" title="通知网盾开启与关闭,保护浏览器开启与关闭"/>
464 <input type="hidden" id="query_setting_enable_kws" title="查询网盾是否开启"/>
465 <input type="hidden" id="notify_setting_enable_sep" title="搜索引擎保护开启与关闭"/>
466 <input type="hidden" id="query_setting_enable_sep" title="查询搜索引擎保护是否开启"/>
467 <input type="hidden" id="query_prot_days" title="查询保护了多少天"/>
468 <input type="hidden" id="notify_call_ksfa" title="调用急救箱"/>
469 <input type="hidden" id="newsinfo" title="刷XXX"/>
470 <input type="hidden" id="open_dlg" title="打开关于对话框"/>
471 <!--End 首页-->
472 <!--Begin 日志-->
473 <!--<input type="hidden" id="notify_view_log" title="用记事本打开(查看全部日志)">直接附在元素上-->
474 <input type="hidden" id="query_log" title="查询日志详细信息"/>
475 <!--End 日志-->
476 <!--Begin 黑名单-->
477 <input type="hidden" id="query_black_url" title="查询黑名单"/>
478 <input type="hidden" id="notify_del_balck_url" title="删除黑名单"/>
479 <input type="hidden" id="notify_add_black_url" title="添加黑名单"/>
480 <input type="hidden" id="notify_export_black_url" title="导出黑名单"/>
481 <input type="hidden" id="notify_import_black_url" title="导入黑名单"/>
482 <!--End 黑名单-->
483 <!--Begin 设置-->
484 <input type="hidden" id="query_bat_setting_basic" title="查询基础设置"/>
485 <input type="hidden" id="notify_bat_setting_basic" title="更改基础设置"/>
486 <input type="hidden" id="query_setting_color_dlg" title="打开颜色选择对话框"/>
487 <input type="hidden" id="notify_def_basic_setting" title="基础设置恢复默认设置"/>
488 <input type="hidden" id="query_fileopen_dialog" title="打开文件选择器"/>
489 <input type="hidden" id="notify_setting_add_exe" title="添加保护EXE"/>
490 <input type="hidden" id="notify_setting_del_exe" title="删除保护EXE"/>
491 <input type="hidden" id="query_protected_exe" title="查询保护EXE"/>
492 <!--End 设置-->
493 <!--Begin 意见反馈-->
494 <input type="hidden" id="notify_set_feedback_time" title="设置意见反馈时间"/>
495 <!--End 意见反馈-->
496 <!--Begin IE 首页保护-->
497 <input type="hidden" id="query_startpage" title="查询保护的首页url"/>
498 <input type="hidden" id="notify_set_startpage" title="锁定IE首页"/>
499 <input type="hidden" id="notify_add_ssp" title="增加屏蔽首页"/>
500 <input type="hidden" id="notify_del_ssp" title="删除屏蔽首页"/>
501 <input type="hidden" id="query_ssp" title="查询屏蔽首页列表"/>
502 <input type="hidden" id="query_locksp" title="查询是否开启IE首页保护"/>
503 <input type="hidden" id="notify_set_locksp" title="通知是否开启IE首页保护"/>
504 <input type="hidden" id="change_svt" title="专版转换普通"/>
505 <!--End IE 首页保护-->
506 <!--Begin 网页净化-->
507 <input type="hidden" id="query_set_filter" title="查询是否开启净化"/>
508 <input type="hidden" id="notify_set_filter" title="设置是否开启净化"/>
509 <input type="hidden" id="notify_add_filter_rule" title="增加规则"/>
510 <input type="hidden" id="notify_del_filter_rule" title="删除规则"/>
511 <input type="hidden" id="query_filter_rule" title="查询规则列表"/>
512 <input type="hidden" id="notify_export_filter_rule" title="导出"/>
513 <input type="hidden" id="notify_import_filter_rule" title="导入"/>
514 <!--End 网页净化-->
515
516 <!--End 事件触发C++-->
517 </div>
518 </div>
519 </body>
520 </html>
我们首先关注一下
2 <div id="DivSystemBtn">
3 <img src="images/index/icob1_normal.gif"/>
4 <img src="images/index/icob2_normal.gif"/>
5 <img src="images/index/icob3_normal.gif"/>
6 </div>
7 <div id="DivMenuFeedBack">
8 <a href="javascript:void(0);" hidefocus="true"><img src="images/index/fankui_normal.gif"/></a>
9 </div>
10 </div>
这里的DivTitle和DivSystemBtn的CSS定义如下:
#DivTitle
{
position:relative;
width:100%;
height:68px;
}
#DivSystemBtn
{
left:637px;
height:30px;
top:8px;
width:53px;
position:absolute;
}
DivTitle自然不必说了,望文生意即可明白它是相当于WINFORM软件标题部分的一个DIV。
DivSystemBtn即是放“关于”、“最小化”、“关闭”按钮的一个DIV容器。
以“最小化”为例阐述一下WEB与WINFORM的交互过程:
<!--Begin 事件触发C++-->
<!--Begin 首页-->
<input type="hidden" id="query_init_param" title="查询默认先显示哪个页面"/>
<input type="hidden" id="notify_sysmenu_close" title="关闭界面"/>
<input type="hidden" id="notify_sysmenu_minimize" title="最小化界面"/>
<input type="hidden" id="query_version_time" title="查询版本信息"/>
<!--input type="hidden" id="notify_call_update" title="调用升级"/-->
<input type="hidden" id="query_log_count" title="查询日志数量,拦截网页木马病毒总数"/>
<input type="hidden" id="notify_clean_log" title="清空日志,清零"/>
<input type="hidden" id="notify_setting_enable_kws" title="通知网盾开启与关闭,保护浏览器开启与关闭"/>
<input type="hidden" id="query_setting_enable_kws" title="查询网盾是否开启"/>
<input type="hidden" id="notify_setting_enable_sep" title="搜索引擎保护开启与关闭"/>
<input type="hidden" id="query_setting_enable_sep" title="查询搜索引擎保护是否开启"/>
<input type="hidden" id="query_prot_days" title="查询保护了多少天"/>
<input type="hidden" id="notify_call_ksfa" title="调用急救箱"/>
<input type="hidden" id="newsinfo" title="刷XXX"/>
<input type="hidden" id="open_dlg" title="打开关于对话框"/>
<!--End 首页-->
<!--Begin 日志-->
<!--<input type="hidden" id="notify_view_log" title="用记事本打开(查看全部日志)">直接附在元素上-->
<input type="hidden" id="query_log" title="查询日志详细信息"/>
<!--End 日志-->
<!--Begin 黑名单-->
<input type="hidden" id="query_black_url" title="查询黑名单"/>
<input type="hidden" id="notify_del_balck_url" title="删除黑名单"/>
<input type="hidden" id="notify_add_black_url" title="添加黑名单"/>
<input type="hidden" id="notify_export_black_url" title="导出黑名单"/>
<input type="hidden" id="notify_import_black_url" title="导入黑名单"/>
<!--End 黑名单-->
<!--Begin 设置-->
<input type="hidden" id="query_bat_setting_basic" title="查询基础设置"/>
<input type="hidden" id="notify_bat_setting_basic" title="更改基础设置"/>
<input type="hidden" id="query_setting_color_dlg" title="打开颜色选择对话框"/>
<input type="hidden" id="notify_def_basic_setting" title="基础设置恢复默认设置"/>
<input type="hidden" id="query_fileopen_dialog" title="打开文件选择器"/>
<input type="hidden" id="notify_setting_add_exe" title="添加保护EXE"/>
<input type="hidden" id="notify_setting_del_exe" title="删除保护EXE"/>
<input type="hidden" id="query_protected_exe" title="查询保护EXE"/>
<!--End 设置-->
<!--Begin 意见反馈-->
<input type="hidden" id="notify_set_feedback_time" title="设置意见反馈时间"/>
<!--End 意见反馈-->
<!--Begin IE 首页保护-->
<input type="hidden" id="query_startpage" title="查询保护的首页url"/>
<input type="hidden" id="notify_set_startpage" title="锁定IE首页"/>
<input type="hidden" id="notify_add_ssp" title="增加屏蔽首页"/>
<input type="hidden" id="notify_del_ssp" title="删除屏蔽首页"/>
<input type="hidden" id="query_ssp" title="查询屏蔽首页列表"/>
<input type="hidden" id="query_locksp" title="查询是否开启IE首页保护"/>
<input type="hidden" id="notify_set_locksp" title="通知是否开启IE首页保护"/>
<input type="hidden" id="change_svt" title="专版转换普通"/>
<!--End IE 首页保护-->
<!--Begin 网页净化-->
<input type="hidden" id="query_set_filter" title="查询是否开启净化"/>
<input type="hidden" id="notify_set_filter" title="设置是否开启净化"/>
<input type="hidden" id="notify_add_filter_rule" title="增加规则"/>
<input type="hidden" id="notify_del_filter_rule" title="删除规则"/>
<input type="hidden" id="query_filter_rule" title="查询规则列表"/>
<input type="hidden" id="notify_export_filter_rule" title="导出"/>
<input type="hidden" id="notify_import_filter_rule" title="导入"/>
<!--End 网页净化-->
<!--End 事件触发C++-->
关注其中的 <input type="hidden" id="notify_sysmenu_minimize" title="最小化界面"/>这一句,在kwebapp.js种可以找 到
// 最小化 $.ImgMouseStyle($("#DivSystemBtn img").eq(1),3).click(function() { $("#notify_sysmenu_minimize").click(); });
哈哈,明白了,当点击 #DivSystemBtn里的第2个图片时,触发隐藏按钮notify_sysmenu_minimize的click事件,而notify_sysmenu_minimize的click事件在C#或者C++的程序里是可以截获的。这样就达到了web与winform 的交互目的,下面我来演示一下用C#如何实现一个窗体装载整个WEB页面并带有程序“最小化”功能。
1、创建一个"Windows窗体应用程序"项目,我把项目命名为KSWebShieldSVC,然后修改默认的From1.cs名称为FrmMain.cs,把“金山网盾”的webui文件夹拷贝到项目的bin/Debug目录下
2、修改窗体属性设置边框为无,并设置窗体大小为690*514(这个尺寸当然要根据您的web页的大小适当设置了)
3、往窗体中拖一个webBrowser1进来
4、 FrmMain_Load事件书写如下:
private void FrmMain_Load(object sender, EventArgs e)
{
string path = AppDomain.CurrentDomain.BaseDirectory + @"webui\kwebshield\main.htm";
this.webBrowser1.Navigate(path);
}
5、给webBrowser1添加DocumentCompleted事件:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument htmlDoc = webBrowser1.Document;
HtmlElement btnElement = htmlDoc.All["notify_sysmenu_minimize"];
if (btnElement != null)
{
btnElement.Click += new HtmlElementEventHandler(HtmlBtnClose_Click);
}
}
6、书写最小化按钮的单击事件:
private void HtmlBtnClose_Click(object sender, EventArgs e)
{
if(base.WindowState != FormWindowState.Minimized)
base.WindowState = FormWindowState.Minimized;
}
OK,此时运行程序,界面显示后,点击web上的最小化按钮,程序就最小化了,呵呵,真爽
下次将讲解一下如何拖动窗体,并放出DEMO,敬请期待!!!
我纳闷,为什么我写的文章无法发布到博客园首页而只能发布到候选区呢?