git-svn-id: svn://10.65.10.50/branches/R_10_00@22692 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#define WIN32_LEAN_AND_MEAN
 | 
						|
#define STRICT
 | 
						|
#include <windows.h>
 | 
						|
#include <shellapi.h>
 | 
						|
 | 
						|
BOOL ErrorBox(LPCTSTR msg)
 | 
						|
{
 | 
						|
  ::MessageBox(NULL, msg, TEXT("Setup"), MB_OK | MB_ICONERROR);
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
BOOL FileExists(LPCTSTR name)
 | 
						|
{
 | 
						|
  return ::GetFileAttributes(name) != 0xFFFFFFFF;
 | 
						|
}
 | 
						|
 | 
						|
BOOL IsVistaOrLater()
 | 
						|
{
 | 
						|
  BOOL good = FALSE;
 | 
						|
	OSVERSIONINFOEX osinfo; ZeroMemory(&osinfo, sizeof(osinfo));
 | 
						|
	osinfo.dwOSVersionInfoSize = sizeof(osinfo);
 | 
						|
  if (::GetVersionEx((OSVERSIONINFO*)&osinfo))
 | 
						|
	  good = osinfo.dwMajorVersion >= 6;
 | 
						|
  return good;
 | 
						|
}
 | 
						|
 | 
						|
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hinstPrev, LPSTR pCmdLine, int nCmdShow) 
 | 
						|
{               
 | 
						|
  BOOL bFound = FileExists(TEXT("SetCmpUp.exe"));
 | 
						|
  if (!bFound)
 | 
						|
  {
 | 
						|
    ::SetCurrentDirectory(TEXT("program\\setup"));
 | 
						|
    bFound = FileExists(TEXT("SetCmpUp.exe"));
 | 
						|
    if (!bFound)
 | 
						|
      ErrorBox(TEXT("Impossibile trovare SetCmpUp.exe"));
 | 
						|
  }
 | 
						|
  if (bFound)
 | 
						|
  {
 | 
						|
    if (IsVistaOrLater())
 | 
						|
      bFound = (int)::ShellExecute(NULL, TEXT("runas"), TEXT("SetCmpUp.exe"), NULL, NULL, SW_SHOWMAXIMIZED) > 32;
 | 
						|
    else
 | 
						|
      bFound = ::WinExec("SetCmpUp.exe", SW_SHOWMAXIMIZED) > 32;
 | 
						|
    if (!bFound)
 | 
						|
      ErrorBox(TEXT("Impossibile eseguire SetCmpUp.exe"));
 | 
						|
  }
 | 
						|
 | 
						|
  return bFound ? 0 : 2;
 | 
						|
}
 |