Bonjour, j'ai un autre pb depuis le premier poste que j'ai laisse, je vous solicite donc à nouveau.
En fait quand je lance mon pb, suite à un choix dans le menu, j'ai une premiere qui s'affiche, me demandant une adresse ip (Bref on s'en tape!) puis je valide, la je voudrais qu'une fenetre apparaisse. Oui mais voila, je veux pas detruite celle de depart, et l'ennuie c'est que cette fenetre apparait que en fermant l'autre...J'en ai besoin pour la suite, auriez vous une idée. Voici le code du menu et de la partie lance (recherche d'un pc voila tout!!)

menu.pyw
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
##### Librairies
import wx                   #Permet d'accéder au wxWidgets (Interface graphique)
import locate_PC            #Permet de localiser un PC
import locate_all_PC        #Permet de localiser plusieurs PC
import scan_port            #Permet de scanner un port
import identification       #Module d'identification
import scan_all_port        #Permet de scanner plusieurs port
import os                   #Permet de faire des operations systeme
import autoscr              #Permet d'avoir accés à la fonction pour resolution écran
import decrypt              #Permet d'acceder à la fonction de decryptage
import adress               #Permet de demander l'adresse IP ou le nom réseau
import readstock            #Permet d'ouvrir et de lire un fichier
#####
 
########################### Fonction qui determine si un fichier existe ou pas
def file_exists(fichier):
   try:
      file(fichier)
      return True
   except:
      return False
###########################
 
ID_EQUIP = 100
ID_GROUP = 101
ID_ONEPORT = 200
ID_MOREPORT = 201
ID_PROPOS = 300
 
# Définition des menus
 
class LesMenus(wx.Frame):
   def __init__(self, titre):
        wx.Frame.__init__(self, None, 1,title = titre, size = (autoscr.Screenauto()))
 
        menuLocaliser = wx.Menu()
        menuLocaliser.Append(ID_EQUIP, "&Un équipement\tCTRL+e")
        menuLocaliser.Append(ID_GROUP, "&Un groupe de PC\tCTRL+g")
 
        menuScanner = wx.Menu()
        menuScanner.Append(ID_ONEPORT,
                           "&Un port physique d'un equipement reseau\tCTRL+e")
        menuScanner.Append(ID_MOREPORT,
                           "&Plusieurs ports physiques d'un equipement reseau\tCTRL+g")
 
        menuQuitter = wx.Menu()
        menuQuitter.Append(wx.ID_EXIT, "&Quitter\tCTRL+q")
 
        menuQs = wx.Menu()
        menuQs.Append(ID_PROPOS, "&A propos de")
 
        menuBarre = wx.MenuBar()
        menuBarre.Append(menuLocaliser, "&Localiser")
        menuBarre.Append(menuScanner, "&Scanner")
        menuBarre.Append(menuQuitter, "&Quitter")
        menuBarre.Append(menuQs, "&?")
        self.SetMenuBar(menuBarre)
 
        wx.EVT_MENU(self, ID_EQUIP, self.Equip)
        wx.EVT_MENU(self, ID_GROUP, self.Group)
        wx.EVT_MENU(self, ID_ONEPORT, self.Oneport)
        wx.EVT_MENU(self, ID_MOREPORT, self.Moreport)
        wx.EVT_MENU(self, wx.ID_EXIT, self.OnExit)
        wx.EVT_MENU(self, ID_PROPOS, self.Propos)
 
   def Equip(self, evt):      #L'utilisateur veut localiser un PC
        adress.dem()                          #Demande d'adresse IP ou nom Réseau
 
        user = readstock.gooff("vartemp.txt")
        password1 = readstock.gooff("vartemp2.txt")
        adr_eq = readstock.gooff("adrtemp.txt")     
        password = decrypt.Decrypt(password1)   #Decryptage du mdp
 
        locate_PC.locate(adr_eq,user,password)
 
   def Group(self, evt):      #L'utilisateur veut localiser plusieurs PC
        locate_all_PC.locate_all(user,password)
 
   def Oneport(self, evt):    #L'utilisateur veut scanner un port d'un routeur
        host = scan_port.ask_host()             #On demande à l'utilisateur le nom du routeur
        port, mode = scan_port.ask_port()       #On demande à l'utilisateur le nom du port
        scan_port.scan(user, password, host, port, mode)
 
   def Moreport(self, evt):   #L'utilisateur veut scanner plusieurs ports d'un routeur
        scan_all_port.scan_all(user,password)
 
   def OnExit(self, evt):
#        if file_exists("Temp_locate_PC.txt") == True:   #Si le fichier temporaire existe, on le supprime
#             os.remove("Temp_locate_PC.txt")
#        if file_exists("Temp_scan_port.txt") == True:
#             os.remove("Temp_scan_port.txt")
#        if file_exists("vartemp.txt") == True:
#             os.remove("vartemp.txt")
#        if file_exists("vartemp2.txt") == True:
#             os.remove("vartemp2.txt")
#        if file_exists("adrtemp.txt") == True:
#             os.remove("adrtemp.txt")
        self.Destroy()
 
   def Propos(self, evt):
        dlg = wx.MessageDialog(self,"CISCO TOOLS V1.3", style = wx.OK)
        retour = dlg.ShowModal()
        dlg.Destroy()
 
class MonApp(wx.App):
   def OnInit(self):
        fen = LesMenus("CISCO TOOLS V1.3")
        fen.Show(True)
        self.SetTopWindow(fen)
        identification.ident()
        return True
 
app = MonApp()
app.MainLoop()
locate_PC
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
##### Librairies
import wx                   #Permet d'accéder au wxWidgets (Interface graphique)
import sys                  #Permet de faire des operations systeme (sys.exit)
import telnetlib            #Permet d'établir des connexions telnet
import re                   #Permet de faire des recherches sur des chaines de caractères
import os                   #Permet de faire des operations systeme (os.remove)
import routeurs             #Liste des routeurs à interroger
#####
 
def locate(adr_eq, user, password):
 
    ########## Fonction de connection
    def connection(self): 
        tn.read_until("Username:")          #Attente de la demande du nom d'utilisateur (Username)
        tn.write(user + "\n")               #Ecriture du nom rentre par l'utilisateur. "\n" permet de valider l'entrée
        if password:                        #Si l'utilisateur à tapper un mot de passe
            tn.read_until("Password: ")     #Attente de la demande de mot de passe
            tn.write(password + "\n")       #Ecriture du mot de passe
        mess = tn.read_until("#", 3)
        if re.search ("failed", mess):      #Si le read_until s'arrete à cause du timeout (Authentification failed), il y aura le message d'erreur dans mess
            print ""
            raw_input("Username ou mot de passe incorrect")
            sys.exit()                      #Sort du programme
    ##########
 
    class NewFen(wx.Dialog):
         def __init__(self, titre):
              wx.Dialog.__init__(self, None, -1, title = titre)
 
         def Fenn(self, evt):
              aff = wx.MessageDialog(self,adr_eq + user + password, style = wx.OK)
              retour = aff.ShowModal()
              aff.Destroy()
 
    class MonApp3(wx.App):
         def OnInit(self):   
              fen2 = NewFen("Test")
              fen2.Show(True)
#              self.SetTopWindow(fen2)
              return True
 
    app = MonApp3()
    app.MainLoop()
Voila si des fois vous voyez un petit truc qui pourrai m'aider ca serai cool.
P.S:L'aide en ligne j'ai un peu du mal, heuresement qu'il y a ce forum!!

EDIT: J'ai une question bête avec cela: Pourquoi quand je lance mon programme avec l'edition du fichier de lancement, lorsque je quitte l'appli, j'ai un freeze wxpython plante et je dois le fermer de force?Ca vous le fait, ou c'est que moi, parce que j'ai ecris des anneries lol!!