我是用C++写的读取文件
用java调用的,用java直接读取我不太清楚

解决方案 »

  1.   

    xxy802(孔明在世) 
    能把你的程序贴一下么?
    或者发到我信箱里:
    [email protected]
      

  2.   

    #include <nb30.h>
    #pragma comment(lib, "NetApi32.lib")struct ASTAT
    {
    ADAPTER_STATUS adapt;
    NAME_BUFFER    NameBuff [30];
    }m_Adapter;
    CString csNetcardCode;
    {
             NCB ncb;
             UCHAR uRetCode;
    LANA_ENUM lana_enum;

    memset(&ncb, 0, sizeof(ncb) );
    ncb.ncb_command = NCBENUM;

    ncb.ncb_buffer = (unsigned char *) &lana_enum;
    ncb.ncb_length = sizeof(lana_enum);

    uRetCode = Netbios(&ncb);

    if(uRetCode == 0)
    {
    memset(&ncb, 0, sizeof(ncb));
    ncb.ncb_command = NCBRESET;
    ncb.ncb_lana_num = 0;
    uRetCode = Netbios(&ncb);

    memset(&ncb, 0, sizeof(ncb));
    ncb.ncb_command = NCBASTAT;
    ncb.ncb_lana_num = 0;

    strcpy((char *)ncb.ncb_callname, "*");   
    ncb.ncb_buffer = (unsigned char *) &m_Adapter;      
    ncb.ncb_length = sizeof(m_Adapter);

    uRetCode = Netbios(&ncb);

    csNetcardCode.Format("%02X%02X-%02X%02X-%02X%02X",
    m_Adapter.adapt.adapter_address[0],
    m_Adapter.adapt.adapter_address[1],
    m_Adapter.adapt.adapter_address[2],
    m_Adapter.adapt.adapter_address[3],
    m_Adapter.adapt.adapter_address[4],
    m_Adapter.adapt.adapter_address[5]);
    }
    }
      

  3.   

    还有别人能提供一下java的解决方法么?
      

  4.   

    其实你的问题是和操作系统有关,如果是windows系列的操作系统,你可以调用windowsApi函数。在java中要用到本地方法接口(jni--java native interface,注意不是jini)。在c++是调用dll。其他vb,pb,delphi都例似。
    如果是linux, 系统同样也提供这些参数。如何调用我就不太清楚了。pc机具有唯一性的并且常用的硬件参数是cpu序列号,硬盘序列号,网卡序列号(MAC地址)。如果没有网卡,我想会有MODEM,其实MODEM也是网卡。也可以读出它的MAC地址。PC还有软件标志,域名与机器名的组合。都可以使用。
      

  5.   

    但是有一点要注意,windows JVM 对 jni的支持并不好。有的功能你必须用c或c++来写,生成dll,然后再在java程序中使用。详情可见 Thinking in Java 的附录。