• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

TheDark

[Open Source] XMLMenu - Menu Autorun para DVDs compilados

12 mensagens neste tópico

Titulo do Projecto: XMLMenu

Última Versão: 0.5

Linguagem: C# (VS2005, .NET Framework 2.0)

Motivação: Muitos de nós sacamos séries da net, e depois gravamos os episódios para DVD. Mas depois, quando utilizamos o DVD no computador para rever os episódios, é chato termos que andar à procura dos mesmos através do Explorador, ou de outro qualquer browser de ficheiros. Isto pode ser um preciosismo, mas o que era mesmo bonito era, assim que inserimos o DVD, termos uma lista de todos os episódios nele contidos... Ou noutra perspectiva, caso o DVD não contenha episódios de uma série, pode apresentar uma lista de instalação de aplicações que estejam presentes no disco.

Descrição: O XMLMenu é uma aplicação que permite criar rapidamente uma espécie de menu, fazendo a sua descrição através de um ficheiro XML. Neste momento, as possibilidades de personalização incluem:

  • Botões, que activarão dados ficheiros (sejam eles ficheiros de vídeo, áudio, executáveis, imagens, qualquer coisa), com possibilidade de apresentação de Tooltips;
  • Labels, com formatação (cor, itálico, sublinhado);
  • Imagem de fundo (em qualquer formato).

Estado: Em desenvolvimento. Correcção de eventuais bugs e aumento das capacidades de personalização. Possível passagem para C++ devido a alguma lentidão no arranque.

Ok, dito isto, podem apresentar sugestões para o futuro desenvolvimento do projecto!

NOTA: os atributos imageup dos botões ainda não estão implementados. Já estiveram, mas voltei atrás devido a pequenas incongruências... ::)

UPDATE Versão 0.5.0.1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que era mesmo bom era teres o tal DVD com os episódios abrires o programa, o programa lia o DVD, verificava os ficheiros do tipo mpg, mpeg, etc, e criava uma lista de todos esses ficheiros numa form. Depois era só escolher como o teu programa  :P  :D

Em relação ao teu, acho que devia dar para mover a Form.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que era mesmo bom era teres o tal DVD com os episódios abrires o programa, o programa lia o DVD, verificava os ficheiros do tipo mpg, mpeg, etc, e criava uma lista de todos esses ficheiros numa form. Depois era só escolher como o teu programa  :D  :P

Também pensei nisso, mas queria ter maneira de adicionar comentários (como nos ficheiros de exemplo que vão com o projecto, as tooltips com os títulos, e algo mais completo a desenvolver futuramente). Também tenho em mente é fazer um "criador de ficheiros de configuração", em que se seleccionam os ficheiros de vídeo, e depois podem-se adicionar os comentários...

Ideal seria uma interface gráfica onde se pudesse posicionar os botões e afins... Mas isso por enquanto está fora das minhas possibilidades. Tanto de conhecimentos como de tempo...

Em relação ao teu, acho que devia dar para mover a Form.

É verdade... mas não estou a ver como movê-la facilmente sem barra de título. é preciso registar os eventos mousedown, mouseup, mousemove... Quando estiver menos afogado começo a pensar nisso. Ou se alguém quiser dar uma ajuda... :P

O que me irrita muito é o tempo que demora a "pintura" da janela. Julgo que não será do meu computador, notaste alguma demora quando a janela é destapada?

Entretanto corrigi alguns bugs, nomeadamente o esquecimento de alterar o tamanho dos botões consoante o tamanho definido no XML... tenho que mudar mais algumas coisas, depois envio a nova versão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, nota-se alguma lentidão  :D

Em relação ao mover a janela, eu em VB6 utilizo a API SendMessage. Se quizeres posso colocar aqui um exemplo só que é em VB6  :-[

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mostra mostra!

Se um dia fizer uma janela About meto-te lá nos agradecimentos :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas...

O código é este:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "user32" ()

Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2
Dim Movefrm As Boolean



Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Movefrm = True
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim ReturnValue As Long
If Movefrm Then
    Call ReleaseCapture
    ReturnValue = SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub

Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Movefrm = False
End Sub

Se um dia fizer uma janela About meto-te lá nos agradecimentos happy

Não é necessário  :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito agradecido! Não fui exactamente por esse caminho (não usei Win32), mas deste-me as bases ;)

Se um dia fizer uma janela About meto-te lá nos agradecimentos happy

Não é necessário  :P

Claro que é! Gosto de dar crédito a quem o merece!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um pequeno update para resolver pelo menos um bug e adicionar uma nova funcionalidade:

  • [bug] Tamanho dos botões definido no XML não era levado em consideração;
  • [funcionalidade] Já é possível mover a janela.

Acho que mais umas modificações muito pequenas, mas não me recordo porque já foram feitas há algum tempo.

Tenho andado a reescrever o programa em C++, só com a API win32, e tem-se revelado complicado. Até agora tenho andado a descobrir a melhor maneira de criar a caixa de diálogo dinamicamente, só com win32, sem MFC, e ainda falta toda a parte de ler o XML. Estive a dar uma vista de olhos no Xerces, do projecto Apache, mas ainda não tentei ler. Com alguma paciência isto vai lá! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

TheDark, vai colocando os anexos no primeiro post, ou então referência aos posts com anexo também no primeiro post. Assim a informação não fica dispersa pela thread ;)

Obrigado!

abraços, HecKel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

TheDark, vai colocando os anexos no primeiro post, ou então referência aos posts com anexo também no primeiro post. Assim a informação não fica dispersa pela thread ;)

Obrigado!

abraços, HecKel

Done!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois o único contra do programa até agora é ser necessário ter instalado o Framework da M$ ;)

Eu tive para mandar o programa com um DVD de uma série que gravei a um conhecido da família, mas como não quero chatices deixei as coisas simples :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já tenho uma versão preparada sem framework... Não está a 100%, mas vai funcionando. Se alguém quiser experimentar, que avise.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites