AJOUTER UN PROGRAMME À LA LISTE DES EXCEPTIONS FW

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 13 sept. 2007 à 15:00
 Utilisateur anonyme - 14 sept. 2007 à 18:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44068-ajouter-un-programme-a-la-liste-des-exceptions-fw

Utilisateur anonyme
14 sept. 2007 à 18:17
Merci ^^
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
14 sept. 2007 à 18:06
Ben...je crois que Foxi a déjà tout dit !
Alors, on remet l'ouvrage sur le métier et on y va mon cher Hardouz...Faut pas mollir :(
Ne le prends pas mal, c'est vraiment pour ton bien.

Pour les autres : à bon entendeur, salut !
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 sept. 2007 à 19:59
"Merci mais jmaddresse a tous debutant"

c'est pas parce que tu t'addresse au debutant que tu doit forcement faire du code de "debutant".
au contraire, c'est en montrant du code astucieux et "pro" que les debutants s'ameliore. si tu leurs presente un code de merde, ils copieront ce code de merde et resteront toujours au même niveau.
un peu comme si delphiprog, florenth ou moi ecrivions encore dans nos programme pour debutant :

if UnBooleen = true then UnBooleen := false else UnBooleen := true;

au lieu de

UnBooleen := not UnBooleen;

tout ça parce qu'on s'addresserait a des debutant ... et inversement si on s'addresse a des "pro".

n'oublie pas cette regle d'or qui est de fournir au mieux un code "pro" comprehensible par tous et donc qui n'exclus pas les conventions, regles et astuces en matiere de programmation et surtout pas les regles de securité en matiere de creation dynamique d'objet/classe (try...finally).

en plus, je l'ai pas fait remarquer, mais un code si court aurait plus sa place dans les snippet.

de plus, ton code est uniquement fait pour CE programme, il ne permet pas d'ajouter d'autre programme a la liste du FW.
ce qui le rend pas souple du tout, et pourtant la souplesse est ce qu'il y a de plus important dans le code (aprés la propreté).

Les methodes dite pratique doivent toujours etre "standalone", cad, utilisable et portable dans n'importe quel programme.
Ont doit toujours eviter de rendre ces methodes intrusive ou dependante d'un programme ou d'element propre a un programme particulier.

un peu comme l'erreur d'appeler la variable Form1 dans le code de la classe TForm1, au lieu de Self!

ensuite, tu as une erreur dans le chemin de registre, ont appel jamais les ControlSetXXX ou autre entrée propre a une session car n'existe pas forcement sur toutes les machines.
il faut donc utiliser CurentControlSet ou les chemins globaux independant des sessions et disponible sur tout les systemes windows.
bien que ControlSet001 existe sur la plupart des windows xp, il en serait differement de ControlSet003 ou ControlSet015 ...

donc avant de dire "merci mais ..." genre "cause toujours tu m'interresse", reflechit un peu a pourquoi on te donne des conseils.

Un programmeur n'est pas seulement un "idiot" qui ecrit/copie stupidement du code, il doit etre capable aussi de comprendre ce code et d'expliquer comment il fonctionne, comment on l'utilise.
et quand un programmeur comprend son code, il est capable d'en voir les erreurs, les defauts, de le corriger, l'ameliorer, l'optimiser afin de toujours fournir l'une des meilleure methodes qu'il soit.
c'est pas pour rien que la programmation restera toujours un domaine elitiste et un art difficile a maitriser.
Utilisateur anonyme
13 sept. 2007 à 15:08
Merci mais jmaddresse a tous debutant :)
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 sept. 2007 à 15:03
function AddToFireWall(const FileName, Enabled : string) : boolean;
const
FWK = 'SYSTEM\CurrentControlSet\Services\'+
'SharedAccess\Parameters\FirewallPolicy\'+
'StandardProfile\AuthorizedApplications\List';
begin
result := false;
with TRegistry.create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(FWK,false) then
begin
if not ValueExists(FileName) then
WriteString(FileName, FileName+':*:enabled:'+Enabled);
result := true;
end;
CloseKey;
finally
free;
end;
end;
Rejoignez-nous