Je sais que la question a été posée plusieurs fois puisque j'ai consulté plusieurs postes mais bien évidemment aucun ne règle mon soucis.
J'ai une application en C# qui compte le nombre de ligne dans un fichier texte. Ce fichier contient une ligne avec le FQDN d'une des machines du réseau et la seconde ligne l'adresse MAC qui correspond. Pour chaque ligne trouvée (donc 1400 en tout), il supprime la chaine de caractères inutile (Nmap scan for) pour garder le FQDN et supprime la chaine de caractère de la seconde ligne (NetBiosMAC) puis concatène les 2 pour ne garder sur une même ligne que le FQDN, l'adresse IP et l'adresse MAC de chaque machine.
Mon programme fonctionne très bien et m'ouvre une fenêtre console où il m'affiche toutes mes lignes et un compteur de ligne.
J'ai 2 questions :
1. Comment rendre invisible cette console ?
2. Comment faire pour qu'elle se ferme d'elle-même ?
J'ai testé plusieurs choses :
- Application.Exit();
- Mettre le Main en "int" et faire un return 0;
- Environment.Exit(0);
- Script .bat pour l'ouverture en @Echo off de la fenêtre ...
Bref rien ne fonctionne. Les bibliothèques sont bonnes mais ça ne marche pas.
Voici le code de l'appli :
namespace NMAP.Classes { class LoadFile { public LoadFile() { } public void Construct_File() {
StreamReader file = new StreamReader(@"/tst10/LISTE-MAC-IP.txt"); StreamWriter NewFile = new StreamWriter(@"/tst10/New.txt"); line = file.ReadLine(); while ((line != String.Empty) && (line != null) && line.Length > 1) {
if (line.Substring(0, 4) == "Nmap") { sname = line.Substring(21); line = file.ReadLine(); if (line != String.Empty) { int pos = line.IndexOf("NetBIOSMAC:"); if (pos != -1) { sAutre = line.Substring(pos+11); sNew = sname + " " + sAutre; bnetBios = true; } else { bnetBios = false; sNew = sname; } } } NewFile.WriteLine(sNew); Console.WriteLine(sNew); counter++; if (bnetBios) line = file.ReadLine();
} file.Close(); NewFile.Close(); Console.WriteLine("il y a {0} lines.", counter); Console.ReadLine(); } } }
Le Main :
namespace NMAP { class Program { static void Main(string[] args) { /* Construction du Fichier de Sortie */ Classes.LoadFile ld = new Classes.LoadFile(); ld.Construct_File(); } } }