Application réseau sur VB6

Résolu
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013 - 12 juil. 2011 à 09:34
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013 - 14 juil. 2011 à 18:17
slt! i'm a newbie! je débute vraiment en VB. en fait j'ai 3 questions:
1-comment fait-on pour lancer une application ou l'arreter depuis un serveur et l'affichage se fait sur la fenetre cliente en winsock?
2-une idée pour réaliser la réponse du question 1 en multi-clients?
3-je vais vous montrer un algorithme en langage compréhensible: 'Initialisation
a=a-1 b=b-1 nb=0 nb1=0 nb2=0
'boucle
tantque
si condition1 alors a=1
quand a=0 alors nb1=nb1+1
finSi
si condition2
blablabla
nb2=nb2+1
finSi
nb=nb1+nb2
finTanQue
afficher nb.
le blem C que mon boucle affiche tjr loop sans do ou bi1 while sans wend et blablabla mais j'ai tou mi. aidez-moi svp

6 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2011 à 12:27
Bonjour,

1) Si c'est ton application serveur ou client, ce n'est pas possible directement, si c'est une autre application, il faut que tu définisse cela dans ton protocole.
2) Voir les sources sur ce site
3) Ton code VB pourrait nous être très utile pour comprendre ton/tes erreur(s)
(Coloration syntaxique, 3ième icône en partant de la droite).

0
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013
12 juil. 2011 à 15:42
j'ai vu dans codes sources une petite application qui compte le nombre de clic d'un client, ce que j'essaie de faire c'est de diminuer le compte client à chaque clic!
j'ai deja essayer plusieur truc genre
amb = 10000
lbdroit.Caption = NbClcDrt
lbgauche.Caption = NbClcGche

g = g - 1 'détecte le clic droite
h = h - 1 'détecte le clic gauche

If GetKeyState(&H2) < 0 Then g = 1
If g 0 Then NbClcDrt NbClcDrt + 1

If GetKeyState(&H1) < 0 Then h = 1
If h 0 Then NbClcGche NbClcGche + 1

NbClc = NbClcGche + NbClcDrt
If NbClc <> 0 Then amb = amb - 50
Label11.Caption = amb
mais ça marche pas bien!
merci d'avance!
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2011 à 22:32
Bonjour,

Remets à plat toutes tes questions, le but recherché et ce que tu as déjà fait (n'oublie pas la coloration syntaxique, 3ième icône en partant de la droite), je suis perdu dans tes questions.

0
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013
12 juil. 2011 à 23:37
bonjour! ce que je voudrai faire c'est de relier des machines (clients) à un serveur pour jouer à un jeu en ligne!le client paie un montant qui va diminuer par clic!
Private Const KEYEVENTF_KEYUP = &H2
Private Declare Function CharToOem& Lib "USER32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String)
Private Declare Function GetAsyncKeyState% Lib "USER32" (ByVal vKey As Long)
Private Declare Function GetKeyState Lib "USER32" (ByVal nVirtKey As Long) As Integer
Private Declare Sub keybd_event Lib "USER32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function MapVirtualKey Lib "USER32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Declare Function OemKeyScan& Lib "USER32" (ByVal wOemChar As Integer)
Private Declare Function ShowCursor Lib "USER32" (ByVal bShow As Long) As Long
Private Declare Function SystemParametersInfo Lib "USER32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Declare Function VkKeyScan% Lib "USER32" Alias "VkKeyScanA" (ByVal cChar As Byte)
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Dim rtn As Long
Public st As Long
Public val As Long
Public amb As Long
Public temp As Long
Public rest As Integer
Public comp As Integer
'convertir une valeur en seconde
Public Function ConvertSeconds(lSeconds As Long) As String
    'Declare  variables temporaires
    Dim lTmpMinutes As Long
    Dim lTmpSeconds As Long
    Dim lTmpHours As Long
    If lSeconds > 59 Then
        lTmpSeconds = lSeconds Mod 60
        If lSeconds > 3599 Then
            lTmpHours = Fix(lSeconds / 3600)
           lTmpMinutes = lSeconds / 60 - (60 * lTmpHours)
            ConvertSeconds = lTmpHours & ":" & Format _
           (lTmpMinutes, "00") & ":" & Format(lTmpSeconds, "00")
        Else
            lTmpMinutes = Fix(lSeconds / 60)
            ConvertSeconds = lTmpMinutes & ":" & _
                 Format(lTmpSeconds, "00")
        End If
    Else
        ConvertSeconds = "0:" & Format(lSeconds, "00")
    End If
End Function
'comande pour quitter l'application
Private Sub Command1_Click()
Form2.Enabled = False
Timer1.Enabled = False
End Sub
'commande pour lancer le site
Private Sub Label1_Click()
'juste un exemple de site
ShellExecute Me.hWnd, "open", "http://www.yahoo.fr/", vbNullString, vbNullString, SW_SHOWNORMAL
End Sub
'timer de la valeur du temps
Private Sub Timer1_Timer()
val = val + 1
rest = val Mod 3600
comp = (val \ 3600) * 1000
Text2.Text = ConvertSeconds(val)
Timer2.Enabled = True
'Form2.Enabled = False
'Timer1.Enabled = False
'End If
'If Text1.Text = 0 Then
End Sub
'pour se connecter au serveur, j'ai pas encore terminer
Private Sub Winsockx_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Winsockx.Close
Winsockx.Connect host, Port
End Sub
Private Sub Timer2_Timer()
'pour détecter les différent clic (quand on relève la touche)
lbdroit.Caption = NbClcDrt
lbgauche.Caption = NbClcGche
g = g - 1 
h = h - 1
'amb est la Caption temporaire du Label NbClc
amb = 10000
lbdroit.Caption = NbClcDrt
lbgauche.Caption = NbClcGche
'detecter clic droit
If GetKeyState(&H2) < 0 Then g = 1
If g 0 Then NbClcDrt NbClcDrt + 1
'detecter clic gauche
If GetKeyState(&H1) < 0 Then h = 1
If h 0 Then NbClcGche NbClcGche + 1
'le nombre de clic
NbClc = NbClcGche + NbClcDrt 
'le montant à afficher
If NbClc <> 0 Then amb = amb - 50
Label11.Caption = amb
Label11.Caption = amb
End Sub

c'est à peu près ça, mais je débute vraiment alors dites tous ce que vous voulez(remarques, erreurs,...)je serai compréhensif! merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
14 juil. 2011 à 16:17
Bonjour,

On va reprendre les fondamentaux de la présentation de code :
- Toujours indenter son code
- Donner des noms correect à ses controles :
CmdOk est plus clair que Command1
TxtNom est plus indicatif que Texbox1
- Aères ton code, ça le rendra plus digeste, ajoutes des lignes vides pour séparer les éléments de code en ensembles cohérent.
- Mets "Option Explicit" (sans les ") au début de chacun de tes modules et déclare toutes tes variables (donnes leur aussi un type cohérent à leur usage).

Pour la détection de click, il y a l'événement Click, MouseDown, MouseUp, ...

Voilà pour une première salve.

0
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013
14 juil. 2011 à 18:17
merci bien! je vais essayer!
0
Rejoignez-nous