사용자 참여란
사용자 참여란입니다. 기본적으로 제가 운영하는 사이트의 강좌/팁 란이지만, 사용자들이 참여할 게시판이 있질 않아서, 혹시나 하는 마음에 추가합니다.
글 수 15
// Windows 유닛의 'GetFileVersionInfo'함수로 일반적으로 파일의 버전을 구하지만
// advpack.dll에 GetVerionFromFile 함수 호출
GetVersionFromFile(TEST_FILE, pwMSVer, pwLSVer, 1);
// MSh값과 MSl값 구하기
pwMShVer := pwMSVer div VER_MAX;
pwMSlVer := pwMSVer mod VER_MAX;
// LSh값과 LSl값 구하기
pwLShVer := pwLSVer div VER_MAX;
pwLSlVer := pwLSVer mod VER_MAX;
// 일반 버전 양식으로 변경
pwVersion := IntToStr(pwMShVer) + '.' + IntToStr(pwMSlVer) + '.' +
IntToStr(pwLShVer) + '.' + IntToStr(pwLSlVer);
// 버전 출력
ShowMessage(pwVersion);
// C:\windows\system32 폴더 안에 보면 'advpack.dll'파일이 있습니다.
// 그중 GetVersionFromFile이라는 함수가 있는데 그 함수로도 파일의 버전을 구하실수가 있습니다.
// DLL 함수 호출 인자는 다음과 같습니다.
// DLL의 함수를 먼저 선언합니다.
// DLL의 함수를 먼저 선언합니다.
function GetVersionFromFile(lpszFilename : String;
var pwMSVer : LongInt;
var pwLSVer : LongInt;
bVersion : LongInt): LongInt; stdcall; external 'c:\windows\system32\advpack.dll';
var pwMSVer : LongInt;
var pwLSVer : LongInt;
bVersion : LongInt): LongInt; stdcall; external 'c:\windows\system32\advpack.dll';
procedure TForm1.Button1Click(Sender: TObject);
const
VER_MAX = $10000;
TEST_FILE = 'C:\windows\system32\notepad.exe'; // 샘플은 메모장 //
var
pwMSVer : LongInt;
pwMShVer, pwMSlVer : Integer;
pwLSVer : LongInt;
pwLShVer, pwLSlVer : Integer;
PwVersion : String;
begin
pwMSVer := 0;
pwLSVer := 0;
const
VER_MAX = $10000;
TEST_FILE = 'C:\windows\system32\notepad.exe'; // 샘플은 메모장 //
var
pwMSVer : LongInt;
pwMShVer, pwMSlVer : Integer;
pwLSVer : LongInt;
pwLShVer, pwLSlVer : Integer;
PwVersion : String;
begin
pwMSVer := 0;
pwLSVer := 0;
// advpack.dll에 GetVerionFromFile 함수 호출
GetVersionFromFile(TEST_FILE, pwMSVer, pwLSVer, 1);
// MSh값과 MSl값 구하기
pwMShVer := pwMSVer div VER_MAX;
pwMSlVer := pwMSVer mod VER_MAX;
// LSh값과 LSl값 구하기
pwLShVer := pwLSVer div VER_MAX;
pwLSlVer := pwLSVer mod VER_MAX;
// 일반 버전 양식으로 변경
pwVersion := IntToStr(pwMShVer) + '.' + IntToStr(pwMSlVer) + '.' +
IntToStr(pwLShVer) + '.' + IntToStr(pwLSlVer);
// 버전 출력
ShowMessage(pwVersion);
end;
// 사실그냥 Windows 유닛에 있는 GetFileVersionInfo 쓰면 되기때문에 쓸일은 없을 것 같습니다.
//
// 이상으로 과니의 많이 쓸일 없는 팁였습니다. ㅋ
// 이상으로 과니의 많이 쓸일 없는 팁였습니다. ㅋ






