ExplorerListGadget()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
rYn0
Messages : 16
Inscription : ven. 07/mai/2004 23:10

ExplorerListGadget()

Message par rYn0 »

Salut tout le monde ! :D !

:? Je suis en train de réfléchir sur mon programme... et j'ai trouvé cette fonction : ExplorerListGadget(#Gadget, x, y, Largeur, Hauteur, Repertoire$, [, Options])

Cette fonction affiche, les dossiers et fichiers du répertoire choisie !!
Mais, je ne pense pas qu'elle puise marcher pour montrer le Repertoire un ordinateur distant, d'ou mon problème ...

Si vous pouvez m'aider en me conseillant une aute fonction ou un tt autre moyen ... n'hésité pas !

Merci à vous !!! :D
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

il faut une partie serveur sur l'hote

Une partie client


Le serveur liste les fichiers/rep puis les envoie au serveur qui les transforme comme tu veux


C'est comme pour un Trojan.... c'est pas ça que tu veux faire au moins ?!! 8O
rYn0
Messages : 16
Inscription : ven. 07/mai/2004 23:10

Message par rYn0 »

Trojan :?: c'est koi ça ?? En faite, j'aimerais pouvoir me tansféré des fichier de mon ordinateur portable sur mon ordinateur de Bureau et je pensais qu'il aurait été possible avec ExplorerListGadget() en choisissant quel lecteur séléctionner, et donc choisir le lecteur de mon ordinateur Portable !

Mais maintenat que tu me parle de " Partie serveur" et "Partie client",, je dois dire que je suis un peu perdu :( :? :!:


Merci, tt de meme, à toi Julien !
:D
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

peut etre qu'en connectant un lecteur réseau il s'afficherai dans la liste... à essayer...
rYn0
Messages : 16
Inscription : ven. 07/mai/2004 23:10

Message par rYn0 »

Donc j'ai compris l'utilisation, de la partie serveur et client :
J'ai mixé tout ça ! et je vien de faire un code qui bug au nivo du client je crois :

CLient :

Code : Tout sélectionner

Procedure Reception(ConnectionID)
 Shared Cut2$
  
  Repeat
    
    Delay(1) ; pour évité que le programme consomme 100% dans les processus
    SEvent.l = NetworkClientEvent(ConnectionID)
    
    If SEvent
      
    Select SEvent
    
      Case 2
      
        ReceiveNetworkData(ConnectionID, AllocateMemory(1000), 1000) ; la je recois les données
            
        Recep$ = PeekS(AllocateMemory(1000))
        Cut$ = Left(Recep$, 20) ; je coupe les 20 premières lettre et les range dasn la variable Cut$
        ; Les 20 premiers lettre corresponde a la commande car après il fodra trié les commandes
        ;voici ce que je recoi normalment (je remplace les espace par des tirets): "/dir----------------(DIR) Programme files"
        ; donc pour connetre la command je prend les 20 premierè lettres !
      
        If Trim(Cut$) = "/dir" ; ensuit j'enlève tout les espaces pour n'avoir que la commande
          
          Cut2$ = Right(Recep$, 21)  ; maintenat que j'ai la commend "/dir" je sais kil fo que je reprene ma variable Recp$ et que je la coupe a la 21 lettre et que je prend tout les lettre de droit qui représente le nom du fichier/dossier
          ClearGadgetItemList(10) 
          AddGadgetItem(5, -1, Cut2$) ; je met le nom du fichiers ou du dossier dasn le gadget
        
        EndIf
    
    EndSelect
    
    EndIf

  Until RecepQuit = 1

EndProcedure









InitNetwork()

OpenWindow(0, 0, 0, 300, 200, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered, "Ordinateur portable")

If CreateGadgetList(WindowID())

  IPAddressGadget (1, 10, 10, 100, 20) : SetGadgetState(1, MakeIPAddress(127, 0, 0, 1))
  StringGadget(2, 120, 10, 30, 20, "9", #PB_String_Numeric)
  
  ButtonGadget (3, 160, 10, 60, 20, "Connexion")
  ButtonGadget (4, 220, 10, 70, 20, "Déconnexion")
  
  ListViewGadget(5, 10, 40, 280, 150) ; Pour afficher les dossiers et les fichiers
  
EndIf

Repeat
  
  Delay(1)
  If WindowEvent() = #PB_EventGadget
    Select EventGadgetID()
      
      Case 3 ; Connexion
        DisableGadget(1,1) ;
        DisableGadget(2,1) ; Désactive les gadgets
        DisableGadget(3,1) ;
        
        ConnectionID = OpenNetworkConnection(GetGadgetText(1), Val(GetGadgetText(2)))
        
        If ConnectionID ; connexion à l'autre ordinateur
          
          CreateThread(@Reception(), ConnectionID) ; Je craé un thread pour recevoir les données envoyer par le serveur car des la connexinon au serveur, celui-ci envoi les nom de dossier et fichier présent dans C:\
        ; Je sais pas si le thread est une bonne idée, si kelkun aurait une meilleur idée, car c'est la source de tout mes ennuis
        
        
        EndIf
      
      Case 4 ; Déconnexion
      
      CloseNetworkConnection(ConnectionID)
        
        
    EndSelect
    
  EndIf
  
Until EventID = #PB_EventCloseWindow

End
Serveur :

Code : Tout sélectionner

; ------------------------------------- Commandes ----------------------------------------

dir$ = "/dir"






; ----------------------------------------------------------------------------------------
InitNetwork()
Buffer = AllocateMemory(1000)

If CreateNetworkServer(9)
  ;MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
    
    Delay(1)
    SEvent.l = NetworkServerEvent()
    
    If SEvent
      ClientID = NetworkClientID()
      Select SEvent
        
        Case 1
          MessageRequester("PureBasic - Server", "A new client has connected !", 0)
          
          ExamineDirectory(0, "C:\", "*.*")

          Repeat

            If x = 0
              FileType = NextDirectoryEntry()
            
              If FileType
                FileName$ = DirectoryEntryName()
              
                If FileType = 2 ; Si c'est un Doissier
                  FileName$ = "(DIR) "+FileName$ ; on ajoute (DIR) avent le nom de celui ci
                EndIf
            
                If SendNetworkString(ClientID, "/dir                "+FileName$) ;envoi la commande et le nom du fichier ou du dossier
                   Debug "/dir                "+FileName$ ; j'affiche le debug pour voir ce qui est envoyer
                Else
                   Debug "Bug d'envoi !!"
                EndIf
            
              EndIf
            
            
            EndIf
          
          
          Until FileType = 0
          
          
          
        Case 2
          ReceiveNetworkData(ClientID, Buffer, 1000)
          MessageRequester("Info", "String: "+PeekS(Buffer), 0)
          
        Case 3
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
          ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
          
        Case 4
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connexion...", 0)
          Quit = 0
          
      EndSelect
    EndIf
    
  Until Quit = 1
   
  CloseNetworkServer()

EndIf

End
Donc voila, le probleme c'est que sa veut pas s'affiché dals le gadget listview...

et je croi que ma prodédur n'est pas une bonne base pour recevoir les info !! enfin

J'espère que kelun pourra m'aidé, je commence a fatiguer, il est 03:10, bonne nuit !!
Répondre