PDA

View Full Version : مبتدی: دریافت File Descripion یک فایل DLL



Collector
چهارشنبه 11 دی 1392, 17:17 عصر
سلام
من با این برنامه میخوام به File Descripion یک فایل اجرایی دسترسی پیدا کنم اما به نتیجه نرسیدم.

string GeyDesc(const char* FileName)
{
string FilePath = "C:\\Library.dll";

std::wstring stemp = s2ws(FilePath);
LPCWSTR result = stemp.c_str();

// Get the file icon.
SHFILEINFO FileInfo = { 0 };
SHGetFileInfo(result,
0,
&FileInfo,
sizeof(FileInfo),
SHGFI_TYPENAME);

cout<<(char*)FileInfo.szDisplayName<<endl;
return "";
}

r00tkit
چهارشنبه 11 دی 1392, 18:35 عصر
این چه وضع کد زدنه ؟ یه بار از char* به wchar* تبدیل کردی بعد رفتی برعکسشو انجام دادی
مقدار باز گشتی رو هم چک نکردی
و در اخر برای بدست اوردن szDisplayName باید فلگ SHGFI_DISPLAYNAME رو ست کنی


string GeyDesc()
{
WCHAR FileName[] =L"C:\\File.exe";
DWORD hr;
SHFILEINFO FileInfo = { 0 };
hr=SHGetFileInfo(FileName,
0,
&FileInfo,
sizeof(FileInfo),
SHGFI_DISPLAYNAME);
if (SUCCEEDED(hr))
{
cout<<(char*)FileInfo.szDisplayName<<endl;
}

}

Collector
چهارشنبه 11 دی 1392, 19:43 عصر
این چه وضع کد زدنه ؟ یه بار از char* به wchar* تبدیل کردی بعد رفتی برعکسشو انجام دادی
مقدار باز گشتی رو هم چک نکردی
و در اخر برای بدست اوردن szDisplayName باید فلگ SHGFI_DISPLAYNAME رو ست کنی


string GeyDesc()
{
WCHAR FileName[] =L"C:\\File.exe";
DWORD hr;
SHFILEINFO FileInfo = { 0 };
hr=SHGetFileInfo(FileName,
0,
&FileInfo,
sizeof(FileInfo),
SHGFI_DISPLAYNAME);
if (SUCCEEDED(hr))
{
cout<<(char*)FileInfo.szDisplayName<<endl;
}

}

الان نام فایل را برمیگردانه من Library v1.0 را میخوام

r00tkit
چهارشنبه 11 دی 1392, 21:02 عصر
این اطلاعات توی ریسورس ذخیره می شه
http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx
حالا برای بست اوردنش :
می تونی از ورژن ای پی ای استفاده کنی
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646981(v=vs.85).aspx
https://www.microsoft.com/msj/0498/c0498.aspx
http://crowback.tistory.com/116( سورس هم داره )
http://www.codeproject.com/Articles/37133/Simple-Version-Resource-Tool-for-Windows
http://www.codeproject.com/Articles/8628/Retrieving-version-information-from-your-local-app
اینم بخون http://msdn.microsoft.com/en-us/magazine/bb985842.aspx
http://blog.smartbear.com/automated-build-studio/automated-build-studio-4-sneak-peek-modifying-file-version-information/
http://tokovalue.jp/GetFileVersionInfo_U.htm
و همچنین خودت خام بری ریسورس رو بخونی :
http://www.codeproject.com/Articles/8628/Retrieving-version-information-from-your-local-app
http://verinfo.codeplex.com/
http://www.codeguru.com/cpp/misc/misc/versioninfo/article.php/c217/Get-VersionInfo-from-resource-file.htm

хороший замок :)