PDA

View Full Version : فارسی کردن System Menu



sasan_vm
شنبه 10 آذر 1386, 08:51 صبح
سلام

فایل ضمیمه روش فارسی کردن system menu را با سورس کد نشان میدهد

کدهای کاربردی

مخفی کردن برنامه از Taskbar:


void __fastcall ShowApplication(bool Show)
{
DWORD dwExStyle = GetWindowLong(Application->Handle, GWL_EXSTYLE);
if ( Show )
dwExStyle &= ~WS_EX_TOOLWINDOW;
else
dwExStyle |= WS_EX_TOOLWINDOW;
SetWindowLong(Application->Handle, GWL_EXSTYLE, dwExStyle);
}


بدست آوردن ورژن سیستم عامل windows:


AnsiString __fastcall RetrieveOSInfo()
{
DWORD osMajorVersion;
DWORD osMinorVersion;
DWORD osPlatformId;
DWORD osBuild;
AnsiString osUpdateName;
WORD osSPMajorVersion;
WORD osSPMinorVersion;
WORD osSuite;
WORD osType;
AnsiString osName;
// Get operating system version information
OSVERSIONINFOEX vie;
vie.dwOSVersionInfoSize = sizeof(vie);
if( GetVersionEx((LPOSVERSIONINFO)&vie) )
{
osMajorVersion = vie.dwMajorVersion;
osMinorVersion = vie.dwMinorVersion;
osPlatformId = vie.dwPlatformId;
osBuild = vie.dwBuildNumber;
osUpdateName = AnsiString(vie.szCSDVersion);
osSPMajorVersion = vie.wServicePackMajor;
osSPMinorVersion = vie.wServicePackMinor;
#if WINVER > 0x0400
osSuite = vie.wSuiteMask;
osType = vie.wProductType;
#else
osSuite = vie.wReserved[0];
osType = LOBYTE(vie.wReserved[1]);
#endif
}
else
{
osSPMajorVersion = 0;
osSPMinorVersion = 0;
osSuite = 0;
osType = 0;
OSVERSIONINFO vi;
vi.dwOSVersionInfoSize = sizeof(vi);
if( GetVersionEx(&vi) )
{
osMajorVersion = vi.dwMajorVersion;
osMinorVersion = vi.dwMinorVersion;
osPlatformId = vi.dwPlatformId;
osBuild = vi.dwBuildNumber;
osUpdateName = AnsiString(vi.szCSDVersion);
}
else
{
osMajorVersion = 0;
osMinorVersion = 0;
osPlatformId = 0;
osBuild = 0;
}
}
if( osPlatformId != VER_PLATFORM_WIN32_NT ) osBuild = LOWORD(osBuild);
// OS name
if(osPlatformId == VER_PLATFORM_WIN32s) osName = "Win32s";
else if(osPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
if(osMajorVersion > 4) osName = "Windows";
else if(osMajorVersion == 4)
{
if(osMinorVersion >= 90) osName = "Windows Me";
else if(osMinorVersion >= 10) osName = "Windows 98";
else osName = "Windows 95";
}
else osName.printf("Windows %u.%u", osMajorVersion, osMinorVersion);
}
else if(osPlatformId == VER_PLATFORM_WIN32_NT)
{
if(osMajorVersion > 5) osName = "Windows NT";
else if(osMajorVersion == 5)
{
if(osMinorVersion >= 1)
{
if(osType == VER_NT_SERVER && osMinorVersion >= 2)
{
if(osSuite & VER_SUITE_BLADE) osName = "Windows Server 2003, Web Edition";
if(osSuite & VER_SUITE_DATACENTER) osName = "Windows Server 2003, Datacenter Edition";
if(osSuite & VER_SUITE_ENTERPRISE) osName = "Windows Server 2003, Enterprise Edition";
else osName = "Windows Server 2003 family";
}
else if(osType == VER_NT_WORKSTATION)
{
if(osSuite & VER_SUITE_PERSONAL) osName = "Windows XP Home Edition";
else osName = "Windows XP Professional";
}
else
{
osName = "Windows XP/Server";
}
}
else
{
if(osType == VER_NT_SERVER)
{
if(osSuite & VER_SUITE_DATACENTER) osName = "Windows 2000 DataCenter Server";
else if(osSuite & VER_SUITE_ENTERPRISE) osName = "Windows 2000 Advanced Server";
else osName = "Windows 2000 Server";
}
else if(osType == VER_NT_WORKSTATION) osName = "Windows 2000 Professional";
else osName = "Windows 2000";
}
}
else if(osMajorVersion == 4)
{
if(osType == VER_NT_SERVER) osName = "Windows NT 4.0 Server";
else if(osType == VER_NT_WORKSTATION) osName = "Windows NT 4.0 Workstation";
else osName = "Windows NT 4.0";
}
else osName.printf("Windows NT %u.%u", osMajorVersion, osMinorVersion);
}
else osName = "[Unknown]";
if (osName != "[Unknown]")
{
AnsiString ver;
ver.printf(", Version %u.%u (Build %u)", osMajorVersion, osMinorVersion, osBuild);
osName += ver;
}
return (osName + osUpdateName);
}
#pragma warn +aus


برنامه یا سرویس مورد نظر اجرا شده است:


AnsiString __fastcall FindTask(const AnsiString & ExeFileName)
{
AnsiString Result;
bool ContinueLoop;
HANDLE FSnapshotHandle;
PROCESSENTRY32 FProcessEntry32;

Result = EmptyStr;
FSnapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize = sizeof(PROCESSENTRY32);
ContinueLoop = Process32First(FSnapshotHandle, &FProcessEntry32);

while ( ContinueLoop )
{
if ( (UpperCase(ExtractFileName(FProcessEntry32.szExeFi le)) == UpperCase(ExeFileName)) ||
(UpperCase(FProcessEntry32.szExeFile) == UpperCase(ExeFileName)) )
Result = FProcessEntry32.szExeFile;
ContinueLoop = Process32Next(FSnapshotHandle, &FProcessEntry32);
}

CloseHandle(FSnapshotHandle);
return Result;
}


خاتمه دادن به برنامه یا سرویس اجرا شده:


int __fastcall KillTask(const AnsiString & ExeFileName)
{
int Result;

bool ContinueLoop;
HANDLE FSnapshotHandle;
PROCESSENTRY32 FProcessEntry32;

Result = 0;
FSnapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize = sizeof(PROCESSENTRY32);
ContinueLoop = Process32First(FSnapshotHandle, &FProcessEntry32);

while ( ContinueLoop )
{
if ( (UpperCase(ExtractFileName(FProcessEntry32.szExeFi le)) == UpperCase(ExeFileName)) ||
(UpperCase(FProcessEntry32.szExeFile) == UpperCase(ExeFileName)) )
Result = TerminateProcess( OpenProcess(PROCESS_TERMINATE, false, FProcessEntry32.th32ProcessID), 0 );
ContinueLoop = Process32Next(FSnapshotHandle, &FProcessEntry32);
}

CloseHandle(FSnapshotHandle);
return Result;
}


بدست اوردن ورژن کامل یک برنامه یا dll:


AnsiString __fastcall GetFileFullVersion(const AnsiString &strFilename)
{
DWORD dwVersionDataLen;
char * pVersionData = NULL;
AnsiString strResult = EmptyStr;

try
{
dwVersionDataLen = GetFileVersionInfoSize(strFilename.c_str(), NULL);
if ( dwVersionDataLen )
{
pVersionData = new char[dwVersionDataLen];
if ( GetFileVersionInfo(strFilename.c_str(), 0, dwVersionDataLen, pVersionData) )
{
LPVOID pVal;
UINT nValLen;
if ( VerQueryValue(pVersionData, "\\", &pVal, &nValLen) )
{
if ( nValLen == sizeof(VS_FIXEDFILEINFO) )
{
VS_FIXEDFILEINFO * pFixedFileInfo = (VS_FIXEDFILEINFO*) pVal;
char buffer[50];

strResult.printf("%d.%d.%d.%d",
HIWORD(pFixedFileInfo->dwFileVersionMS), LOWORD(pFixedFileInfo->dwFileVersionMS),
HIWORD(pFixedFileInfo->dwFileVersionLS), LOWORD(pFixedFileInfo->dwFileVersionLS));
}
}
}
if (pVersionData) delete pVersionData;
}
}
catch (...)
{
strResult = "x.x.x.x";
}
return strResult;
}


بدست آوردن IP کامپیوتر client:


AnsiString __fastcall GetIPAddress()
{
WORD wVersionRequested;
WSAData wsaData;
CHAR Buffer[256];
hostent * P;
AnsiString IPAddress
IPAddress = EmptyStr;
wVersionRequested = MAKEWORD(1,1);
if ( !WSAStartup(wVersionRequested, &wsaData) )
{
ZeroMemory(Buffer, 256);
P = gethostbyname(Buffer);
IPAddress = (inet_ntoa)(*((in_addr*)P->h_addr_list[0]));
}
WSACleanup();
return IPAddress;
}