电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> .NET
C#中的常用例程-.NET教程,Windows开发
作者:网友供稿 点击:14
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
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地址信息。
  
文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·经典收藏之 - C++内存管理详解-.NET教程,C#语言
·Master Page 初探-.NET教程,评论及其它
·GDI+编程10个基本技巧-.NET教程,评论及其它
·VB.NET中让Textbox只能输入数字(二)-.NET教程,VB.Net语言
·stl应用小问题-.NET教程,评论及其它
·WIN32中颜色值(COLORREF)与.NET中颜色值(Color)的转换-ASP教程,系统相关
·打造自己的专业图像工具-Visual C++ 2005图像编程系列【三】-.NET教程,C#语言
·.Net中常见问题及解决方法归类-.NET教程,.NET Framework
·Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序-.NET教程,评论及其它
·VB下几个非常有用的函数-.NET教程,VB.Net语言

最新文章
·VC#初学入门:第一个Windows程序
·ASP.NET 2.0-选用DataSet或DataReader
·用.net 处理xmlHttp发送异步请求
·asp.net创建文件夹的IO类的问题
·asp.net 2.0 中加密web.config 文件中的配置节
·关于ASP.NET调用JavaScript的实现
·如何实现ASP.NET网站个性化
·Acegi安全系统的配置-.NET教程,评论及其它
·Spring安全系统:Acegi Security Acegi简介-.NET教程,评论及其它
·Biztalk 开发之 架构和实例的验证-.NET教程,评论及其它




版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号