1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Projecto Vb 11º(inicio)

Discussão em 'Programação' iniciada por Diogo.23, 23 de Janeiro de 2007. (Respostas: 12; Visualizações: 1952)

  1. Ora boas a todos,
    desde já felicito este forum pelo exelente
    trabalho desenvolvido.

    Estou no 11º em bases de programaçao estou a dar Vb.
    foi nos pedido um trabalho a dois ainda sem data pre-defenida(mas é melhor começar já a pensar)
    eu e o meu colega, temos conhecimentos muito basicos de Vb,(só de 11º mesmo)
    e a nossa ideia para o projecto/trabalho seria fazer uma especie de barra de tarefas.
    Passo a explicar.

    - Nessa mesma barra gostava de conter coisas como botao de acesso ao browser de internet,
    para o meu computador,meus documentos e o media player.
    - ter botoes com tarefas agendadas... que por exemplo..e saio de casa carrego no botao..
    deixo la uma hora 'X' e ele nessa hora ira se desligar.
    - uma calculadora (sim essa sabemos xD)
    - será possivel ter um mostrador de relógio/calendário?
    - ter links para os sites mais visitados ou então para os escolhidos pelo utilizador

    Isto é so uma ideia/esboço inicial.
    tudo isto será possivel com trabalho.
    Mas como ja referi os meus conhecimentos sao super reduzidos.
    Gostava que me aconselhassem por onde começar ou se tem alguma ideia.

    um grande obrigado meu desde já.

    cumps.
     
  2. flaviorodrigues

    flaviorodrigues Power Member

    vem, vamos la entao!

    1º criar botoes de atalho para programas! facil!
    crias um command button, duplo click, e escreves o codigo:
    shell direcotrio do programa
    exemplo
    shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE")
    isto executa o internet explorer
    fazes isto po resto que queres!

    Pa cena de agendamento
    crias 3 textboxes
    e um timer e poes
    Text1 = Hour(Time)
    Text2 = Minute(Time)
    Text3 = Second(Time)

    nestas e onde mostra a hora actual!
    depois crias mais 3 para pores tu a hora que queres que algo aconteca!
    e crias mais um botao e um timer
    no botao podes como caption algo tipo Iniciar
    e poes o codigo:
    Timer2.Enabled = True
    desde ja aviso que o timer2.enabled = false no inicio do forum deve tar timer2.enabled = false
    e todos devem ter de interval 1000 que e 1 segundo
    no timer2 no codigo poes algo tipo:
    If Text4.Text = Text1.Text Then
    If Text5.Text = Text2.Text Then
    If Text6.Text = Text3.Text Then
    codigo que keres ke faça
    end if
    end if
    end if
    ou seja quando for as caixas iguais ele faz algo que tu dises
    e pronto, basicamente e isto que queres saber!
    espero ter sido util!
    nao testei o codigo, foi feito aki espero que n tenha erros, mas se tiver tu dises!
     
    Última edição: 24 de Janeiro de 2007
  3. RPortela

    RPortela Power Member

    Boas,

    apenas 2 reparos:

    em relação á primeira questão, aviso-te desde já que deves ter cuidado com os caminhos, pois quem tiver o windows em português a pasta é programas, e não Program Files, a lógica está lá, depois tens é de ajustar ao teu caso.

    Ainda em relação a esse tema, não te deves esqueçer, que os programas no teu computador são diferentes dos do teu professor, exemplo podes usar o Microsoft Office, e o teu stor usar o OpenOffice, e o link de por exemplo do word não funcionar.

    Em relação ao ciclo if..then, podes optimiza-lo da seguinte forma:

    Código:
    If Text4.Text = Text1.Text And Text5.Text = Text2.Text And Text6.Text = Text3.Text Then
     [bloco de instruções]
    End If 
    Da maneira que foi referida tambem funciona, contudo assim utilizas apenas 1 ciclo em vez de 3!

    Cumpts.
     
    Última edição: 24 de Janeiro de 2007
  4. Desde já o meu obrigado...

    Sim era uma das minhas duvidas ininicias,
    gosta ve que abrise sim por exemplo o browser padrão do utilizador da maquina?

    Tou um bocado confuso em relaçao ao relogio... é melhor um passo de cada vez :)
    para tambem eu e o meu colega ficarmos a perceber.

    entao eu posso ter uma label e um timer e ter um codigo no timer que faça aparecer a hora
    actual(a da maquina)? mas tambem li algures que convem por o formato.

    cumps
     
  5. RPortela

    RPortela Power Member

    boas,

    o codigo para abrir o browser pre-definido e:
    Código:
    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
    
    Private Const SW_SHOW = 1
    Dim hBrowse As Long
    
    hBrowse = ShellExecute(0&, "open", "http://www.sapo.pt", "", "", SW_SHOW)
    
    em que o website que vai abrir e o do sapo, alteras e funciona.

    [Codigo não feito por mim, retirado de um outro post aqui do forum]


    Em relação ao relógio:
    Para colocares a hora actual basta usares o seguinte codigo:
    Código:
    Text1.Text = Format(Time, "hh:mm:ss")
    Nota: se em vez de hora, quiseres a data, trocas o formato para: Format(Date, "dd-mm-yyyy").

    O que o flavio te quis explicar com aquele ciclo foi: em 3 text box´s (podes trocar por apenas uma, se usares o formato que eu te dei) , e noutras 3 (que tambem pode ser apenas 1a), vais inserir a data a que queres que ele faça alguma coisa, por exemplo, messagebox a informar que está na hora de qualquer coisa.

    o que aquele codigo faz, é comparar a hora da máquina, com a hora que foi inserida para 1 determinado evento, e quando essa condição for verdadeira vai executar o bloco de instruções que definires.

    isto funciona para apenas 1 evento, para usares mais do que um evento em simultaneo, ja vais ter que dificultar um pouco as coisas.

    Espero ter conseguido ajudar e ter explicado de uma forma minimamente compreensivel.

    Cumpts.
     
  6. Obrigado pela ajuda,

    bom mas agora começaram tambem a surgir os erros,
    http://img181.imageshack.us/img181/8889/semttulo4cx.jpg

    em seguida tentei as horas,
    fiz a textbox e introduzi o codigo no timer mas ao correr o prog.
    as horas nao aparecem automaticamente.


    abraços.
     
  7. RPortela

    RPortela Power Member

    boas,

    quanto ao erro:

    esqueçi-me de referir 1a coisa, no topo do form, na zona das declarações, tens de declarar a funcao:
    Código:
    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
    
    Private Const SW_SHOW = 1
    Dim hBrowse As Long
    
    Depois, onde queres abrir o evento (comando/evento) é que metes o seguinte codigo:

    Código:
    hBrowse = ShellExecute(0&, "open", "http://www.sapo.pt", "", "", SW_SHOW)
    
    Para que as horas apareçam tens de fazer o seguinte:

    no form load, activas o timer, e tens de definir o intervalo (1 segundo):

    Timer1.enabled = true
    timer1.intervalv = 1000

    depois no timer1 metes:

    labelhoras.caption = Format(Time, "hh:mm:ss")

    Penso que sejam estes os erros que estás a cometer.

    Cumpts.
     
  8. flaviorodrigues

    flaviorodrigues Power Member

    ya, tal como disse em cima tens que ter num timer a actualizar de um segundo pa mostrar a hora em tempo real :)
     
  9. Sim, :)

    Obrigado(once again)
    bem até agora as horas e o botao que faz a ligaçao ao browser estão testados
    e a funcionar.

    Agora, em relação as tarefas agendadas.o a ideia era a seguinte
    ter o botao ex.shutdown. ao clicar nesse botao fazer aparecer um msgbox para introduzirmos a hora a que queremos desligar a maquina.

    cumps:P
     
  10. flaviorodrigues

    flaviorodrigues Power Member

    para a cena de desligares o pc axo k em cima de td poes:
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const WM_CLOSE As Long = &H10
    'SHUT DOWN AND RESTART IN VB6
    Const EWX_LOGOFF As Long = 0
    Const EWX_SHUTDOWN = 1
    Const EWX_REBOOT = 2
    Const EWX_FORCE = 4
    Private Declare Function ExitWindows _
    Lib "user32" Alias "ExitWindowsEx" _
    (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

    e depois no botao poes algo tipo
    timer2.enabled
    no timer2 poes:
    a cena de verifiar horas de agendmento como tens explicado em cima e poes mais:
    ExitWindows EWX_SHUTDOWN, &HFFFFFFFF

    se td correr bem deve encerrar!
     
  11. Obrigado,
    criei as 3 textbox para se inserir a hora os minutos e os segundos.
    fiz isso cliquei no botao encerrar e nada.
    tirei que por algum codigo nas textbox.
    nao será possivel ao clicar mos no botao shutdown ele nos mostrar uma mensagem
    aí sim nessa mensagem inserirmos as horas?

    sou bue xato:-D
     
  12. flaviorodrigues

    flaviorodrigues Power Member

    eu nao testei esse codigo, para aparecer uma janela para pores os dados
    usas uma inputbox
    exemplo basico
    Dim horas As String
    horas = InputBox("horas para encerrar pc")
     
  13. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    @ flaviorodrigues, dá uma vista de olhos a esta thread, porque esse método só resulta em Win95/98/ME.
    Para fazer shutdown, podes sempre fazer Shell ("shutdown -s -f -t 00"), em que s = Shutdown; f =
    Force; t = Tempo - 00 segundos = imediato :P
    É um workaround... há formas melhores de o fazer, mas são muito complexas.

    Quanto às horas para encerrar o pc, há muito que fazer. Podes usar um form novo, em que controlas o que é escrito (uma InputBox permite que se desligue o computador às 254 horas, 352 minutos e 95 segundos).
    Num Timer, já podes controlar a hora actual e a hora para shutdown, e quando forem a mesma, faz o shutdown.

    Se puderes, coloca cada uma das tuas dúvidas actuais em tópicos, como fizeste no post inicial, para eu te tentar responder a todas e a cada uma individualmente ;)

    Cumps [[[[[[[]]]]]]]
    angelofwisdom
     

Partilhar esta Página