// 获得计算机名
AnsiString GetComputerName()
{

      char   name[MAX_COMPUTERNAME_LENGTH   +   1];    
      DWORD   size   =   MAX_COMPUTERNAME_LENGTH   +   1;    
      if(GetComputerName(name,&size))    
              return   AnsiString(name);    
      return   "";    

}

// 获得当前用户名
AnsiString GetUserName()
{

      char   username[MAX_COMPUTERNAME_LENGTH   +   1];    
      DWORD   size   =   MAX_COMPUTERNAME_LENGTH   +   1;    
      if(GetUserName(username,&size))    
              return   AnsiString(username);    
      return   "";    

}

// Windows 文件夹
AnsiString GetWindowsDir()
{

      String   path;    
      path.SetLength(MAX_PATH);    
      path.SetLength(GetWindowsDirectory(path.c_str(),path.Length()));    
      return   path;    

}

// System 文件夹
AnsiString GetSystemDir()
{

      String   path;    
      path.SetLength(MAX_PATH);    
      path.SetLength(GetSystemDirectory(path.c_str(),path.Length()));    
      return   path;          

}

// Temp 文件夹
AnsiString GetTempDir()
{

      String   path;    
      path.SetLength(MAX_PATH);    
      path.SetLength(GetTempPath(MAX_PATH,path.c_str()));    
      return   path;          

}
// 当前文件夹
AnsiString GetCurrDir()
{

      String   path;    
      path.SetLength(MAX_PATH);    
      path.SetLength(GetCurrentDirectory(MAX_PATH,path.c_str()));    
      return   path;    

// return ExtractFilePath(Application->ExeName);
// return ExtractFilePath(ParamStr(0));
}

void Jpg2Bmp(String JpgFile, String BmpFile) //将Jpg文件转换为Bmp文件
{

      TJPEGImage   *MyJPEG   =   new   TJPEGImage;    
      try    
      {    
              MyJPEG->LoadFromFile(JpgFile);   //图片位置    
              Graphics::TBitmap   *MyBMP   =   new   Graphics::TBitmap;    
              MyBMP->Assign(MyJPEG);    
              MyBMP->SaveToFile(BmpFile);           //保存路径    
              delete   MyBMP;    
      }    
      __finally    
      {    
              delete   MyJPEG;    
      }    

}

void Bmp2Jpg(String BmpName, String JpgName) //将bmp文件转换为jpg文件
{

      Graphics::TBitmap   *MyBMP   =   new   Graphics::TBitmap;    
      try    
      {    
              MyBMP->LoadFromFile(BmpName);   //图片位置    
              TJPEGImage   *MyJPEG   =   new   TJPEGImage;    
              MyJPEG->Assign(MyBMP);    
              MyJPEG->CompressionQuality   =   60;   //压缩比例   1..100    
              MyJPEG->Compress();    
              MyJPEG->SaveToFile(JpgName);         //保存路径    
              delete   MyJPEG;    
      }    
      __finally    
      {    
              delete   MyBMP;    
      }    

}

// 开机后自动运行程序设置
#include <Registry.hpp>
void __fastcall AutoRunFromStart(bool Set,AnsiString Title, AnsiString ExeFile)
{

      TRegistry   *Reg;    
      Reg   =   new   TRegistry();    
      Reg->RootKey   =   HKEY_LOCAL_MACHINE;    
      if(Set)    
      {    
              if(Reg->OpenKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run",false))    
                      Reg->WriteString(Title,ExeFile);    
              delete   Reg;    
      }    
      else    
      {    
              if(Reg->OpenKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run",false))    
                      Reg->WriteString(Title,";   "   +   ExeFile);    
      }    
      delete   Reg;    

}
// 根据窗口句柄获得窗口的Caption
AnsiString GetWndCaption(HWND hWnd)
{

      AnsiString   strCaption;    
      if(hWnd)    
      {    
              int   Length   =   (int)SendMessage(hWnd,WM_GETTEXTLENGTH,0,0);    
              if(Length)    
              {    
                      char   *buf   =   new   char[Length+2];    
                      buf[Length]   =   '/0';    
                      buf[Length+1]   =   '/0';    
                      SendMessage(hWnd,WM_GETTEXT,Length+1,(LPARAM)buf);    
                      strCaption   =   AnsiString(buf);    
                      delete   buf;    
              }    
      }    
      return   strCaption;    

}

// 根据窗口句柄获得窗口的类名
AnsiString GetWndClassName(HWND hWnd)
{

      char   buffer[256];    
      GetClassName(hWnd,buffer,255);    
      return   AnsiString(buffer);    

}

// 窗口位于最上
void __fastcall SetStayOnTop(bool Set,void *Handle)
{

      if(Set)    
              SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);    
      else    
              SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);    

}
// 是否显示在任务栏
void __fastcall ShowOnTaskbar(bool Set,void *Handle)
{

      if(Set)    
              ShowWindow(Handle,SW_SHOW);    
      else    
              ShowWindow(Handle,SW_HIDE);    

}
// 获得子网掩码
#include <Registry.hpp>
AnsiString GetSubnetMask()
{

      AnsiString   SubnetMask;    
      TRegistry   *reg   =   new   TRegistry;    
      DWORD   Version   =   GetVersion();    
      if(Version   <   0x80000000)   //WindowsNT    
      {    
              reg->RootKey   =   HKEY_LOCAL_MACHINE;    
              if(reg->OpenKeyReadOnly("SYSTEM//CurrentControlSet//Services//Tcpip//Linkage"))    
              {    
                      int   BuffLength   =   reg->GetDataSize("Bind");    
                      char   *Buff   =   new   char[BuffLength+1];    
                      reg->ReadBinaryData("Bind",Buff,BuffLength);    
                      AnsiString   Interface   =   (AnsiString)Buff;    
                      Interface   =   Interface.SubString(9,Interface.Length()-8);    
                      delete   []   Buff;    
                      reg->CloseKey();    

                      if(reg->OpenKeyReadOnly("SYSTEM//CurrentControlSet//Services//"+Interface+"//Parameters//Tcpip"))    
                      {    
                              BuffLength   =   reg->GetDataSize("SubnetMask");    
                              Buff   =   new   char[BuffLength+1];    
                              reg->ReadBinaryData("SubnetMask",Buff,BuffLength);    
                              SubnetMask   =   (AnsiString)Buff;    
                              delete   []   Buff;    
                      }    
              }    
      }    
      else   //Windows9X    
      {    
              int   i;    
              reg->RootKey   =   HKEY_LOCAL_MACHINE;    
              TStringList   *ent   =   new   TStringList;    
              if(reg->OpenKeyReadOnly("System//CurrentControlSet//Services//Class//NetTrans"))    
                      reg->GetKeyNames(ent);    
              reg->CloseKey();    
              for(i=0;i<ent->Count   ;i++)    
              {    
                      reg->CloseKey();    
                      if(reg->OpenKeyReadOnly("System//CurrentControlSet//Services//Class//NetTrans//"   +ent->Strings[i]))    
                      {    
                              AnsiString   ip   =   reg->ReadString("IPAddress");    
                              AnsiString   node   =   reg->ReadString("NodeType");    
                              if(ip   !=   "0.0.0.0"   &&   ip   !=   ""   &&   node   ==   "1")    
                              {    
                                      SubnetMask   =   reg->ReadString("IPMask");    
                                      if(SubnetMask   !=   ""   &&   SubnetMask   !=   "0.0.0.0")    
                                              break;    
                              }    
                      }    
              }    
              delete   ent;    
      }    
      delete   reg;    
      return   SubnetMask;    

}

include<winsock.h>

AnsiString GetLocalIP()
{

      //Start   up   WinSock    
      WORD   wVersionRequested   =   MAKEWORD(1,1);;    
      WSADATA   wsaData;    
      WSAStartup(wVersionRequested,   &wsaData);    

      hostent   *p;    
      char   s[128];    
      char   *p2;    
      gethostname(s,128);//获取指定计算机的名字    
      p   =   gethostbyname(s);    
      p2   =   inet_ntoa(*((in_addr   *)p->h_addr));   //获取指定计算机的IP地址    
      WSACleanup();    
      return   p2;    

}
// 打开、关闭光驱
#include "mmsystem.h"
void CDRomOpen(BOOL bOpenDrive,TCHAR cDrive)
{

      MCI_OPEN_PARMS   open;    
      MCI_STATUS_PARMS   status;    
      DWORD   flags;    
      TCHAR   szDriveName[4];    
      strcpy(szDriveName,"?:");    
      ::ZeroMemory(&open,sizeof(MCI_OPEN_PARMS));    
      open.lpstrDeviceType   =   (LPCSTR)MCI_DEVTYPE_CD_AUDIO;    
      szDriveName[0]   =   cDrive;    
      open.lpstrElementName   =   szDriveName;    
      flags   =   MCI_OPEN_TYPE   +   MCI_OPEN_TYPE_ID   +   MCI_OPEN_ELEMENT   +   MCI_OPEN_SHAREABLE;    
      if(!mciSendCommand(0,MCI_OPEN,flags,(unsigned   long)&open))    
      {    
              status.dwItem   =   MCI_STATUS_READY;    
              if(bOpenDrive)    
                      mciSendCommand(open.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);    
              else    
                      mciSendCommand(open.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0);    
              mciSendCommand(open.wDeviceID,MCI_CLOSE,MCI_WAIT,0);    
      }    

}
// 获得端口
#include <Registry.hpp>
void __fastcall GetPort(TStrings *List)
{

      TRegistry   *reg   =   new   TRegistry;    
      reg->RootKey   =   HKEY_LOCAL_MACHINE;    
      reg->OpenKey("HARDWARE//DEVICEMAP//SERIALCOMM",true);    
      reg->GetValueNames(List);    
      List->BeginUpdate();    
      for(int   i=0;i<List->Count;i++)    
              List->Strings[i]   =   reg->ReadString(List->Strings[i]);    
      List->EndUpdate();    
      delete   reg;    

}

// 结束一个进程
void __fastcall ProcessKill(int pPid)
{

      HANDLE   ps   =   OpenProcess(1,false,pPid);    
      if(ps   &&   TerminateProcess(ps,-9))    
      {    
              MessageBox(Handle,"中止成功!","信息",MB_OK|MB_ICONINFORMATION);    
      }    
      else    
      {    
              MessageBox(Handle,"中止失败!","信息",MB_OK|MB_ICONWARNING);    
      }    

}
String __fastcall TfrmTest::GetVersionInfo(String FileName)
{
/

  函数名:GetVersionInfo  
  用途:返回指定文件的版本信息  

/

      FileName=ExtractFilePath(Application->ExeName)+FileName;  
      if(!FileExists(FileName))  
      {  
        //将要更新的文件不存在  
        return   0;  
      }  
      //首先获得版本信息资源的长度  
        DWORD   dwHandle,InfoSize;  
        String   strVer;  
        InfoSize   =   GetFileVersionInfoSize(FileName.c_str(),&dwHandle);  
        //将版本信息资源读入缓冲区  
        char   *InfoBuf   =   new   char[InfoSize];  
        GetFileVersionInfo(FileName.c_str(),0,InfoSize,InfoBuf);  
        //获得生成文件使用的代码页及字符集信息  
        char   *pInfoVal;  
        unsigned   int   dwInfoValSize;  
        try  
        {  
          VerQueryValue(InfoBuf,"//VarFileInfo//Translation",&((void   *)pInfoVal),   &dwInfoValSize);  
          AnsiString   V   =   "//StringFileInfo//"   +IntToHex(*((unsigned   short   int   *)   pInfoVal),4)   +IntToHex(*((unsigned   short   int   *)   &pInfoVal[2]),4)+   "//FileVersion";  
          //获得具体的版本号  
          VerQueryValue(InfoBuf,   V.c_str(),&((void   *)pInfoVal),&dwInfoValSize);  
          strVer=AnsiString(pInfoVal).SetLength(dwInfoValSize-1);  
          delete   InfoBuf;  
        }  
        catch(...)  
        {  
          return   0;  
        }  
        if(strVer.Length()>10)  
        {  
          return   0;  
        }  
        String   TmpStr;  

//截取.

        for   (int   i=1;i<=strVer.Length();i++)  
        {  
            if(strVer.SubString(i,1)!=".")  
            {  
              TmpStr=TmpStr+strVer.SubString(i,1);  
            }  
            else   if((strVer.SubString(i,1)==".")&&(i==2))  
            {  
              TmpStr=TmpStr+strVer.SubString(i,1);  
            }  
        }  

//截取,

        if(strVer.Pos(",")!=0)  
          {  
            TmpStr="";  
            for   (int   i=1;i<=strVer.Length();i++)  
            {  
              if((strVer.SubString(i,1)!=",")&&(strVer.SubString(i,1)!="   "))  
              {  
                TmpStr=TmpStr+strVer.SubString(i,1);  
              }  
              else   if((strVer.SubString(i,1)==",")&&(i==2))  
              {  
                TmpStr=TmpStr+".";  
              }  
          }  
        }  

        strVer=TmpStr;  
        return   strVer;  

}

本文链接地址:https://const.net.cn/736.html

标签: none

添加新评论