using System;
using System.Runtime.InteropServices;
using System.Management;
namespace Hardware
{
/// <summary>
/// Hardware_Mac 的摘要说明。
/// </summary>
public class HardwareInfo
{
//取机器名
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}

//取cpu编号
public String GetCpuID()
{
try
{
ManagementClass mc = new ManagementClass(“Win32_Processor”);
ManagementObjectCollection moc = mc.GetInstances();

String strCpuID = null ;
foreach( ManagementObject mo in moc )
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
catch
{
return “”;
}

}//end method

//取第一块硬盘编号
public String GetHardDiskID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(“SELECT * FROM Win32_PhysicalMedia”);
String strHardDiskID = null ;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
return strHardDiskID ;
}
catch
{
return “”;
}
}//end

public enum NCBCONST
{
NCBNAMSZ =16, /* absolute length of a net name */
MAX_LANA =254, /* lana’s in range 0 to MAX_LANA inclusive */
NCBENUM =0x37, /* NCB ENUMERATE LANA NUMBERS */
NRC_GOODRET =0x00, /* good return */
NCBRESET =0x32, /* NCB RESET */
NCBASTAT =0x33, /* NCB ADAPTER STATUS */
NUM_NAMEBUF =30, /* Number of NAME’s BUFFER */
}

[structlayout(layoutkind.sequential)]
public struct ADAPTER_STATUS
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=6)]
public byte[] adapter_address;
public byte rev_major;
public byte reserved0;
public byte adapter_type;
public byte rev_minor;
public ushort duration;
public ushort frmr_recv;
public ushort frmr_xmit;
public ushort iframe_recv_err;
public ushort xmit_aborts;
public uint xmit_success;
public uint recv_success;
public ushort iframe_xmit_err;
public ushort recv_buff_unavail;
public ushort t1_timeouts;
public ushort ti_timeouts;
public uint reserved1;
public ushort free_ncbs;
public ushort max_cfg_ncbs;
public ushort max_ncbs;
public ushort xmit_buf_unavail;
public ushort max_dgram_size;
public ushort pending_sess;
public ushort max_cfg_sess;
public ushort max_sess;
public ushort max_sess_pkt_size;
public ushort name_count;
}

[structlayout(layoutkind.sequential)]
public struct NAME_BUFFER
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)NCBCONST.NCBNAMSZ)]
public byte[] name;
public byte name_num;
public byte name_flags;
}

[structlayout(layoutkind.sequential)]
public struct NCB
{
public byte ncb_command;
public byte ncb_retcode;
public byte ncb_lsn;
public byte ncb_num;
public IntPtr ncb_buffer;
public ushort ncb_length;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)NCBCONST.NCBNAMSZ)]
public byte[] ncb_callname;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)NCBCONST.NCBNAMSZ)]
public byte[] ncb_name;
public byte ncb_rto;
public byte ncb_sto;
public IntPtr ncb_post;
public byte ncb_lana_num;
public byte ncb_cmd_cplt;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=10)]
public byte[] ncb_reserve;
public IntPtr ncb_event;
}

[structlayout(layoutkind.sequential)]
public struct LANA_ENUM
{
public byte length;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)NCBCONST.MAX_LANA)]
public byte[] lana;
}

[structlayout(layoutkind.auto)]
public struct ASTAT
{
public ADAPTER_STATUS adapt;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)NCBCONST.NUM_NAMEBUF)]
public NAME_BUFFER[] NameBuff;
}
public class Win32API
{
[DllImport("NETAPI32.DLL")]
public static extern char Netbios(ref NCB ncb);
}

public string GetMacAddress()
{
string addr=“”;
try
{
int cb;
ASTAT adapter;
NCB Ncb=new NCB();
char uRetCode;
LANA_ENUM lenum;

ncb.ncb_command = (byte)NCBCONST.NCBENUM;
cb = Marshal.SizeOf(typeof(LANA_ENUM));
Ncb.ncb_buffer = Marshal.AllocHGlobal(cb);
Ncb.ncb_length = (ushort)cb;
uRetCode = Win32API.Netbios(ref Ncb);
lenum = (LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(LANA_ENUM));
Marshal.FreeHGlobal(Ncb.ncb_buffer);
if(uRetCode != (short)NCBCONST.NRC_GOODRET)
return “”;

for(int i=0; i < lenum.length ;i++)
{
Ncb.ncb_command = (byte)NCBCONST.NCBRESET;
Ncb.ncb_lana_num = lenum.lana[i];
uRetCode = Win32API.Netbios(ref Ncb);
if(uRetCode != (short)NCBCONST.NRC_GOODRET)
return “”;

ncb.ncb_command = (byte)NCBCONST.NCBASTAT;
Ncb.ncb_lana_num = lenum.lana[i];
Ncb.ncb_callname[0]=(byte)‘*’;
cb = Marshal.SizeOf(typeof(ADAPTER_STATUS)) + Marshal.SizeOf(typeof(NAME_BUFFER))*(int)NCBCONST.NUM_NAMEBUF;
Ncb.ncb_buffer = Marshal.AllocHGlobal(cb);
Ncb.ncb_length = (ushort)cb;
uRetCode = Win32API.Netbios(ref Ncb);
adapter.adapt = (ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(ADAPTER_STATUS));
Marshal.FreeHGlobal(Ncb.ncb_buffer);

if (uRetCode == (short)NCBCONST.NRC_GOODRET)
{
if(i>0)
addr += “:”;
addr = string.Format(“{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}”,
adapter.adapt.adapter_address[0],
adapter.adapt.adapter_address[1],
adapter.adapt.adapter_address[2],
adapter.adapt.adapter_address[3],
adapter.adapt.adapter_address[4],
adapter.adapt.adapter_address[5]);
}
}
}
catch
{}
return addr.Replace(‘ ‘, ‘0′);
}

}
}

(转)用CSS可以解决<STYLE type=text/css>body {background:url(http://xxxx) no-repeat center top!important;margin-top:0px;margin-left:0px;background-attachment:fixed!important;}</STYLE>

07月 11th, 2008[0711]和好

还是印证了那句话

夫妻吵架床头吵床尾和

和好了!

一句”老棍走,恰噶里饭冒”就和好了 呵呵!

07月 10th, 2008C#连接Access[转]


using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace test.src.util
{
    public class DbConnction
    {
        public DbConnction()
        {
            //
        }

        static void Main(string[] args)
        {

            String connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
            connectionString += @"d:\data.mdb";
            OleDbConnection myConnection = new OleDbConnection(connectionString);

            myConnection.Open();        //打开数据库链接
            OleDbCommand myCommand = myConnection.CreateCommand();    //定义SqlCommand变量

            myCommand.CommandText = "select * from ruby";           //设置SQL语句
            OleDbDataReader myDataReader = myCommand.ExecuteReader(); // 从数据库获职数据

            //读取DataReader中的数据并输出

            while (myDataReader.Read())
            {
                Console.WriteLine("\t{0}\t{1}", myDataReader["id"], myDataReader["title"]);
            }

            myDataReader.Close();               //关闭SqlDataReader
            myConnection.Close();               //关闭链接

            Console.WriteLine("这个是一个链接的测试");
        }

    }
}

07月 10th, 2008准备写一套采集程序

今天电脑被客户占用了一下,就顺便偷懒玩了一会

休息这会,才知道公司信息网上加信息是那么麻烦,还得从别人网站上copy信息上来添加

一次性还挺多,貌似要几十到一百多条噢,汗!

所以临时想法决定写一套信息采集程序自动加入到公司旗下的信息网里面去,(*^__^*) 嘻嘻……

不过似乎又要推迟了,感情的问题会让自己很难受一段时间,好烦

亲爱的玮,其实我爱你,对不起,伤害你了,或许分开会对你是一种好吧!

07月 10th, 2008[0710]是结束吗?

不知道这是不是结束

原本以为昨天的争吵会结束了

没想到下班后还是接着吵了

吵到最后,话都挑明白了,什么都说了,不管是狠话也好,气话也好,还是实话也好

话说的很绝了,似乎不会在像以前那样可以在和好了,因为这次话太伤感情了

就这样结束了吗?不知道

我想安静了

很讨厌自己

似乎现在有点后悔 不想分开 可是真的或许有代沟吧!

静静的.etc

07月 9th, 2008[0709]复杂的心情

和**拌了几句嘴,老在说我工作的事情,赚的钱少啊啥的,哎,虽然知道说什么都是为了我好,可是我真的不喜欢管我那么多,毕竟我是个成年人了,郁闷ing.

工作的事情也挺郁闷滴,应该是说技术方面的事情挺郁闷,真是后悔自己之前学的东西太少了,哎~!现在还要临阵磨枪的到处学,这就是现学先卖吧,(*^__^*) 嘻嘻……

工作九天了,给我的感觉也是越来越好了,虽然公司的电脑破,尤其是我的电脑超级破,但是跟同事的相处还是不错的,很有感觉,电脑差劲那我就少做点事情咯,^_^

在过一个小时,貌似就是一个同事的生日了,比我小那么几天,同年滴,正好是比我早进公司一个星期左右吧(听同事说滴),在blog上提前祝你生日快乐咯,呵呵!

现在公司主要做的还是 Access方面的东西,虽然觉得有点落后吧,但是要学的东西还是挺多的.

对自己说,到公司去不是为了赚那么点可怜的工资,而是去学经验的,学习自己身上没有的东西,学到了,我想那是一笔无限的财富.

07月 9th, 2008Access类型转换

类型转换
每个函数都可以强制将一个表达式转换成某种特定数据类型。

语法
CBool(expression)

CByte(expression)

CCur(expression)

CDate(expression)

CDbl(expression)

CDec(expression)

CInt(expression)

CLng(expression)

CSng(expression)

CStr(expression)

CVar(expression)

CStr(expression)

必要的  expression  参数可以是任何字符串表达式或数值表达式。

Read the rest of this entry »

显示上一条、上一条相关信息

一般都是需要显示同分类的上一条或下一条相关的新闻或者信息 实现的sql语句如下

Read the rest of this entry »

‘*************************************************
‘函数名:gotTopic
‘作  用:截字符串,汉字一个算两个字符,英文算一个字符
‘参  数:str   —-原字符串
‘       strlen —-截取长度
‘返回值:截取后的字符串
‘*************************************************

Read the rest of this entry »

07月 9th, 2008[0709]第一篇日志

  第一篇日志,开个头,HOHO

写日记的地方到是换了不知道多少地方了,先写的去吧,到时候有好的继续换,HOHO

现在在公司 2008-07-08 14:53

  使用此工具时请注意以下事项:

  1.无特殊问题请选择的默认皮肤.

  2.请使用小头像.(方法:在好友列表空白处右键,显示小头像.)

  3.请将通讯录隐藏(方法:在通讯录条目上右键,点击通讯录.)

  4.请不要登陆多个,软件暂不支持.

  5.为提高打开窗口速度,可使用显IP外挂插件,自动隐藏好友聊天窗口或群聊天窗口侧栏.

  6.发送消息期间,建议将设置不自动弹出视频窗口和抖动窗口,避免重复发送给该好友.

  7.等待加入.

  8.等待加入.

  9.等待加入.

  10.等待加入.

随机模式

特点:无需用户干涉,程序随机选择问题分类自动回答,此模式可避免在一个大范围问题分类里发送同样的回答内容.

方法:选择随机模式即可.

《小僧百度知道自动回答器》自动回答模式 之 随机模式

  自定义模式

  特点:直观性比较强,直接在百度知道指定分类中回答所有问题,具有针对性,锁定回答范围.

  方法:首先选择自定义模式,在其后输入框内输入需要回答的百度知道问题分类ID,可填一个或多个分类ID,多个分类ID时请使用英文逗号隔开!

《小僧百度知道自动回答器》自动回答模式 之 自定义模式

  分类ID:分类就是打开百度知道每个问题分类后网址后面那个数字,如:《小僧百度知道自动回答器》自动回答模式 之 自定义模式 分类ID,74即为此问题分类的分类ID,以此类推.

  搜索关键字模式

  特点:利用关键字搜索相关问题,在自动回答问题,这种模式更具有针对性,针对相关问题回答相关信息,以不至于使回答的内容和问题不搭边.

  方法:首先选择搜索关键字模式,在其后输入框内填写需要搜索的关键字,可填写一个或者多个关键字,多个关键字时请使用英文逗号隔开!

《小僧百度知道自动回答器》自动回答模式 之 搜索关键字模式


© 2007 小僧空尽’s Blog | iKon Wordpress Theme, 由 yo2.cn 提供 WordPress 博客服务