大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> C#中的常用例程

C#中的常用例程

时间: 2021-07-31 作者:daque

0. 从c#中挪用com组件 (后期贯穿) .net框架是com的一个天然兴盛,两者共享很多中心因素,这囊括组件的再运用以及谈话的种 立性。 为了向后兼容,com interop不妨运用现存的com组件而不诉求对原始组件举行窜改。当一个 框架开拓职员想将com代码兼并到一个管理当用步调中时,就不妨用com interop功效引入相关系的co 典型。引入之后,这个com典型就不妨运用了。这属于前期贯穿。然而有功夫你须要东西的汉 期贯穿, 这在.net中也能实行,运用称呼空间映照就不妨经过后期贯穿来挪用com东西。 这边引见一个运用步调例程,它将挪用excel,而且经过运用后期贯穿使它可视。 后期贯穿将运用reflectionb的type类,这个type类有很多本领不妨博得com东西, gettypefromprogid("application"),这个本领从体例备案表中获得com id, 而后运用static类的分子 activator.createinstance()创造这个com东西的一个新条例示。 要想挪用com东西的本领、因变量和属性,就必需运用包括精确树立的type东西的invokemethood()本领。 这个本领接收少许参数变量,个中最要害的一个是本领典型的ex属性(get或set)。在例子子中咱们?excel.visible运用了set属性,进而使excel运用步调可视。 咱们将试验在.net情况中挪用excel运用步调。这是一个后期贯穿运用步调,由于即使是前破 贯穿的话 就须要运用com东西的rcw(runtime callable wraper)来实行底下的吩咐路途序tblimp所屯 成的工作: ex. c:\> tblimp /out: //variable type excel; object[] parameter= new object[1]; object excelobject; try { excel = type.gettypefromprogid("excel.application"); excelobject = activator.createinstance(excel); parameter[0] = true; excel.invokemember("visible", bindingflags.setproperty, null, excelobject, parammeter); } catch(exception e) { console.writeline("error stack {0} ", e.message) ; } finally { //when this object is destroyed the excel application will be closed //so sleep for sometime and see the excel application thread.sleep(5000); //relaese the object //gc.runfinalizers() } 1.怎样读取windows备案表消息? public static int main(string[] args) { registrykey subkey; registrykey tawkay = registrykey.openremotebasekey(microsoft.win32.registryhive..currentuser,""); string subkey = "software\\taw\\bse"; subkey = tawkay.opensubkey(subkey); object dsn = subkey.getvalue("dsn"); object user = subkey.getvalue("user"); object password = subkey.getvalue("password"); object server = subkey.getvalue("server"); return 0; } 2.怎样挪用windows api? 在c#中挪用一个apiapi的dll称呼,而且运用sysimport引入它。 底下这个例子表露了怎样挪用messagebox api: using system; class callapicls { [sysimport(dll="user32.dll")] public static extern int messageboxa(int h, string m, string c, int type); public static int main() { return messageboxa(0, "hello world!", "caption", 0); } } 3.怎样获得呆板上正在运转的过程? 运用system.diagnostics.process类不妨启用和遏止体例过程。 getprocesses因变量归来了呆板上正在运转的一切过程, public static process[] getprocesses(); public static process[] getprocesses(string); eg. using system.diagnostics; ..... process[] proclist = new process[100]; proclist = process.getprocesses(); for ( int i=0; i<20; i++) { string strprocname = proclist[i].processname; int iprocid = proclist[i].id;; } 经过运用process类的本领,以至不妨启用、遏止或废除过程: 在运用步调中翻开欣赏器 system.diagnostics.process.start("http://www.c-sharpcorner.com"); 翻开wav文献 不妨用playsound api来播放一个wav文献。 [sysimport(dll="winmm.dll")] public static extern long playsound(string lpszname, long hmodule, long dwflags)); ...... playsound( szwavfilename , 0 , 0); 4.怎样在c#中发送邮件? 波及到的称呼空间有system.web.util,汇合有system.web.dll。 可用smtpmail类在c#运用步调中发送邮件。默许状况下, 邮件在体例中是列队的,smtpmail类在system.web.util称呼空间中设置。 不妨经过两种道路来挪用send本领: public static void send(mailmessage); smtpmail.send("mcb@mindcracker.com", "webmaster@mindcracker.com", "subject", "message body"); 5.运用体例剪贴板 波及的汇合是system.winforms.dll,称呼空间是system.winforms。 在c#中,clipboard类供给了将数据放在体例剪贴板以及从体例剪贴板回复数据的本领。 在.net中,运用dataformat类,它实行idataobject,为数据传输供给了一种方法独力的构造埂?clipboard类惟有3个分子,它们是结构器、getdataobject和setdataobject。 setdataobject本领有两个设置: public static void setdataobject(object); public static void setdataobject(object data, bool copy); copy这个参数指明运用步调退出后,数据能否该当保持在剪贴板上。 getdataobject本领 public static idataobject getdataobject(); 6.获得长机的ip地方 // call dns.gethostname to get iphostentry and get the ip address list. iphostentry ipentry = dns.gethostbyname ("www.mindcracker.com"); ipaddress [] ipaddr = ipentry.addresslist; for (int i = 0; i < ipaddr.length; i++) { console.writeline ("ip address {0}: {1} ", i, ipaddr[i].tostring ()); } 其余,运用无参数的gethostname不妨归来当地呆板的长机名: string strhostname = dns.gethostname (); 而后将这个长机名动作参数传播给gethostbyname,就不妨获得当地呆板的ip地方消息。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.