wetzzer
Messages postés1Date d'inscriptiondimanche 14 mai 2017StatutMembreDernière intervention14 mai 2017
-
Modifié le 16 mai 2017 à 18:19
lyndalinad
Messages postés1Date d'inscriptionvendredi 7 juillet 2017StatutMembreDernière intervention 1 août 2017
-
1 août 2017 à 00:12
Bonjour,
J'ai des soucis avec les deux fonctions en bas de mon code qui s'appliquent dans le registre. Lorsque je compile mon code, cela ne marche pas. Devrais-je travailler avec les droits d'admin ? Je vous avoue que je ne sais plus quoi faire...
#include <windows.h>
//#include <winreg.h>//contient windows.h et est indispensable pour setvalue
#include <stdio.h>
#include "math.h"
HINSTANCE instance;
//usb début
char szClassName[ ] = "WindowsApp";
// structure générique
struct DEV_BROADCAST_HDR
int dbch_size;
int dbch_devicetype;
int dbch_reserved;
};
struct DEV_BROADCAST_VOLUME
{
int dbcv_size;
int dbcv_devicetype;
int dbcv_reserved;
int dbcv_unitmask;
short dbcv_flags;
};
//usb fin
LRESULT CALLBACK
procedureFenetrePrincipale(HWND,
UINT,
WPARAM,
LPARAM);
BOOL APIENTRY /*/fonction callback avec un type de retour different/*/aPropos_procedure(HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
int WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance,
LPSTR lignesDeCommande, int modeDAffichage)
{
HWND fenetrePrincipale;
MSG message;
WNDCLASS classeFenetre;
instance = cetteInstance;
classeFenetre.style = 0;
classeFenetre.lpfnWndProc = procedureFenetrePrincipale;
classeFenetre.cbClsExtra = 0;
classeFenetre.cbWndExtra = 0;
classeFenetre.hInstance = NULL;
classeFenetre.hIcon = LoadIcon(NULL, "C:/Users/Nico/Desktop/SmartDef/1490533751_twitter.ico");
classeFenetre.hCursor = LoadCursor(NULL, IDC_ARROW);
classeFenetre.hbrBackground = (HBRUSH)(1 + COLOR_ACTIVEBORDER);
classeFenetre.lpszMenuName = NULL;
classeFenetre.lpszClassName = "classeF";
if(!RegisterClass(&classeFenetre)) return FALSE; //
fenetrePrincipale = CreateWindow("classeF", "SmartDef",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT, 1000, 700,
NULL, LoadMenu(instance, "ID_MENU"),
cetteInstance, NULL);
if (!fenetrePrincipale) return FALSE;
//ShowWindow(fenetrePrincipale, SW_SHOW); // afficher la fenetrePrincipale
UpdateWindow(fenetrePrincipale);
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
LRESULT CALLBACK procedureFenetrePrincipale(HWND fenetrePrincipale, UINT message, WPARAM wParam, LPARAM lParam)
{
//détection USB
switch (message)
{
case WM_DEVICECHANGE:
{
if (wParam == DBT_DEVICEARRIVAL)//si arrivé usb
{
MessageBox(fenetrePrincipale, "Nouveau peripherique, SmartDefense prend le relais",
"SmartDef", MB_ICONINFORMATION);
}
break;
}
case WM_DESTROY:// envoyer à la destruction de la fenètre
{
PostQuitMessage (0);
break;
}
default: // for messages that we don't deal with
return DefWindowProc (fenetrePrincipale, message, wParam, lParam);
}
return 0;
}
//démarage avec windows
void addToStartup(const char *path = "C:/Users/Nicolas/Desktop/SmartDef/bin/Release/SmartDef.exe",
const char *name = "SmartDef.exe", bool state = true)
{
HKEY key;
if(state)
{
MessageBox(NULL, "lancement addtostartup", "SmartDef", MB_ICONINFORMATION);
if( RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0,
KEY_ALL_ACCESS, &key)== ERROR_SUCCESS )
{
MessageBox(NULL, "impossible d'ouvrir la clef run", "SmartDef", MB_ICONINFORMATION);
}
else
{
if( RegSetValueEx(key, name, 0, REG_SZ, (BYTE*)path, strlen(path)+1) != ERROR_SUCCESS )
{
MessageBox(NULL, "impossible de définir une nouvelle valeur", "SmartDef", MB_ICONINFORMATION);
}
else
{
RegCloseKey(key);
}
}
}
else
{
RegCloseKey(key);
MessageBox(NULL, "echec addtostartup", "SmartDef", MB_ICONINFORMATION);
}
return;
}
//les clefs usb ne peuvent pas faire office de clavier
void ecritDef (bool stat = true, const char *nom = "writeProtect")
{
HKEY key;
if (stat)
{
MessageBox(NULL, "lancement ecritdef", "SmartDef", MB_ICONINFORMATION);
if( RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\StorageDevicePolicies",
0, KEY_WRITE, &key) != ERROR_SUCCESS )
{
if( RegCreateKeyEx (HKEY_LOCAL_MACHINE, TEXT("SYSTEM\\CurrentControlSet\\Control\\StorageDevicePolicies"),
0, REG_OPTION_NON_VOLATILE, 0, KEY_ALL_ACCESS, 0, &key,NULL)!= ERROR_SUCCESS )
{
MessageBox(NULL, "impossible de créer la celf StorageDevicePolicies", "SmartDef", MB_ICONINFORMATION);
}
else
{
const int valeur = 1;
if( RegSetValueEx(key, TEXT(nom), 0, REG_DWORD, (LPBYTE)&valeur, (DWORD)sizeof(valeur)) !=ERROR_SUCCESS )
{
MessageBox(NULL, "impossible de créer une valeur dans la clef StorageDevicePolicies",
"SmartDef", MB_ICONINFORMATION);
}
else
{
RegCloseKey(key);
}
}
}
else
{
RegCloseKey(key);
}
}
else
{
RegCloseKey(key);
MessageBox(NULL, "echec écritdef", "SmartDef", MB_ICONINFORMATION);
}
return;
}