Tom's Guide > Forum > Programmation > aide pour un programme
Mot :    Pseudo :           
 

bonjour a tous

voila alors je veut faire un programme qui bloqueun site internet pour cela je pensait passer par windows enfaite le programme irai ajouter une ligne dans C:\WINDOWS\system32\driver\etc\host
mais voila je ne c'est pas comment faire je pensait faire quelque chose comme sa

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
printf("description du log\n" );
system("PAUSE" );
fopen C:\WINDOWS\system32\driver\etc\host
return EXIT_SUCCESS;
}

puis je voudrait ajouter cette ligne 127.0.0.1 www.google.fr

mais je ne sait pas comment je peut faire ces pour cela que je vous demande votre aide merci de me repondre et de ne pas fermer le sujet enfin si vous voulez mes expliquer moi pouquoi vous le fermer

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut
ton programme ne fait que ouvrir un fichier et encore la syntaxe est fausse
cherche comment on utilise fopen; fclose fwrite et tu auras ta réponse

Répondre à Anonyme

dac merci
alors j'ai chercher et j'ai trouver sa tu pense que c'est se qu'il me faut ? et j'ai changais les nom tu pense que sa marcherai puis j'ai oublier de dire le fichier hosts n'est pas directement en .txt sa le mettera automatiquement ??

<?php
$filename = 'hosts.txt';
$somecontent = "Ajout de chaîne dans le fichier \n";
// Assurons nous que le fichier est accessible en écriture
if (is_writable(hosts.txt)) {
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($C:\WINDOWS\system32\driver\etc\host, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $127.0.0.1 www.google.fr) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "L'écriture de ($127.0.0.1 www.google.fr) dans le fichier ($hosts) a réussi";
fclose($handle);
} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>

tu pense que sa marcherai je croit que j'ai deux trois erreur nn ?


Message édité par dadou45 le 20-02-2008 à 17:40:32
Répondre à dadou45

Tu voulais le faire en C non? parce que pour le php il te faut un server web sur ta machine !
regarde ce petit tuto
http://www.siteduzero.com/tuto-3-4 [...] hiers.html


Message édité par Anonyme le 20-02-2008 à 19:01:41
Répondre à Anonyme

ba ouai je voulait le faire en C c'est bonj se que j'ai mis ou si c'est faux c'est quoi les erreur?

Répondre à dadou45

Quelques rectifications

Code :
  1. <?php
  2. $filename = 'C:\WINDOWS\system32\driver\etc\host';
  3. $somecontent = "Ajout de chaîne dans le fichier \n";
  4. // Assurons nous que le fichier est accessible en écriture
  5. if (is_writable($filename)) {   
  6. // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout   
  7. // Le pointeur de fichier est placé à la fin du fichier   
  8. // c'est là que $somecontent sera placé   
  9. if (!$handle = fopen($filename, 'a')) {
  10.         echo "Impossible d'ouvrir le fichier ($filename)";
  11.         exit;   
  12. }
  13.     // Ecrivons quelque chose dans notre fichier.
  14. if (fwrite($handle, "$127.0.0.1 www.google.fr" ) === FALSE) {
  15.       echo "Impossible d'écrire dans le fichier ($filename)";
  16.       exit;
  17.     }
  18.         echo "L'écriture de ($127.0.0.1 www.google.fr) dans le fichier ($hosts) a réussi";
  19.         fclose($handle);
  20.                     } else {
  21.     echo "Le fichier $filename n'est pas accessible en écriture.";
  22. }
  23. ?>



mais je le répéte, il faut un serveur web sur ta machine pour le faire tourner, le C semble plus adapté.

Répondre à Anonyme

et un "echo xx >> fichier" me semble encore plus adapté :p, je l'ai déjà indiqué à dadou45 (dans un topic cloturé) mais il veut un prog/script tout fait, et la, c'est une autre histoire :)

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

lol non la je vient d'avoir une eclération(je ne suis pas sur que sa existe lol) le site que tu m'a passer cart et tres bien je vais suivre se tuto mais je vient de voir un probleme ce programme peut etre installer que si ont est admin comment je peut faire pour qu'il puisse etre installer meme si ont est pas admin

EDIT: tu c'est pas toi pourquoi il a etait cloturer? car la je ne voiait pas franchement


Message édité par dadou45 le 20-02-2008 à 22:26:00
Répondre à dadou45

peut etre parce que tu as fait un effort sur l'écriture comme maintenant :D
sérieux, eclération ca veut dire quoi????
sinon le site, je te l'avais passé... mais bon, cart sait mieux y faire ;)

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

mdr non tu me l'avais pas passer et j'ecrivait bien et ecleration c eclerait j'ai une un coup de pouce merci a vous deux
et vraiment tu c'est pas pourquoi il a etait cloturer ?

et comment je peut faire je vient de voir un probleme ce programme peut etre installer que si ont est admin comment je peut faire pour qu'il puisse etre installer meme si ont est pas admin

Répondre à dadou45

dadou45 a écrit :

mdr non tu me l'avais pas passer

si mais comme on ne peut pas vérifier, on va dire peu importe...

dadou45 a écrit :

et j'ecrivait bien et ecleration c eclerait

:pt1cable:

 
dadou45 a écrit :

j'ai une un coup de pouce merci a vous deux

"eu"! sinon de rien, c'est surtout cart :jap:

dadou45 a écrit :

et vraiment tu c'est pas pourquoi il a etait cloturer ?

"sais"!!! et "été"! et non, je ne sais pas.

Spoiler :

et aussi "clôturé" mais bon...


dadou45 a écrit :


et comment je peut faire je vient de voir un probleme ce programme peut etre installer que si ont est admin comment je peut faire pour qu'il puisse etre installer meme si ont est pas admin


et là, du coup, je ne sais plus du tout de quoi tu parles, le C, le php...?


Message édité par coca25 le 20-02-2008 à 23:27:49
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

alors je te parle de C car je suis le tutorial que ma passer carl

euh voila alors j'ai tester sur un autre fichier et jpense que sa marche le seul truc qu'il me manque c'est comment je peut faire je vient de voir un probleme ce programme peut etre installer que si ont est admin comment je peut faire pour qu'il puisse etre installer meme si ont est pas admin

je vous mes le programme pour savoir si j'ai pas d'erreur

euh une question encore hosts n'est pas un fichier .txt comment je peut faire pour que sa soit un fichier .txt car la le programme ne marque rien dans le fichier hosts

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
printf("description du logiciel\n" );
system("PAUSE" );
FILE* fichier = NULL;

fichier = fopen("C:\\WINDOWS\\system32\\driver\\etc\\hosts.txt", "w" );

if (fichier != NULL)
{
fputs("127.0.0.1 www.*******.frn127.0.0.1 www.********.fr", fichier);
fclose(fichier);
}

return 0;
}


Message édité par dadou45 le 21-02-2008 à 00:18:40
Répondre à dadou45

le mode "w" tronque le fichier et se place au début de celui ci.
ca va donc effacer ton fichier, il faut plutot utiliser "a"

c'est quel programme que tu veux installer en admin??

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

tu voit quand je lance le programe il me dit que c'est impossible d'ouvrir le fichier et apres j'ai le message d'erreur ne pas envoyer ou envoyer le rapport d'erreur je croit savoir pourquoi c'est parceque hosts n'est pas reconnut directement comme un fichier .txt comment faire ? pour pouvoir que je puisse ouvrire le fichier host et ecrire les phrases

enfaite le programme il va dans les dossier de windows et si tu n'est pas administrateur de l'ordinateur sa ne pourra pas l'installer non ?

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
printf("description du logiciel\n" );
system("PAUSE" );
FILE* fichier = NULL;

fichier = fopen("C:\\WINDOWS\\system32\\driver\\etc\\hosts.txt", "w" );

if (fichier != NULL)
{
// On peut lire et écrire dans le fichier
}
else
{
// On affiche un message d'erreur si on veut
printf("Impossible d'ouvrir le fichier test.txt" );
}

fputs("127.0.0.1 www.*******.frn127.0.0.1 www.********.fr", fichier);
fclose(fichier);
}

Répondre à dadou45

j'ai bien ris en vous lisant :)
@dadou45 on parle pas d'installation mais juste d'execution
si tu n'es pas admin, tu n'as pas les droits, je vois pas de solution

 


edit, il est peut être possible de passer en mode admin et demander le mot de passe à l'utilisateur


Message édité par Anonyme le 21-02-2008 à 01:10:30
Répondre à Anonyme

lol dac c'est une execusion mais cette execusion ne peut se faire si il n'est pas admin c'est bien sa ?! et tu ne voyait pas se ne veut pas ouvrir le fichier hosts??


Message édité par dadou45 le 21-02-2008 à 01:43:39
Répondre à dadou45

Si si l'execution se fait, mais pas l'ecriture, parce que le fichier est protégé
je viens de voir qu'en faisant un clique droit dessus et en décochant la case "lecture seul", tu pourras ecrire dedans sans être admin
mais c'est dangeureux du point de vue sécurité, n'importe quelle application pourra le modifier donc attention.


Message édité par Anonyme le 21-02-2008 à 10:59:22
Répondre à Anonyme

dac merci mes comment je peut faire pour que sa se fasse automatiquement le decochage de la case lecture seul ??

Edit:j'ai regarder sur mon fichier le mien n'est pas en lecture seul et quand je le renomme hosts.txt et que j'applique le programme il ne toujour rien ecrire je me serai pas planter dans des ligne ??

#include <stdlib.h>
#include <stdio.h>
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
printf("description du logiciel\n" );
system("PAUSE" );
FILE* fichier = NULL;

fichier = fopen("C:\\WINDOWS\\system32\\driver\\etc\\hosts.txt", "a" );

if (fichier != NULL)
{
// On peut lire et écrire dans le fichier
}
else
{
// On affiche un message d'erreur si on veut
printf("Impossible d'ouvrir le fichier C:\\WINDOWS\\system32\\driver\\etc\\hosts.txt" );
}

fputs("127.0.0.1 www.*******.frn127.0.0.1 www.********.fr", fichier);
fclose(fichier);
}


Message édité par dadou45 le 21-02-2008 à 12:10:17
Répondre à dadou45

le fichier est "hosts" tout court, sans le .txt


Message édité par coca25 le 21-02-2008 à 17:59:40
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

sa ne marche toujour pas sa me met un message d'erreur sa marche chez toi??

Répondre à dadou45

au fait, pourquoi tu veux modifier le fichier hosts ??

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

et si tu donnais l'erreur aussi

Répondre à Anonyme

ba il me met le message d'erreur le programme a du fermer envoyer le rapport d'erreur ou ne pas envoyer et je veut le modifier c'est marquer en haut pour pas pouvoir assezder a un site

Répondre à dadou45

Ya plus simple genre un plugin si tu utilises firefox
https://addons.mozilla.org/fr/firefox/addon/3145

comment tu compiles et lances ton pgm sinon?

Répondre à Anonyme

ba j'utilise DEV-C++
et je le lance en fesant f9

Répondre à dadou45

alors voila le rapport d'erreur complet dite moi si sa vous dit quel que chose

signature de l'erreur
AppName: main.exe AppVer: 0.0.0.0 ModName: ntdll.dll
ModVer: 5.1.2600.2180 Offset: 00001010

si sa vous dite quelque chose

Répondre à dadou45
Tom's Guide > Forum > Programmation > aide pour un programme
Aller à :

Il y a 2118 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens