Jump to content
Fivewin Brasil

chat irc


roberio

Recommended Posts

bate-papo via teclado-video-voz

pra quem interessar bem simples e rapido


*--------------------------------------------------------------------------------------------------------------

Function AbreWebWinIrcChat()

Local oWndWeb, oActiveX,;

cURL:="http://www.lightirc.com/start/?host=irc.lightirc.com&nickselect=no&autojoin=%23TESTEEEEEEE&language=br&nick=TESTE_NOME_%25&webcam=true&showMenuButton=false&showListButton=true&showEmoticonsButton=true&showRichTextControls=true&showTranslationButton=false&showServerWindow=false&showChannelHeader=true&showInfoMessages=false&useUserListIcons=false"

DEFINE WINDOW oWndWeb From 10,08 To 42,110 TITLE "bate-papo - Teclado/Video/Voz"

oActiveX = TActiveX():New( oWndWeb, "Shell.Explorer" )

oWndWeb:oClient = oActiveX

oActiveX:Do( "Navigate", cURL)

oWndWeb:center()

ACTIVATE WINDOW oWndWeb

Return nil

id=code>id=code>

Roberio Maciel

FWH1104 - xHarbour 1.2.1 Rev.6741 - BCC582

Link to comment
Share on other sites

bate-papo via teclado-video-voz

pra quem interessar bem simples e rapido


*--------------------------------------------------------------------------------------------------------------

Function AbreWebWinIrcChat()

Local oWndWeb, oActiveX,;

cURL:="http://www.lightirc.com/start/?host=irc.lightirc.com&nickselect=no&autojoin=%23TESTEEEEEEE&language=br&nick=TESTE_NOME_%25&webcam=true&showMenuButton=false&showListButton=true&showEmoticonsButton=true&showRichTextControls=true&showTranslationButton=false&showServerWindow=false&showChannelHeader=true&showInfoMessages=false&useUserListIcons=false"

DEFINE WINDOW oWndWeb From 10,08 To 42,110 TITLE "bate-papo - Teclado/Video/Voz"

oActiveX = TActiveX():New( oWndWeb, "Shell.Explorer" )

oWndWeb:oClient = oActiveX

oActiveX:Do( "Navigate", cURL)

oWndWeb:center()

ACTIVATE WINDOW oWndWeb

Return nil

id=code>id=code>

Roberio Maciel

FWH1104 - xHarbour 1.2.1 Rev.6741 - BCC582

Link to comment
Share on other sites

ola aferra

essa rede eh publica basta clicar no link para entra no canal.

se quiser criar um canal privado com senha para que soh as pessoas que tenha a senha entre no canal eh possivel.

no meu caso uso como comunicao interna dos clientes... passo os paramentros da URL com o nome da empresa(sem espaço e acentos) e dos usuarios com seu devidos nomes de cadastro..soh eles entram no canal.

ver imagem:

chatfdp.jpg

a o cliente se comunica com seu funcionarios internamente

Roberio Maciel

FWH1104 - xHarbour 1.2.1 Rev.6741 - BCC582

Link to comment
Share on other sites

amanha irei passar um exemplo com finalidade de comunicao interna do seu cliente.

no basico o exemplo vai levar em consideracao que tenha nome da empresa(cliente) e um cadastro de usuarios.

final da libertadores hoje, por isso nao irei postar o exemplo agora.

eh bem simples: eh pôr 1 time na janela principal e arquivo INI para verificar msg de convite para o chat

Roberio Maciel

FWH1104 - xHarbour 1.2.1 Rev.6741 - BCC582

Link to comment
Share on other sites


O Exemplo,

*--------------------------------------------------

* tenho aqui o arquivo de paramentros do sistema EMPR.DBF onde armazeno o nome da empresa do cliente "Nom_Empr"

* e cadastro de Usuarios USUA.DBF (acho que vc deve ter tambem dbfs para isso)

*--------------------------------------------

Function Main()

DEFINE WINDOW oWnd TITLE "TITLE MAIN";

MENU Menu();

ICON oIco BRUSH oBrush MDI

DEFINE TIMER oTimer INTERVAL 10000 ACTION MsgUsua(oTimer, oWnd) OF oWnd

ACTIVATE WINDOW oWnd MAXIMIZED ON INIT oTimer:activate() VALID MsgYesNo( "Finalizar?", "Selecione" )

Return nil

*--------------------------------------------------

* passo o nome da Empresa do cliente na variavel cURL => Alltrim(RemoveEspaco(UPPER(RemoverAcentos(ClearChar(Empr->Nom_Empr,{"-","."," "}))))) <= o mesmo vai ser o nome do seu canal no CHAT(host)

* passo o nome do usuario corrente do sistema na variavel cURL => Alltrim(oApp:WUsuario) <= oApp:WUsuario variavel publica nome do usuario

* veja abaixo

Function Menu()

Local oMenu, cURL := "http://www.lightirc.com/start/?host=irc.lightirc.com&nickselect=no&autojoin=%23"+Alltrim(RemoveEspaco(UPPER(RemoverAcentos(ClearChar(Empr->Nom_Empr,{"-","."," "})))))+"&language=br&nick="+Alltrim(oApp:WUsuario)+"_%25&webcam=true&showMenuButton=false&showListButton=true&showEmoticonsButton=true&showRichTextControls=true&showTranslationButton=false&showServerWindow=false&showChannelHeader=true&showInfoMessages=false&useUserListIcons=false"

MENUITEM "&Vídeo Conferência" RESOURCE "BMP_MIRC" ACTION AbreWebWinIrcChat(cURL);

MESSAGE "Vídeo conferência (IrcChat)"

ENDMENU

Return oMenu

*--------------------------------------------------

* aqui abre o CHAT

Function AbreWebWinIrcChat(cURL)

Local oWndWeb, oActiveX

DEFINE WINDOW oWndWeb From 10,08 To 42,110 TITLE "Vídeo Conferência"

oActiveX = TActiveX():New( oWndWeb, "Shell.Explorer" )

oWndWeb:oClient = oActiveX

oActiveX:Do( "Navigate", cURL)

oWndWeb:center()

ACTIVATE WINDOW oWndWeb ON INIT BotaoIrcChat(oWndWeb, oActiveX)

Return nil

**-----------------------------------------------------------------

* abaixo o campo => Usua->Est_Usua => no meu caso servi para verificar se usuario esta logado(online) no SISTEMA para que o seja feito o convide somente para usuario online no SISTEMA

* vazio = off-line , nao sei se alguem faz esse tratamento (espero que sim, pois o usuario corrente vai convidar para o CHAT somente quem esta on-line no SISTEMA)

*

Function BotaoIrcChat(oWndWeb, oActiveX)

Local oFont, oToolBarDlg, oImageList, cNom_Usua, aPath:={}

DEFINE FONT oFont NAME "ARIAL" SIZE 0,-10

dbSelectArea( "Usua" ) // seleciono o cadastro de usuario

Usua->(DbGoTop())

aadd( aPath, "Convidar Usuário" ) // adiciona a opcao convidar usuario para o combobox

While !Usua->(Eof())

aDados:={}

aadd( aPath, Usua->Nom_Usua+" | "+Iif(!Empty(Alltrim(Usua->Est_Usua)),"ON-LINE", "Off-Line") ) // se o campo Usua->Est_Usua = vazio => usuario OFF-LINE

Usua->(DbSkip())

Enddo

// inicia o menu na tela do CHAT com a opcao de Sair e Convidar

oImageList = TImageList():New(32,32)

oImageList:AddMasked( TBitmap():Define( "BMP_QUIT",, oWndWeb ), nRGB( 255, 0, 255 ) )

oImageList:AddMasked( TBitmap():Define( "BMP_PEOP",, oWndWeb ), nRGB( 255, 0, 255 ) )

DEFINE TOOLBAR oToolBarDlg OF oWndWeb SIZE 35,35;

IMAGELIST oImageList BALLOON

DEFINE TBBUTTON OF oToolBarDlg ;

ACTION oWndWeb:End() ;

TOOLTIP "Fechar"

DEFINE TBSEPARATOR OF oToolBarDlg

DEFINE TBBUTTON OF oToolBarDlg ;

ACTION Iif(Right(cNom_Usua,8)="Off-Line" .or. Left(cNom_Usua,8)="Convidar", Iif(Left(cNom_Usua,8)="Convidar", MsgInfo("Usuário invalido.", "Informativo!"), MsgInfo("Usuário "+Alltrim(Left(cNom_Usua,8))+" está off-line.", "Informativo!") ), ConvidarIrcChat(Left(cNom_Usua,8)));

TOOLTIP "Convidar Usuário"

@ 06, 105 COMBOBOX cNom_Usua ITEMS aPath PIXEL OF oToolBarDlg SIZE 140, 30 FONT oFont

RETURN Nil

*------------------------------------------------------------------------------------

* abaixo salva o convite no Arquivo INI (o timer do sistema dispara o convite para usuario que foi convidado)

*

*------------------------------------------------------------------------------------

Function ConvidarIrcChat(cNom_Usua)

Local oIni, mObs_Usua:="Mensagem: Convite para vídeo conferência. Clique em Aceitar Convite para entrar no chat."

INI oIni FILE oApp:cDir_000+"MSGUSUAR.INI" //oApp:cDir_000 = minha variavel publica para o path do arquivo ini, vc remover isso

SET SECTION "USUARIOS" ENTRY Alltrim(cNom_Usua) TO Time()+" DE: "+oApp:wUsuario+" "+mObs_Usua OF oIni

ENDINI

MsgInfo("Convite feito.","Informativo")

Return nil

*--------------------------

* abaixo a funcao do TIMER (verifica se tem msg para usuario) no caso o convite

*

*---------------------------------------------------------------------------

Static Function MsgUsua(oTimer, oWnd)

Local oDlg, oFont, mObs_Usua, oObs_Usua, oIni, cURL

INI oIni FILE oApp:cDir_000+"MSGUSUAR.INI" // essa variavel => oApp:cDir_000 vc remove

GET mObs_Usua SECTION "USUARIOS" ENTRY oApp:wUsuario OF oIni // ver o arquivo INI

ENDINI

If Right(Alltrim(mObs_Usua),10)="bate-papo." // aqui verifico se a msg do usuario vem do CHAT IRC, pois utilizo nao somente para o CHAT

cURL:="http://www.lightirc.com/start/?host=irc.lightirc.com&nickselect=no&autojoin=%23"+Alltrim(RemoveEspaco(UPPER(RemoverAcentos(ClearChar(Empr->Nom_Empr,{"-","."," "})))))+"&language=br&nick="+Alltrim(oApp:WUsuario)+"_%25&webcam=true&showMenuButton=false&showListButton=true&showEmoticonsButton=true&showRichTextControls=true&showTranslationButton=false&showServerWindow=false&showChannelHeader=true&showInfoMessages=false&useUserListIcons=false"

Endif

If Empty(mObs_Usua) //aqui verifica se tem msg para o usuario, se vazio sai da funcao do timer

Return nil

Endif

oTimer:Deactivate()

DEFINE FONT oFont NAME "Arial" SIZE 0, -12 BOLD

DEFINE DIALOG oDlg FROM 4, 4 TO 19, 58 TITLE "USUÃRIO "+aLLTRIM(oApp:wUsuario)+" VOCÊ RECEBEU UMA MENSAGEM"

@ 05, 10 GET oObs_Usua VAR mObs_Usua MEMO PIXEL COLOR CLR_GET1,CLR_GET2 OF oDlg SIZE 200, 086 FONT oFont

@ 99, 10 BUTTON "&Ok" PIXEL OF oDlg SIZE 40, 10 ACTION (oDlg:End())

If Right(Alltrim(mObs_Usua),10)="bate-papo." // verifico se a msg foi do CHAT, pois nao uso soh para o CHAT, se foi mostra o botao Aceitar Convite

@ 99, 60 BUTTON "&Aceitar Convite" PIXEL OF oDlg SIZE 60, 10 ACTION ( oDlg:End(), AbreWebWinIrcChat(cURL) ) // usuario convidado clica aqui para ir no CHAT, aceitando o convite

Endif

oObs_Usua:bGotFocus = { || oObs_Usua:SetSel( 0, 0 ) }

oDlg:lHelpIcon := .f.

ACTIVATE DIALOG oDlg CENTERED ON INIT showWindow( oDlg:hWnd, 9)

INI oIni FILE oApp:cDir_000+"MSGUSUAR.INI" // remover o oApp:cDir_000

SET SECTION "USUARIOS" ENTRY oApp:wUsuario TO "" OF oIni

ENDINI

oTimer:activate()

Return nil

// espero que seja proveitoso

id=code>id=code>

Editado por - roberio on 24/06/2011 02:30:14

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...