Votre question

aide pour un programme

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
19 Février 2008 23:04:22

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

Autres pages sur : aide programme

Anonyme
20 Février 2008 12:07:21

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
20 Février 2008 17:25:07

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 ?
Contenus similaires
20 Février 2008 20:38:08

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?
Anonyme
20 Février 2008 21:33:46

Quelques rectifications

  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 <a href="http://www.google.fr" rel="nofollow" target="_blank">www.google.fr</a>") === FALSE) {
  15. echo "Impossible d'écrire dans le fichier ($filename)";
  16. exit;
  17. }
  18. echo "L'écriture de ($127.0.0.1 <a href="http://www.google.fr" rel="nofollow" target="_blank">www.google.fr</a>) 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é.
20 Février 2008 21:40:42

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 :) 
20 Février 2008 22:22:55

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
20 Février 2008 22:44:18

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 ;) 
20 Février 2008 23:00:56

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
20 Février 2008 23:24:52

dadou45 a dit :
mdr non tu me l'avais pas passer
si mais comme on ne peut pas vérifier, on va dire peu importe...
dadou45 a dit :
et j'ecrivait bien et ecleration c eclerait
:pt1cable: 

dadou45 a dit :
j'ai une un coup de pouce merci a vous deux
"eu"! sinon de rien, c'est surtout cart :jap: 
dadou45 a dit :
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 dit :

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...?
21 Février 2008 00:08:37

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.*******.fr\n127.0.0.1 www.********.fr", fichier);
fclose(fichier);
}

return 0;
}
21 Février 2008 00:24:54

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??
21 Février 2008 00:39:54

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.*******.fr\n127.0.0.1 www.********.fr", fichier);
fclose(fichier);
}
Anonyme
21 Février 2008 01:01:03

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
21 Février 2008 01:42:51

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??
Anonyme
21 Février 2008 10:58:54

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.
21 Février 2008 12:00:54

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.*******.fr\n127.0.0.1 www.********.fr", fichier);
fclose(fichier);
}
21 Février 2008 12:28:31

le fichier est "hosts" tout court, sans le .txt
21 Février 2008 17:47:17

sa ne marche toujour pas sa me met un message d'erreur sa marche chez toi??
21 Février 2008 17:59:05

au fait, pourquoi tu veux modifier le fichier hosts ??
Anonyme
21 Février 2008 18:36:23

et si tu donnais l'erreur aussi
21 Février 2008 18:39:31

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
21 Février 2008 18:54:21

ba j'utilise DEV-C++
et je le lance en fesant f9
22 Février 2008 15:01:52

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
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS