Jump to content

Belini

Administradores (Adm)
  • Content count

    2,004
  • Joined

  • Last visited

  • Days Won

    104

Everything posted by Belini

  1. Achei um exemplo no forum americano e até funciona mas só quando eu coloco os executáveis de servidor e cliente no mesmo PC, quando coloco em PC's diferentes o cliente não conecta no servidor! SERVIDOR: $0 = 0 $00 = 0 $000 = 0 $ip = ; Este é o IP do servidor ;Makes the servers IP address... default is your @IPADDRESS1. $port = "1000" ;Makes the port # can be anything between 1 and 60000. ;(the maximum is a guess i don't know how many ports there are butits close). ;and ONLY if the port is not already being used. $max_connections = InputBox('Maximim Connections=?', 'Please choose an amount of clients that would be able to connect to the server...(recommended that its minimal)', Random(1, 1000, 1)) ;How many clients can be connected FUNCTIONABLY to the server... any more and it will not function correctly on the clients side. TCPStartup() $TCPListen = TCPListen($ip, $port, $max_connections) If $TCPListen = -1 Then _Exit_() ;Creates a listening Socket Dim $Socket_Data[$max_connections + 1][3] ;add more to the second array to add data. ;(ex) 2 would have another column for data. ;you could make Usernames or ClientIP's in it... anything you want. ;Socket_data EXAMPLE ;$Socket_Data[0][0] = AMOUNT OF CURRENT CLIENTS ;$Socket_Data[1][0] = "1616" ;$Socket_Data[2][0] = "2000" ;$Socket_Data[n][0] = client n ProgressOn('Socket Data', 'Reseting Socket Data...') For $0 = 0 To $max_connections $Socket_Data[$0][0] = 0 ;To reset the Socket array. ProgressSet(Round(($0 / $max_connections) * 100), '', 'Reseting Socket Data...') Sleep(10) Next ProgressOff() While 1 _Accept_Connection() _Recv_From_Sockets_() Sleep(100) WEnd Func _Accept_Connection() If $Socket_Data[0][0] = $max_connections Then Return ;Makes sure no more Connections can be made. $Accept = TCPAccept($TCPListen) ;Accepts incomming connections. If $Accept = -1 Then Return For $0 = 1 To $max_connections If $Socket_Data[$0][0] = 0 Then ;Find the first open socket. $Socket_Data[$0][0] = $Accept ;assigns that socket the incomming connection. Do $Recv = TCPRecv($Accept, 1000000) Until $Recv <> '' $Recv = StringSplit($Recv, '^') $Socket_Data[$0][1] = $Recv[1] $Socket_Data[$0][2] = $Recv[2] ;$Socket_Data[$0][n] = $Recv[n] DEPENDING O WHAT YOU DIMMED THE $SOCKET_DATA AS!!! $Socket_Data[0][0] += 1 ;adds one to the Socket list. $00 = 'New Client' _Broadcast_To_Sockets_($00) ;Broadcasts to all the clients. $0 = 0 $00 = 0 Return EndIf Next Return EndFunc ;==>_Accept_Connection Func _Broadcast_To_Sockets_($0) For $00 = 1 To $max_connections TCPSend($Socket_Data[$00][0], $0) ;sends to every client. Next $0 = 0 $00 = 0 Return EndFunc ;==>_Broadcast_To_Sockets_ Func _Recv_From_Sockets_() For $0 = 1 To $max_connections $Recv = TCPRecv($Socket_Data[$0][0], 1000000) _Broadcast_To_Sockets_($Recv) Next EndFunc ;==>_Recv_From_Sockets_ Func _Exit_() For $0 = 1 To $max_connections TCPCloseSocket($Socket_Data[$0][0]) Next TCPCloseSocket($TCPListen) TCPShutdown() Exit EndFunc ;==>_Exit_ CLIENTE: #include <GUICONSTANTS.AU3> #include <WINDOWSCONSTANTS.AU3> #include <STATICCONSTANTS.AU3> #include <EDITCONSTANTS.AU3> #include <MISC.AU3> #Include <GuiEdit.au3> #Include <WinAPI.au3> #Include <DATE.au3> Opt ('GUIoneventmode', 1) $GUIStyle = BitOR($WS_DLGFRAME,$WS_POPUP, $WS_VISIBLE) $GUIStyleEx = BitOR ($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE) $EditStyle = BitOR($ES_MULTILINE,$WS_VSCROLL) $EditStyleEx = BitOR($EditStyle, $ES_READONLY) $W = 0xFFFFFF $B = 0x0 $Titleb = 0x7F7F7F TCPStartup() $0 = 0 $00 = 0 $000 = 0 $ip = TCPNameToIP (InputBox('IP=?', 'Coloque o IP do servidor', "")) ;The servers IP address... default is your @IPADDRESS1. MUST BE THE SERVERS IP ADDRESS CANNOT BE YOUR CLIENTS!!! $port = "1000" ;Makes the port # can be anything between 1 and 60000. ;(the maximum is a guess i don't know how many ports there are butits close). ;and ONLY if the port is not already being used. ;MUST BE SERVER OPENED PORT NOT ONE ON YOUR COMPUTER!!! For $0 = 0 To 10 $Socket = TCPConnect($ip, $port) ;Connects to an open socket on the server... ;MsgBox(4096, '', $Socket) If $Socket <> -1 Then ExitLoop TCPCloseSocket($Socket) Sleep(300) Next If $Socket = -1 Then _Exit () TCPSend ($Socket, @UserName & '^EXAMPLE 2') $GUI = GUICreate (@ScriptName, 300, 200) $Console = GUICtrlCreateEdit ('',0,0,300,150,$EditStyleEx) $Send = GUICtrlCreateEdit ('',0,150,300,50,$EditStyle) GUICtrlSetLimit (-1, 250) GUISetOnEvent ($GUI_EVENT_CLOSE, '_Exit', $GUI) GUISetState () HotKeySet('{ENTER}', '_Send') While 1 _Recv_From_Server () Sleep(100) WEnd Func _Send () $0 = GUICtrlRead ($Send) If $0 = '' Then Return TCPSend($Socket, $0) GUICtrlSetData ($Send,'') EndFunc ;==>_send_ Func _Recv_From_Server () $Recv = TCPRecv($Socket, 1000000) If $Recv = '' Then Return _GUICtrlEdit_AppendText ($Console,_NowTime () & ' -- ' & $Recv & @CRLF) EndFunc ;==>_Recv_From_Server_ Func _Minn () WinSetState ($GUI, '', @SW_MINIMIZE) EndFunc Func _Exit () TCPCloseSocket ($Socket) TCPShutdown() Exit EndFunc ;==>_Exit_
  2. @NOX e como faz isto? Tem como postar um exemplo pois nunca enviei nem peguei dados de servidor!
  3. O que eu preciso é só saber o que está gravado em um pc e no outro para juntar as informações, ler e gravar num servidor resolveria mas também não sei como enviar iinformações prá serem gravadas e depois como acesá-las também!
  4. Estou precisando pegar informações vindas de um leitor de código de barras no formato EAN_13, alguém sabe qual função ou UDF faz isto?
  5. Então tá mais fácil que eu imaginava, obrigado por todas informações que me passou!
  6. Preciso fazer a instalação silenciosa de alguns programas, os que criam uma pasta onde serão instalados os arquivos funcionou perfeitamente como é o caso do K-Lite já o flash player, o visual c++ e o directx não consegui fazer a instalação. Exemplo de instalação silenciosa: RunWait (@ScriptDir & '\aimp_3.10.1074.exe /AUTO="'& @ProgramFilesDir &'\AIMP3\" /SILENT')
  7. Preciso mostrar números e letras com contorno preto e até achei como fazer usando GDI mas nao queria usar assim, alguém sabe como colocar contorno nas letras sem usar GDI?
  8. Obrigado @Manimal, vai dar certo da maneira que vc falou, agora só vou procurar a fonte que fique melhor no meu programa!
  9. Não seriam vazadas e sim coloridas com contorno preto, está daí é a arial Black com contorno!
  10. Mensagem na tela sem usar GDI

    Obrigado @Manimal deu tudo certo da forma que vc falou e agora só falta conseguir colocar contorno nas letras, vou criar um tópico!
  11. Mensagem na tela sem usar GDI

    As funções postadas aqui deram certo porém agora preciso mostrar várias mensagens de várias cores na tela ao mesmo tempo e só estou conseguindo mostrar uma por vez, alguém sabe como fazer para que fique mais de uma na tela?
  12. @mutleey não quero que fique sempre na mesma posição e sempre com o mesmo tamanho e sim que sejam redimensionados e reposicionados de acordo com o tamanho da janela como se fosse uma imagem .jpg por exemplo que altera tudo quando proporcionalmente quando a gente redimensiona a foto. @Fábio Igames vou ver GUICtrlSetResizing prá ver se faz o que eu preciso!
  13. WMI & AutoIt

    A função que uso aqui funciona mas pega sempre o serial de um HD só, talvez dê prá adaptar para pegar dos outros hd's e identificar as partições também! Func _LerHD() Local $mHD, $sed = "" $mHD = ObjCreate("LonsSoftDiskSerial.DiskSerial") If Not IsObj($mHD) Then Return $sed EndIf If Not $mHD.ReadDiskSerial("Phrozen-Hell", "HD000539910017-6D4EDB87") Then Return $sed EndIf $sed = StringStripWS($mHD.SerialNumber, 8) Return $sed EndFunc ;==>_LerHD
  14. Eu também não sabia, valeu pela dica!
  15. Quando crio uma ComboBox não tenho a opção de escolher a posição que o texto vai ficar e por padrão só fica à esquerda, tem como colocar prá mostrar centralizado?
  16. O melhor que consegui foi o que o Malkey postou no forum americano e mesmo assim alguns íténs não centralizaram bem na ComboBox, veja aqui: https://www.autoitscript.com/forum/topic/189315-center-text-in-combobox/?do=findComment&comment=1359758
  17. Estou postando um pequeno tutorial feito pelo amigo Brbranco, o help da versão 3.3.0.0 traduzido pelo amigo airhead e outras coisas úteis para quem esta iniciando. - Primeiros passos com Autoit fórum do baboo: http://www.babooforum.com.br/forum/AutoIt-e-CMenu-primeiros-passos-t540090.html - Funções básicas do Autoit: http://www.4shared.com/file/115407061/7a1776d5/Manual_do_Autoit.html]link - Help traduzido do Autoit: http://www.4shared.com/file/123433467/b1e0a462/AutoIt3PT.html - Tradução do Scite do Autoit: http://www.4shared.com/rar/etE2qlzI/Traduo_do_scite.html - Virtual keycodes: http://www.4shared.com/file/116081705/910d4f59/Virtual_Key_Codes.html Obs: Abaixo postei o link de um programa que baixa sempre as últimas versões além de conter vários exemplos e fazer busca por outros tutoriais, não encontrei o nome do autor pois isto não teve como atribuir os créditos a ele. Link: http://www.4shared.com/zip/AjYKh8wT/Autoit_123.html
  18. Alguém sabe como abrir um programa como se fosse do sistem e que não aceitasse ser fechado a força? Queria que só fechasse se o comando fizesse parte dele tipo enviou ESC fecha mas se tentar fechar por outro meio não ter como!
  19. Impedir que programa seja fechado!

    Ainda continuo com o problema, mais alguém tem a alguma sugestão?
  20. Serial Windows

    O serial do HD não dá prá clonar, me referí ao serial que o windows gera quando formata pois da forma que vc está fazendo DriveGetSerial("c:\" ) não é o serial do HD que vc está pegando!
  21. Mensagem na tela sem usar GDI

    Fiz como falou e não deu mais erro para obfuscar, problema resolvido então!
  22. Mensagem na tela sem usar GDI

    @manimal o que eu posso colocar em $isColorRef = False para ser um default? Sem mandar a referencia dá erro quando vou obfuscar o código! -###2 Obfuscation Error: Found Execute() statement which will lead to problems running your obfuscated script. >### current Func: mostra_texto C:\DOCUME~1\BELINI\CONFIG~1\Temp\OBs1F4.tmp(2766,1) Warning for line:$i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
  23. Mensagem na tela sem usar GDI

    @manimal eu tinha conseguido aqui de outra forma mas testei o seu código e gostei mais dele, obrigado por ajudar! Exemplo.au3
  24. Peguei um exemplo que mostra uma imagem e um um texto usando GDIPlus mas encontrei 3 problemas e só consegui resolver um deles, o primeiro era limpar a mensagem anterior para mostrar a próxima e este eu resolvi ocultando e depois mostrando novamente a GUI filha porém o segundo que é trocar a cor da fonte e o 3º que é um serilhado branco em algumas letras também não consegui tirar, segue o script para teste! #include <guiconstantsex.au3> #include <windowsconstants.au3> #include <gdiplus.au3> Global $hGUI, $hImage, $hGraphic, $hImage, $conta _GDIPlus_Startup() ; Load PNG image $hImage = _GDIPlus_ImageLoadFromFile(StringReplace(@AutoItExe, "autoit3.exe", "Examples\GUI\Torus.png")) $iWidth = _GDIPlus_ImageGetWidth($hImage) $iHeight = _GDIPlus_ImageGetHeight($hImage) ; Create GUI $hGUI = GUICreate("Show PNG", $iWidth, $iHeight, -1, -1, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST) $hGUI_child = GUICreate("", $iWidth, $iHeight, 0, 0, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST + $WS_EX_MDICHILD, $hGUI) $hButton = GUICtrlCreateButton("Texto", $iWidth * 2 / 3, $iHeight * 2 / 3, 40, 40) GUISetBkColor(0xFFFFFF, $hGUI_child) GUISetState(@SW_SHOW, $hGUI) GUISetState(@SW_SHOW, $hGUI_child) SetTransparentBitmap($hGUI, $hImage) _WinAPI_SetLayeredWindowAttributes($hGUI_child, 0xFFFFFF, 0xFF) $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI_child) _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2) _GDIPlus_GraphicsDrawString($hGraphic, "GDI+ Full Transparency", 0, $iHeight / 2 - 20, "Arial", 12) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _GDIPlus_ImageDispose($hImage) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_Shutdown() Exit Case $hButton ;GUISetState(@SW_HIDE, $hGUI_child); Oculta para limpar a mensagem anterior (retire o ponto e vírgulas para limpar) $conta += 1 GUISetState(@SW_SHOW, $hGUI_child); Mostra novamente a mensagem _GDIPlus_GraphicsDrawString($hGraphic, "TESTANDO: " & $conta, 0, $iHeight / 2 - 20, "Arial Black", 16) EndSwitch WEnd Func SetTransparentBitmap($hGUI, $hImage, $iOpacity = 0xFF) Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend $hScrDC = _WinAPI_GetDC(0) $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap) $tSize = DllStructCreate($tagSIZE) $pSize = DllStructGetPtr($tSize) DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage)) DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage)) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) $pBlend = DllStructGetPtr($tBlend) DllStructSetData($tBlend, "Alpha", $iOpacity) DllStructSetData($tBlend, "Format", 1) _WinAPI_UpdateLayeredWindow($hGUI, $hMemDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteObject($hBitmap) _WinAPI_DeleteDC($hMemDC) EndFunc ;==>SetTransparentBitmap Obs: O serilhado ficou visível na letra "S, O" e no número "1" imagem.bmp
  25. Como seria prá colocar apenas texto na tela usando GDI? Preciso criar uma GUI e usar o _WinAPI_SetLayeredWindowAttributes() ou tem como usar sem ele, o que eu queria era usar uma coisa ou outra, somente GDI ou somente _WinAPI
×