Merci Ar-s. Je m'appercois que tu es tres prolifique. Je vais etudier ta routine car c'est ce qui se rapproche le plus de ce que je cherche. En fait, un tchat accumule les nouvelles lignes ecrites en bas du texte et non en haut et la fenetre 'cadre' le dernier texte. Je vais etudier ca et je te dirais quoi
Code : Tout sélectionner
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;; HyperCryptTchat v1.0 par SPH ;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#WindowWidth = 800
#WindowHeight = 480
If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "HyperCryptTchat v1.0", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
port$="666"
If LoadFont(0, "Arial", 8)
SetGadgetFont(#PB_Default, FontID(0))
EndIf
PanelGadget(0,8,8, #WindowWidth-16, #WindowHeight-40)
OpenGadgetList(0)
AddGadgetItem(0, 0, "Tchat")
TextGadget(99,4,4,#WindowWidth-30, #WindowHeight-73,"");,#PB_String_ReadOnly)
SetGadgetColor(99,#PB_Gadget_BackColor,RGB(20,20,20))
TextGadget(100,10,10,#WindowWidth-42, #WindowHeight-85,"");,#PB_String_ReadOnly|#PB_Button_MultiLine)
SetGadgetColor(100,#PB_Gadget_BackColor,RGB(20,20,20))
SetGadgetColor(100,#PB_Gadget_FrontColor,RGB(255,255,255))
CloseGadgetList()
OpenGadgetList(0)
AddGadgetItem(0, 1, "Options")
Frame3DGadget(1, 10, 10, #WindowWidth-42, 52,"Vous")
TextGadget(4,10+20,10+25,50,20,"Pseudo :",#PB_String_ReadOnly)
StringGadget(5,10+80,10+21,100,20,"Alpha")
TextGadget(6,10+206,10+25,150,20,"IP :")
TextGadget(7,10+206+32,10+25,150,20,"127.0.0.001")
Frame3DGadget(2, 10, 70, #WindowWidth-42, 52,"Votre contact")
TextGadget(8,10+20,70+25,50,20,"Pseudo :",#PB_String_ReadOnly)
StringGadget(9,10+80,70+21,100,20,"Charlie")
TextGadget(10,10+206,70+25,50,20,"IP :",#PB_String_ReadOnly)
IPAddressGadget(11,10+206+32,70+21,110,20)
TextGadget(12,380,70+25,50,20,"Port :",#PB_String_ReadOnly)
StringGadget(13,420,70+21,50,20,port$,#PB_String_Numeric)
ButtonGadget(14,680,70+21,70,20,"Connect")
Frame3DGadget(3, 10, 130, #WindowWidth-42, 260,"Cryptage")
For i=0 To 9
;TextGadget(20+i,30,130+25+i*23,50,20,"Clé N°"+Str(i+1)+" :",#PB_String_ReadOnly)
ButtonGadget(40+i,30,130+21+i*23,70,20,"Clé N°"+Str(i+1)+" :",#PB_String_ReadOnly)
Next
For i=0 To 9
StringGadget(30+i,110,130+21+i*23,640,20,"")
Next
For i=0 To 9
;ButtonGadget(40+i,680,130+21+i*23,70,20,"Open File")
Next
CloseGadgetList()
CloseGadgetList()
StringGadget(50,8,#WindowHeight-26,#WindowWidth-16, 20,"")
SetActiveGadget(50)
AddKeyboardShortcut(0, #PB_Shortcut_Return, 1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Dim key$(10)
Dim pointeurs(10)
key$(0)=Chr(13)+Chr(10)
txt$="HyperCryptTchat permet de dialoguer en TOTALE sécurité avec votre interloculeur. Le niveau de sécurité est extrèmement grand même si vous choisissez mal vos clés de cryptage. Il est cependant préférable de choisir comme clés des fichiers 'compressés' comme des .ZIP, .ACE, .RAR, .MP3, .MP4 et .AVI par exemple. "
txt$+"Toute la sécurité réside dans le fait que seul votre interlocuteur et vous connaissez à quoi correspondent ces clés. Par exemple, la clé N°1 peut etre un mp3 que votre interlocuteur et vous avez sur votre disque dur (il faut que ce soit EXACTEMENT le même fichier). Le problème n'est pas que d'autres internautes possèdent ce fichier mais plutôt que quelqu'un SACHE que la clé N°1 est CE mp3. "
txt$+"La sécurité est d'avoir convenu oralement (pas par téléphone, ni par email et autre SMS) quelles seront vos clés et de garder ce secret !"+key$(0)
txt$+"Un exemple : Je rencontre Charlie dans un bar et nous convenons ensemble que :"+key$(0)
txt$+"La clé N°1 sera tel .MP3"+key$(0)
txt$+"La clé N°2 sera tel .AVI"+key$(0)
txt$+"On ne choisira rien pour les clés N°3, N°4 et N°5"+key$(0)
txt$+"La clé N°6 sera tel .ZIP"+key$(0)
txt$+"La clé N°7 et N°8 sera tel et tel .JPG"+key$(0)
txt$+"La clé N°9 sera la premiere image rencontré sur le site WWW.CLUBIC.COM et que vous aurez sauvegardé sur votre disque dur"+key$(0)
txt$+"La clé N°10 sera le fichier que vous aurez récement recommandé sur tel ou tel site"+key$(0)
txt$+key$(0)
txt$+"Une fois connecté sur HyperCryptTchat, vous pourrez choisir de rechanger certaines clés tous les X jours pour les futurs dialogues."+key$(0)
txt$+key$(0)
txt$+"Comment se transmettre son IP actuelle ? Par un quelconque moyen : le téléphone, un email, un SMS, un tchat classique comme MSN ou encore un site en particulier sur lequel vous laisserez en commentaire votre IP."+key$(0)
txt$+key$(0)
txt$+"PS :"+key$(0)
txt$+"- Les pseudos ne sont pas transmis dans la communication."+key$(0)
txt$+"- Utilisez au moins 3 clés différentes et changez-en au moins une fois que vous avez écrit l'équivalent de plus de 10 pages de livres."+key$(0);+key$(0)
txt$+"_________"+key$(0)+key$(0)
SetGadgetText(100, txt$)
;;;;;;;;;;;;;;;;;;;;;;;;;;;
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Menu And EventMenu() = 1
If GetGadgetText(50)<>""
envoyer$=GetGadgetText(50)
StartDrawing(WindowOutput(0))
txt$+GetGadgetText(5)+" : "+envoyer$+" ("+Str(TextWidth(txt$))+")"+key$(0)
StopDrawing()
SetGadgetText(100, txt$)
SetGadgetText(50, "")
SetActiveGadget(50)
;envoyer$ est a crypter et a envoyer
Else
SetActiveGadget(50)
EndIf
EndIf
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 14
DisableGadget(14,1)
;se connecter en ftp a l'IP et le port mentionné
Case 40
key$(1) = OpenFileRequester("Clé N°1", "","",0)
SetGadgetText(30, key$(1))
Case 41
key$(2) = OpenFileRequester("Clé N°2", "","",0)
SetGadgetText(31, key$(2))
Case 42
key$(3) = OpenFileRequester("Clé N°3", "","",0)
SetGadgetText(32, key$(3))
Case 43
key$(4) = OpenFileRequester("Clé N°4", "","",0)
SetGadgetText(33, key$(4))
Case 44
key$(5) = OpenFileRequester("Clé N°5", "","",0)
SetGadgetText(34, key$(5))
Case 45
key$(6) = OpenFileRequester("Clé N°6", "","",0)
SetGadgetText(35, key$(6))
Case 46
key$(7) = OpenFileRequester("Clé N°7", "","",0)
SetGadgetText(36, key$(7))
Case 47
key$(8) = OpenFileRequester("Clé N°8", "","",0)
SetGadgetText(37, key$(8))
Case 48
key$(9) = OpenFileRequester("Clé N°9", "","",0)
SetGadgetText(38, key$(9))
Case 49
key$(10) = OpenFileRequester("Clé N°10", "","",0)
SetGadgetText(39, key$(10))
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
;Beep_(1500,5)
End