怎样编程控制网络连接?

问题描述

我想控制电脑上网时间,比如到晚上12点时,用程序把所有的电脑上网断开?

解决方案

解决方案二:
C#连接SQLite做了一个每天定时关闭网络连接的服务最近老婆怀孕为了控制她上网看电影的时间做了一个每天在规定的时间短开网络连接的windows服务。首先用SQLite做了两个表一个是netconnection填写网络连接的信息(我是单独拉的联通2M带宽,adsl上网)。一个netweek存放平时和周末两种情况下断网的时间。首先写了一个封装SQLite操作的简单类(参考网络上的内容):usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Data.SQLite;namespaceautonet{classDb{SQLiteConnectionconn;SQLiteCommandcom;publicDb(stringstrConn){conn=newSQLiteConnection("DataSource="+strConn);com=conn.CreateCommand();conn.Open();}publicvoidOpen(){if(conn.State!=ConnectionState.Open)conn.Open();}publicvoidClose(){if(conn.State!=ConnectionState.Closed)conn.Close();}publicvoidDoNoneSQL(stringstrnonesql){com.CommandText=strnonesql;com.ExecuteNonQuery();}publicintDoIntSQL(stringstrdointsql){intt;com.CommandText=strdointsql;t=com.ExecuteNonQuery();returnt;}publicvoidDoNoneSQL(stringstrnonesql,SQLiteParameter[]pars){ParamentsCommand(strnonesql,pars);DoNoneSQL(strnonesql);}publicSQLiteDataReaderDoDataReader(stringstrdatareadersql){com.CommandText=strdatareadersql;returncom.ExecuteReader();}publicSQLiteDataReaderDoDataReader(stringstrdatareadersql,SQLiteParameter[]pars){ParamentsCommand(strdatareadersql,pars);returnDoDataReader(strdatareadersql);}publicDataTableDoDataTable(stringstrdatatablesql){com.CommandText=strdatatablesql;SQLiteDataAdaptersda=newSQLiteDataAdapter(com);DataTabledb=newDataTable();sda.Fill(db);returndb;}publicDataTableDoDataTable(stringstrdatatablesql,SQLiteParameter[]pars){ParamentsCommand(strdatatablesql,pars);returnDoDataTable(strdatatablesql);}publicvoidBeginTrans(){conn.BeginTransaction();}publicvoidCommit(){conn.BeginTransaction().Commit();}publicvoidParamentsCommand(stringstrcontext,SQLiteParameter[]compars){com.CommandText=strcontext;if(compars!=null){foreach(SQLiteParameterparincompars){if(par.Value==null)par.Value=DBNull.Value;com.Parameters.Add(par);}}}publicSQLiteParameterMakeSQLiteParameter(stringname,DbTypetype,objectvalue){SQLiteParameterpar=newSQLiteParameter(name,type);par.Value=value;returnpar;}}}然后封装简单的连接拨号和断开拨号程序:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.ComponentModel;usingSystem.Threading;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;namespaceautonet{classmodemnet{privatestaticMutexmutex=newMutex();privateProcesspro=newProcess();privateintDesc;privateintconnectcount;//连接次数0表示断开1表示连接privateintdisconnectcount;//断开次数0表示连接1表示断开privateboolstatus;//true:connectedfalse:notconnectedprivatestringconnname;//连接名字privatestringconnusername;//连接帐号用户privatestringconnpwd;//连接密码[DllImport("wininet.dll")]privateexternstaticboolInternetGetConnectedState(outintDescription,intReservedValue);publicstringNetName{set{this.connname=value;}}publicstringUserName{set{this.connusername=value;}}publicstringPwd{set{this.connpwd=value;}}publicintConnectNum{get{returnconnectcount;}}publicintDisConnectNum{get{returndisconnectcount;}}privateboolisconnecting(){status=InternetGetConnectedState(outDesc,0);returnstatus;}privateboolisactive(stringstrProName){Process[]ps=Process.GetProcessesByName(strProName);{if(ps.Length>0)returntrue;elsereturnfalse;}}publicvoidStopConn(){if(isconnecting()){lock(pro){if(!isactive("rasdial")){mutex.WaitOne();//pro.StartInfo.FileName="rundll32.exe";//pro.StartInfo.Arguments="iedkcs32.dllCloseRASConnections";pro.StartInfo.FileName="rasdial.exe";pro.StartInfo.Arguments=this.connname+@"/DISCONNECT";pro.Start();mutex.ReleaseMutex();disconnectcount++;connectcount--;}}pro.Close();}}publicvoidstartconn(){if(!isconnecting()){lock(pro){if(!isactive("rasdial")){mutex.WaitOne();pro.StartInfo.FileName="rasdial.exe";pro.StartInfo.Arguments=this.connname+""+this.connusername+""+this.connpwd;pro.Start();mutex.ReleaseMutex();connectcount++;disconnectcount--;}}pro.Close();}}}}后面就是简单的调用了,就是0.开始先连接网络,然后1.检查是否需要执行该功能(在netconnection中有字段表示)2.是否到达配置的断网时间3.1和2都true,执行断网,否则连接网络在过程中对SQLite里面执行update语句让我检查了好久,首先是DB文件找错了,执行后检查都结果总是不对,后来发现这个问题后执行update还是不对。愁。原来是在一个连接下事务不能嵌套。拨号程式的名字如果带空格就要用双引号引起来执行命令windows服务中若用timer控件是System.Timers下的timer.

时间: 2024-07-28 12:23:45

怎样编程控制网络连接?的相关文章

Android编程判断网络连接是否可用的方法_Android

本文实例讲述了Android编程判断网络连接是否可用的方法.分享给大家供大家参考,具体如下: 为了提高用户体验,我们在开发 android 应用的过程需要联网获取数据的时候我们首先要做的一步就是: 1.判断当前手机是否打开了网络 2.打开了网络是否可以上网 然后再去执行联网逻辑,避免没联网做不必要的工作! 通常情况下,我们是这样判断的 public static boolean isNetAvailable(Context context) { ConnectivityManager conne

Android编程获取网络连接方式及判断手机卡所属运营商的方法_Android

本文实例讲述了Android编程获取网络连接方式及判断手机卡所属运营商的方法.分享给大家供大家参考,具体如下: 问题:项目中写的网络模块,感觉有点乱:两套代码 --模拟器.真机,维护起来十分麻烦. 解决办法:代码自动去检查到那种网络环境,然后调用不同的联网方式. 查看了模拟器上默认的接入点:移动网络 -- APN = "internet" 1.通过获取apn的名称,来判断网络 // 获取Mobile网络下的cmwap.cmnet private int getCurrentApnInU

Android编程判断网络连接是否可用的方法

本文实例讲述了Android编程判断网络连接是否可用的方法.分享给大家供大家参考,具体如下: 为了提高用户体验,我们在开发 android 应用的过程需要联网获取数据的时候我们首先要做的一步就是: 1.判断当前手机是否打开了网络 2.打开了网络是否可以上网 然后再去执行联网逻辑,避免没联网做不必要的工作! 通常情况下,我们是这样判断的 public static boolean isNetAvailable(Context context) { ConnectivityManager conne

J2ME中多线程网络连接编程的分析

编程|多线程|网络 摘 要 介绍并分析了J2ME的通用网络连接框架(GCF),并以此为基础,指出了在J2ME网络连接编程中存在的问题,并提出了通过构建多线程的两种解决方法. 关键词 J2ME GCF多线程 网络连接 引言 J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE.J2EE并称.J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话.可视电话.数字机顶盒和汽车导航系统等等.即J2ME是为消费电子产品和手持设备量身定制的

浅析J2ME中多线程网络连接编程

引言 J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE.J2EE并 称.J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂 窝电话.可视电话.数字机顶盒和汽车导航系统等等.即J2ME是为消费电子产品 和手持设备量身定制的Java专用版本. J2ME的出现使开发跨平台的消费类电子产品的应用软件成为可能.Java语言 的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程 序.它提供了基于HTTP的高级Intern

windows下本地计算机有多个网络连接的情况怎么编程?

问题描述 windows下本地计算机有多个网络连接的情况怎么编程? 题目所述多个网络连接是指网络控制面板或任务管理器里面看到的本地连接1,2,3 这样的情况下怎样制定使用哪一个网络进行通信? 解决方案 这个底层的通讯你不用操心,操作系统会维护网关和路由,并且知道用什么网卡发数据.

c++ 网络连接-利用C++编程实现检测一台计算机上多张网卡与其他外接设备的网络连接状态

问题描述 利用C++编程实现检测一台计算机上多张网卡与其他外接设备的网络连接状态 vc实现检测计算机上所有网络的连接状态,显示网络连接名字,IP地址,MAC地址等等信息

c++-WIN8 C++编程新建一个网络连接问题

问题描述 WIN8 C++编程新建一个网络连接问题 我用 在win8下用 RasSetEntryProperties 新建一个网络连接,在RASENTRY结构体中设置参数的时候,有一个参数是dwfOptions,我设置为~RASEO_RequireEncryptedPw,但是新建出来的网络连接还是不能勾上"未加密的密码(pap)"那个选项,请问,要怎么实现勾上那个勾啊,或者有什么跟好的方法去创建一个网络连接,谢谢了. 解决方案 http://jingyan.baidu.com/arti

在开发 ppc 程序中 如何 获得网络 连接的列表(例如列出 CMWAP,CMNET 等 ), 选择用那个连接, 如何用代码控制选中的连接 进行拨号 ?

问题描述 在开发ppc程序中如何获得网络连接的列表(例如列出CMWAP,CMNET等),选择用那个连接,如何用代码控制选中的连接进行拨号?.netcf1.0或.netcf2.0能实现吗?还是用api实现???最好有详细的代码,谢谢 解决方案 解决方案二:顶解决方案三:dd解决方案四:ddd