Execution d'un fichier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
TEALC
Messages : 20
Inscription : ven. 13/févr./2004 0:43

Execution d'un fichier

Message par TEALC »

Salut, voila un apercu de mon prog de debutant

Image

Mon probleme :
Quand je fait : Fichier -> configuration : j'ouvre une fenetre avec laquelle je v cherché mon fichier

Code : Tout sélectionner

fichier_cs$ = OpenFileRequester("Selectionner votre .exe", "c:\", "Executable .exe ", 0)
Et a parti de la je voudrai savoir comment faire pour que se fichier s'ouvre quand j'appuis sur le boutton "GO" et qui prenne aussi en compte l'ip + le port.

Merci de votre aide (en esperent avoir etait cler)
killer7
Messages : 18
Inscription : ven. 06/févr./2004 16:24
Contact :

Message par killer7 »

A mon avis, pour la suite,il faut que ton log lance l'exécution de HL.exe comme si on passait par la console HL et ses paramètres (je ne vois pas d'autre solution pour ce cas précis de HL/CS), mais au préalable, il doit détecter Les IP du réseau et définir les ports.

C'est ça en gros que tu veux ?

Commence par déchiffrer les commandes possibles de la console HL/CS pour t'en servir pour ton log. M'enfin si tu un CSman t udois un peu connaitre tout ça.

Les grands manitous du PureBasic vont surement passer par ici t'apporter une aide précieuse sous peu. :wink:
Dernière modification par killer7 le ven. 13/févr./2004 16:25, modifié 1 fois.
TEALC
Messages : 20
Inscription : ven. 13/févr./2004 0:43

Message par TEALC »

l'ip et le port seront rentrer pas la personne

Je connais bien la console de HL-CS
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

... j'ai pas tout compris ce que tu voulai faire... :?:

Est ce l'exe HL.exe (le jeu ?) qui cherche les connexions réseau ?
Si oui tu peux le lancer avec la commande Run et mettre en paramètre l' ip et le port (à voir avec HL.exe)


Dans la cas ou tu veux communiquer directement avec l'application qui tourne sur 1 port utilise la commande OpenNetworkConnection(NomServeur$, Port)

Regarde la section Network de l'aide, tout est expliqué..


Je ne suis pas sûr d'avoir bien répondu à ta question...:!:
TEALC
Messages : 20
Inscription : ven. 13/févr./2004 0:43

Message par TEALC »

En fait se que je veu cet qu'une fois que j'ai configurer mon executable HL-cs, je n'est plus cas rentrer l'ip + le port, et puis je cliquerai sur le boutton GO ki me lancerai mon executable avec les parametre de l'ip + du port
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Il faut que tu saches quel sont les paramètre d'entré que prend en charge HL.exe. Une fois que tu les as, c'est tout simple :

Code : Tout sélectionner

RunProgram("HL.exe","IP-Port,RepertoireCourant$,0) 
TEALC
Messages : 20
Inscription : ven. 13/févr./2004 0:43

Message par TEALC »

Mon code

Code : Tout sélectionner

;- Window Constants
;
Enumeration
  #design1
EndEnumeration

;- Gadget Constants
;
Enumeration
  #ip_cs
  #ip_c
  #go_cs
  #port_cs
  #port
  #Gadget_14
  #Gadget_15
  #ip_l
  #ip_lan
  #go_lan
  #Gadget_19
  #Gadget_20
  #nom_lan
  #load_cs
  #load_lan
  #Image_0
EndEnumeration

;- Image Plugins
;UseJPEGImageDecoder()

;- Image Globals
;Global Image0

;- Catch Images
;Image0 = CatchImage(0, ?Image0)

;- Images
;DataSection
;Image0:
;  IncludeBinary "C:\Documents and Settings\laurent\Mes documents\Pure basic\test.jpg"
EndDataSection

Procedure Open_design1()
  If OpenWindow(#design1, 241, 153, 300, 210,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Multi connection [ By TL` ]")   
    If CreateGadgetList(WindowID())
      IPAddressGadget(#ip_cs, 30, 40, 150, 20)
      TextGadget(#ip_c, 10, 43, 12, 15, "IP")
      ButtonGadget(#go_cs, 263, 40, 30, 20, "Go")  
      TextGadget(#port_cs, 183, 43, 20, 17, "Port")
      StringGadget(#port, 205, 40, 40, 20, "27015", #PB_String_Numeric)
      SendMessage_(GadgetID(#port), #EM_LIMITTEXT, 5, 0)
      TextGadget(#Gadget_14, 10, 13, 280, 20, "Half-Life : Counter-Strike", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Gadget_15, 10, 80, 280, 20, "Se connecter a un Pc en Lan", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#ip_l, 10, 110, 12, 15, "IP")
      IPAddressGadget(#ip_lan, 30, 110, 150, 20)
      ButtonGadget(#go_lan, 262, 127, 30, 20, "Go")
      TextGadget(#Gadget_19, 100, 130, 12, 13, "ou", #PB_Text_Center)
      TextGadget(#Gadget_20, 5, 147, 25, 15, "Nom")
      StringGadget(#nom_lan, 30, 145, 150, 25, "Nom du PC")
     ; ProgressBarGadget(#load_cs, 75, 65, 150, 10, 0, 10)
     ; ProgressBarGadget(#load_lan, 75, 175, 150, 10, 0, 10)
     ; ImageGadget(#Image_0, 0, 0, 300, 210, Image0)
      
    EndIf
    
        If CreateMenu(0, WindowID())
    MenuTitle("Ficher")
      MenuItem( 1, "&Configurer")
      MenuBar()
      MenuItem( 7, "&Quit")
      
    MenuTitle("?")
      MenuItem(11, "&En savoir +")
      MenuItem(12, "Version")


  EndIf
  
  DisableMenuItem(3, 1)
  DisableMenuItem(13, 1)
  
  Repeat

    Select WaitWindowEvent()

      Case #PB_EventMenu

        Select EventMenuID()  

          Case 12 ; Version
            MessageRequester("Version", "Multi Connection v1.0 Beta"+Chr(10)+Chr(10)+"Crée par TL`"+Chr(10)+Chr(10)+"Copyright 2004", 0)
            
          Case 1 
           fichier_cs$ = OpenFileRequester("Selectionner votre .exe", "c:\", "Executable .exe ", 0)
    
          Case 11 ; En savoir +  
            MessageRequester("En savoir +", "Se logiciel à un seul but : me faire passé le temp", 0)
            
          Case 7
            Quit = 1
            
          Default
            MessageRequester("Info", "MenuItem: "+Str(EventMenuID()), 0)

        EndSelect

      Case #WM_CLOSE ; #PB_EventCloseWindow
        Quit = 1

    EndSelect

  Until Quit = 1

  EndIf
EndProcedure
Je voudrais recuperé les valeurs de : fichier_cs$ - #ip_cs - #port_cs
et cliqué sur #go_cs pour que cela me lance : fichier_cs$ +ip #ip_cs +port #port_cs

Voila :(
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Voici ton code corrigé avec les fonctions,
Il reste à ajouter :
La fonction pour le Lan
Gardez le chemin de HLD et des derniers paramètre afin de ne pas les retaper à chaque fois

Code : Tout sélectionner

;- Window Constants
;
Enumeration
  #design1
EndEnumeration

;- Gadget Constants
;
Enumeration
  #ip_cs
  #ip_c
  #go_cs
  #port_cs
  #port
  #Gadget_14
  #Gadget_15
  #ip_l
  #ip_lan
  #go_lan
  #Gadget_19
  #Gadget_20
  #nom_lan
  #load_cs
  #load_lan
  #Image_0
EndEnumeration

;- Image Plugins
;UseJPEGImageDecoder()

;- Image Globals
;Global Image0

;- Catch Images
;Image0 = CatchImage(0, ?Image0)

;- Images
;DataSection
;Image0:
;  IncludeBinary "C:\Documents and Settings\laurent\Mes documents\Pure basic\test.jpg"
EndDataSection

Procedure Open_design1()
  If OpenWindow(#design1, 241, 153, 300, 210,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Multi connection [ By TL` ]")   
    If CreateGadgetList(WindowID())
      IPAddressGadget(#ip_cs, 30, 40, 150, 20)
      TextGadget(#ip_c, 10, 43, 12, 15, "IP")
      ButtonGadget(#go_cs, 263, 40, 30, 20, "Go") 
      TextGadget(#port_cs, 183, 43, 20, 17, "Port")
      StringGadget(#port, 205, 40, 40, 20, "27015", #PB_String_Numeric)
      SendMessage_(GadgetID(#port), #EM_LIMITTEXT, 5, 0)
      TextGadget(#Gadget_14, 10, 13, 280, 20, "Half-Life : Counter-Strike", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Gadget_15, 10, 80, 280, 20, "Se connecter a un Pc en Lan", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#ip_l, 10, 110, 12, 15, "IP")
      IPAddressGadget(#ip_lan, 30, 110, 150, 20)
      ButtonGadget(#go_lan, 262, 127, 30, 20, "Go")
      TextGadget(#Gadget_19, 100, 130, 12, 13, "ou", #PB_Text_Center)
      TextGadget(#Gadget_20, 5, 147, 25, 15, "Nom")
      StringGadget(#nom_lan, 30, 145, 150, 25, "Nom du PC")
     ; ProgressBarGadget(#load_cs, 75, 65, 150, 10, 0, 10)
     ; ProgressBarGadget(#load_lan, 75, 175, 150, 10, 0, 10)
     ; ImageGadget(#Image_0, 0, 0, 300, 210, Image0)
     
    EndIf
   
        If CreateMenu(0, WindowID())
    MenuTitle("Ficher")
      MenuItem( 1, "&Configurer")
      MenuBar()
      MenuItem( 7, "&Quit")
     
    MenuTitle("?")
      MenuItem(11, "&En savoir +")
      MenuItem(12, "Version")


  EndIf
 
  DisableMenuItem(3, 1)
  DisableMenuItem(13, 1)
  
  
   EndIf
EndProcedure



Open_design1()



 
  Repeat

    Select WaitWindowEvent()

      Case #PB_EventMenu

        Select EventMenuID() 

          Case 12 ; Version
            MessageRequester("Version", "Multi Connection v1.0 Beta"+Chr(10)+Chr(10)+"Crée par TL`"+Chr(10)+Chr(10)+"Copyright 2004"+Chr(10)+"Corrections par Julien "+Chr(169)+" 2004",#MB_Iconinformation)
           
          Case 1
           fichier_cs$ = OpenFileRequester("Selection de HL.exe", "c:\", "Half-Life|HL.exe", 0)
   
          Case 11 ; En savoir + 
            MessageRequester("En savoir +", "Ce logiciel à un seul but : me faire passé le temps", 0)
           
          Case 7
            Quit = 1
           
          Default
            MessageRequester("Info", "MenuItem: "+Str(EventMenuID()), 0)

        EndSelect
        
        
        
        Case #PB_Event_Gadget
          Select EventMenuID()
          
          
          Case #go_cs ; net 
        
          IP$=GetGadgetText(#ip_c)
          PORT$=GetGadgetText(#port)
          If fichier_cs$<>"" And IP$<>"" And PORT$<>"0"
          RunProgram(fichier_cs$,IP$+"-"+PORT$,"",0) ; a vérifier avec les para de HL.exe car je ne les connais pas
          Else
          MessageRequester("Erreur","Completez tous les champs",#MB_Iconerror)
          EndIf 
          
          
          Case #go_lan ; lan
           MessageRequester("","Faire de même que pour Case #go_cs en modifiant les variables",#MB_Iconinformation)

          
   
   
            EndSelect 
        

      Case #WM_CLOSE ; #PB_EventCloseWindow
        Quit = 1


          
    
   
       EndSelect

  Until Quit = 1

 
TEALC
Messages : 20
Inscription : ven. 13/févr./2004 0:43

Message par TEALC »

Grand merci je v tester cela
killer7
Messages : 18
Inscription : ven. 06/févr./2004 16:24
Contact :

Message par killer7 »

Oui, mais attention HL.exe a besoin de paramètres pour se connecter.
Lancer HL.exe seul ne fera que lancer Half Life sans connexion.

Exemple : HL.exe -etc ... -etc ... -etc ...

Sans les paramètres comme à la console, HL.exe ne fera que lancer le jeu sur ses menus.

On a besoin de plus de paramètres que l'IP et le Port, non ?

P'tain me rapelle plus les commandes de mémoire (j'ai quitté la communauté CS depuis un moment à cause de trop de cheaters sur les serveurs)
TEALC
Messages : 20
Inscription : ven. 13/févr./2004 0:43

Message par TEALC »

Killer7 t'enbete pas je les connais les commandes, mon prog fonctionne, je les memes remanier pour une meilleure utilisation.

Aussi comme faire pour qu'il garde en memoire le chemin du fichier HL.exe ?

Merci
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

comme je te l'ai dit plus haut, tu garde le chemin dans un fichier *.ini ou tu le stock dans le registre.
Tu fais donc une fonction qui vérifie la précence de ce fichier ou de cette clé
si elle existe tu la charge sinon, rien.
Quand l'utilisateur à choisi le chemin de HL.exe tu l'enregistre dans ce fichier/registre. Fais de même pour les dernières info entré, c'est bien pratique
killer7
Messages : 18
Inscription : ven. 06/févr./2004 16:24
Contact :

Message par killer7 »

Oki oki Tealc ! :wink:
C'était au cas ou.
Si tu connais les commandes console HL/CS, désolé d'avoir insisté. :oops:
Répondre