Suite d'imposition professionnelle en Folder-Level Scripts JS (7 modules + verification de licence Vision), avec un plugin natif hybride optionnel (WinINet + Registre) pour deplacer la verification de licence en code compile. Installeur install.bat sur le meme modele que celui du projet desktop (git portable, detection automatique des dossiers Acrobat).
55 lines
2.5 KiB
C++
Executable File
55 lines
2.5 KiB
C++
Executable File
// LicenceVerifier.h
|
|
// ---------------------------------------------------------------------------
|
|
// Verification de licence Vision (meme serveur/API que le projet "impose") -
|
|
// implementation Win32 pure (WinINet + Registre), independante du SDK
|
|
// Acrobat. Peut etre compilee et testee comme executable console autonome
|
|
// via TestConsole.cpp avant d'etre integree au plugin Acrobat (PluginMain.cpp).
|
|
//
|
|
// Dependances : Wininet.lib (WinINet), Advapi32.lib (Registre) - standard
|
|
// Win32, disponibles avec n'importe quelle installation de Visual Studio.
|
|
// ---------------------------------------------------------------------------
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
namespace CDImpLicence {
|
|
|
|
struct ResultatVerification {
|
|
bool succesReseau = false; // la requete HTTP a reussi (reponse recue)
|
|
bool valide = false; // la licence est active selon le serveur
|
|
int offlineTimeoutHeures = 24;
|
|
std::string erreur; // message d'erreur eventuel
|
|
std::string reponseBrute; // corps de la reponse, pour diagnostic
|
|
};
|
|
|
|
// Construit l'URL de verification et effectue la requete GET.
|
|
// serveurUrl : ex. "https://vision.copydev.fr/api/license.php"
|
|
ResultatVerification VerifierLicence(
|
|
const std::wstring& serveurUrl,
|
|
const std::wstring& cleLicence,
|
|
const std::wstring& machineId,
|
|
const std::wstring& hostname,
|
|
const std::wstring& produit
|
|
);
|
|
|
|
// Identifiant machine stable : tente d'utiliser le nom de la machine
|
|
// Windows (GetComputerNameW) combine au volume serial number du disque
|
|
// systeme (GetVolumeInformationW), deux API Win32 standard et fiables -
|
|
// contrairement a l'approche JS qui devait generer un identifiant
|
|
// aleatoire faute d'acces materiel direct.
|
|
std::wstring ObtenirMachineId();
|
|
std::wstring ObtenirHostname();
|
|
|
|
// Ecrit le verdict de licence dans HKCU\Software\Copydev\ImposingAcrobat
|
|
// sous forme de chaines REG_SZ simples (lisibles depuis le JS via
|
|
// WScript.Shell.RegRead, qui gere mal certains types REG_DWORD/QWORD) :
|
|
// LicenceOK "1" ou "0"
|
|
// LicenceValideJusqua timestamp Unix (secondes, en texte)
|
|
void EcrireVerdictRegistre(bool valide, int dureeToleranceHeures);
|
|
|
|
// Relit le verdict actuellement stocke (utilise par TestConsole.cpp pour
|
|
// verifier l'ecriture, et a titre de reference pour l'equivalent JS).
|
|
bool LireVerdictRegistre(bool& valideOut, long long& expirationUnixOut);
|
|
|
|
} // namespace CDImpLicence
|