工控编程吧

标题: 上位机MFC如何获得本地计算机的名称 [打印本页]

作者: qq263946146    时间: 2019-8-6 10:58
标题: 上位机MFC如何获得本地计算机的名称
这里分享两种方法来获得计算机的名称。
首先工们在stdafx.h头文件中包含需要用到的头文件与库文件。
  1. #include <Winsock2.h>
  2. #pragma comment(lib,"Ws2_32.lib ")
  3. #define _ATL_APARTMENT_THREADED
  4. #include <atlbase.h>

  5. class CDemoModule : public CComModule
  6. {
  7. public:
  8.         LONG Unlock();
  9.         LONG Lock();
  10.         LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2);
  11.         DWORD dwThreadID;
  12. };
  13. extern CDemoModule _Module;
  14. #include <atlcom.h>
复制代码
然后就可以添加按钮来调用下面代码,查看效果了。
  1. void CGkbc8Dlg::OnButton1()
  2. {
  3.         //获得本地计算机NetBIOS名称
  4.         CString strName = _T("");
  5.         DWORD nSize = 1024;
  6.         ::GetComputerName(strName.GetBuffer(1024), &nSize);                                       
  7.         strName.ReleaseBuffer();
  8.         CString strText = _T("");
  9.         strText.Format(_T("本地计算机的名称:\n%s"), strName);
  10.         AfxMessageBox(strText);
  11. }
复制代码
  1. void CGkbc8Dlg::OnButton2()
  2. {
  3.         //初始化WinSock
  4.         WSADATA WSAData;
  5.         if (WSAStartup(MAKEWORD(2,0), &WSAData) != 0)
  6.         {
  7.                 return;
  8.         }
  9.        
  10.         //获得本地计算机主机名称
  11.         CString strName = _T("");
  12.         gethostname(strName.GetBuffer(1024), 1024);
  13.         strName.ReleaseBuffer();
  14.         CString strText = _T("");
  15.         strText.Format(_T("本地计算机的名称:\n%s"), strName);
  16.         AfxMessageBox(strText);

  17.         //清理WinSock
  18.         WSACleanup();       
  19. }
复制代码
(, 下载次数: 2)