📄 mainform.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
WSAData wsaData;
if (WSAStartup(MAKEWORD(2,0),&wsaData)!=0) //初始化WINSOCK
{
ShowMessage("错误的WinSock版本");
return ;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Refresh1Click(TObject *Sender)
{
char HostName[255];
LPHOSTENT lpHostEnt;
struct in_addr addr[2]; //本程序假设主机不是多宿主机,即最多只有
// 一块网卡和一个动态IP
for (int i=0; i< 2; i++)
memset(&addr[i],0,sizeof(in_addr)); //对in_addr结构清0,以利后面填写
if (gethostname(HostName,sizeof(HostName))==SOCKET_ERROR) // 得到本地主机名
{
ShowMessage("无法获取本地主机名");
return ;
}
Edit1->Text=HostName;
lpHostEnt=gethostbyname(HostName); //利用得到的主机名去获得主机结构
if (!lpHostEnt)
{
ShowMessage("无法获取主机信息");
return ;
}
for (int i=0; lpHostEnt->h_addr_list[i]!=0; i++) //从主机地址表中得到IP地址
memcpy(&addr[i],lpHostEnt->h_addr_list[i],sizeof(in_addr));
Edit2->Text=inet_ntoa(addr[0]);
Edit3->Text=inet_ntoa(addr[1]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
WSACleanup(); //释放WINSOCK调用
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit3->Text=Powersock1->LocalIP;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Label1Click(TObject *Sender)
{
ShellExecute(Handle, "open","mailto:yh@163.net", NULL,NULL,SW_SHOWDEFAULT);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Label2Click(TObject *Sender)
{
ShellExecute(Handle, "open","http://www.jlonline.com", NULL,NULL,SW_SHOWDEFAULT);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -