Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. Você pode fazer isso com a cláusula ORDER BY de uma SQL. Como você faz para abrir a tabela? Graymalkin
  2. Dê uma lida neste post: http://scriptbrasil.com.br/forum/index.php?showtopic=26595 Abraços, Graymalkin
  3. De acordo com a ajuda do Access 2003: Graymalkin
  4. Graymalkin

    Sair Do Formulario

    Dessa maneira sim. O ideal é colocar a rotina (no caso dele, o update) no evento Unload do form. Abraços, Graymalkin
  5. Bom, acabei. . Ficou bem simples, mas tentei sofisticar no código (ah, enchi os códigos de comentários). O jogo permite que o próprio computador jogue com ele próprio em todos os níveis de dificuldade, definindo quantas partidas devem ser executadas. Permite também jogar entre dois jogadores humanos. Mostra estatísticas de partidas (quem ganhou quantas, quantas foram jogadas). Bom, é isso aí: http://www.graymalkin.globalhosts.com.br/stuff/JV.zip Abraços, Graymalkin
  6. Graymalkin

    Sair Do Formulario

    O evento Unload do form é executado quando você "clica no X". Abraços, Graymalkin
  7. Graymalkin

    Debug !

    Eddie! Sumido do fórum de VB, hein? Abraços, Graymalkin
  8. Graymalkin

    Apis

    Uso um programa para descobrir os nomes das classes e para facilitar a criação de códigos que acham um determinado controle. Você pode encontrar esse programa aqui: http://www.graymalkin.globalhosts.com.br/stuff/Fww.zip Abraços, Graymalkin
  9. Graymalkin

    Apis

    Ah, agora entendi. Você então está procurando pela classe da mesma e não pelo título. Exemplo: Debug.Print FindWindow("Notepad", vbnullstring) Debug.Print FindWindow(vbnullstring, "Sem título - Bloco de Notas") Ambos vão retornar a mesma coisa. Existe uma óbvia vantagem no caso da classe, que é o fato de que ela não muda como o título da janela. Abraços, Graymalkin
  10. Graymalkin

    Meu Leitor De Cd

    Não, apenas não lia. Alguns CDs graváveis realmente descascam com o tempo, não sendo, necessariamente, o leitor o responsável por isso. Tenho CDs que estão guardados há anos e estão descascando sem estarem sendo usados. Abraços, Graymalkin
  11. Graymalkin

    Apis

    Tanto na janela quando na barra de tarefas fica o mesmo título. No caso do Bloco de Notas, fica "Sem título - Bloco de Notas" assim que o mesmo é aberto. E isso fica tanto na janela quanto na barra de tarefas. Nunca fiz curso. Como já havia dito antes, fiz 2º Grau técnico. Porém, já tinha começado a programar antes disso, e sinceramente, o que se aprende na escola é praticamente uma noção da coisa. Não sei se cursos específicos são mais completos; porém acho que nada é melhor do que a prática e o auto-aprendizado. Hehehe... tudo ao seu tempo. E acho que nada é melhor do que a prática. Idealize projetos e tente realizá-los. Faça programas à toa (eu mesmo tenho dezenas deles) com os conhecimentos adquiridos. Aprenda novas linguagens e novos paradigmas; em suma, acumule conhecimentos. Creio que a maioria dos que ajudam aqui no fórum, incluindo você, o William, o PiGmEu, etc., são capazes de ajudar exatamente porque já passaram pelas situações em que os iniciantes e até mesmo os mais experientes já passaram. E, para finalizar: "Aprender é a unica coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci) Abraços, Graymalkin
  12. Graymalkin

    Meu Leitor De Cd

    Tive problemas ultimamente com o gravador de CD e o leitor de DVD que não liam corretamente quaisquer CDs. Foi só remover o driver de ambos e reiniciar (para que os mesmos fossem instalados novamente) e resolveu. Abraços, Graymalkin
  13. Graymalkin

    Apis

    Sim, usa. Porém, algumas não mais necessárias e pretendo removê-las para deixar o código mais enxuto. Tá doido!? Ninguém decora APIs. Por isso que existe o API-Guide e o API Viewer. Com o tempo você acaba guardando o nome delas (apenas o nome!) e para que servem. Daí, quando precisa, vai no API-Guide ou no API Viewer e pega a declaração das mesmas. Mexo com computadores (é claro que no começo só utilizava para joguinho) desde os 6 ou 7 anos de idade (tenho 20 agora). Com programação mexo só há uns 5 ou 6 anos aproximadamente. O número retornado pela API FindWindow não é um índice; é um "handle". Um handle é um número que identifica uma determinada janela (quando se fala em "janela", no caso de APIs, significa também cada botão, listbox, textbox, etc). Muitas outras APIs precisam de um argumento chamado hWND que é justamente esse número. Nenhuma janela tem um handle igual a 0, então quando a API retorna esse valor é porque não encontrou a janela especificada. E a declaração dela é a seguinte: Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Portanto, o nome da janela fica no segundo parâmetro sim (lpWindowName) e não no primeiro (lpClassName). Abraços, Graymalkin
  14. Graymalkin

    Meu Leitor De Cd

    Qual o seu Windows? XP? Graymalkin
  15. Graymalkin

    Apis

    Presumo que você esteja usando a API FindWindow para isso, certo? Se for, ela sempre retorna o número que identifica uma janela, quando seu segundo parâmetro é o nome (título que fica na barra de tarefas) do programa. Exemplo que acha a calculadora: h = FindWindow(vbNullString, "Calculadora") MsgBox h O primeiro parâmetro não precisa ser especificado, mas, se fosse o caso, você teria de fornecer a classe da janela (que é uma string que varia de uma janela para outra, mas que pode ser obtida através de outra API que não me lembro agora qual é). Isso é normal. Essas APIs são o que compõe o sistema operacional. Todas as janelas que você está vendo nesse momento em seu desktop foram criadas usando as APIs CreateWindow e/ou CreateWindowEx. Com essa API também se cria todos os botões e outros tantos controles que estão nestas janelas. A API SendMessage está o tempo todo sendo utilizada para enviar "comandos" para as janelas, como minimizar, maximizar ou fechar, além de outros como o pressionamento de teclas e os cliques do mouse. Quando você está usando um programa e alterna para outro, a API BringWindowToTop ou SetFocus é usada para trazer o programa para frente a fim de que você o veja. Quando você copia um arquivo de um local para outro, a API CopyFile é usada para isso. APIs como a BitBlt e StretchBlt estão sendo usadas nesse momento para "desenhar" os objetos nas janelas. Sua conexão à Internet que você está usando agora recebe e envia os dados através das APIs de sockets. Existem APIs específicas que lidam com a inclusão, remoção e alteração de chaves e dados no Registro do Windows. Como você pode ver, as APIs dominam no que diz respeito ao sistema operacional. E elas são uma forma de deixar que nós, relés mortais, usemos esses recursos tão preciosos e quem nem sempre estão ao nosso alcance com as linguagens de programação. Usaremos todas? Não. Precisaremos de todas? Muito menos. Precisaremos de algumas? Quase com certeza. Só como exemplo, o XPlayer se utiliza de, aproximadamente, umas 30 APIs do Windows. O Máximas usa umas 15 APIs. Porém, é claro que, dependendo do tipo de aplicação, talvez você nunca tenha que usar API. Abraços, Graymalkin
  16. Realmente, se olharmos por este lado, as APIs fazem tudo (porém nem sempre são a melhor escolha). Portanto, sempre haverá uma API para fazer "isso ou aquilo", sendo que o "isso ou aquilo" talvez seja passível de ser feito com os próprios recursos da linguagem (que por sua vez usará a API de forma transparente para nós). Abraços, Graymalkin
  17. Com uma busca rápida no Google achei isso: http://bochs.sourceforge.net/ e http://www.guiadohardware.net/kurumin/scre...min-3.0qemu.png O segundo link é de uma imagem que mostra que o Kurumin já tem um aplicativo para isso. Abraços, Graymalkin
  18. Pelo menos você já tinha noção de que existia uma API para isso. Dessa forma já teria um ponto de partida. Abraços, Graymalkin
  19. Não é "pelo amor de Deus" não, mas acho que posso ajudar. O que você procura pode ser feito pela API SetWindowsPos. Segue um exemplo (retirado do API-Guide): Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOACTIVATE = &H10 Const SWP_SHOWWINDOW = &H40 Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Private Sub Form_Activate() SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE End Sub Abraços, Graymalkin
  20. Sim, para o Linux (e o Lindows, que nada mais é do que uma distribuição Linux) existe o WINE (Windows Emulator). Também, houve uma distribuição (se não me engano, era o Corel Linux) que, quando ligada a um servidor NT, permitia que você rodasse aplicativos Windows como um terminal (ou seja, o programa era realmente executado no servidor e no cliente só se recebia as saídas do mesmo, parecendo que o programa estava rodando ali). No entanto, em nenhum dos dois casos havia a possibilidade de emular um sistema operacional inteiro. Graymalkin
  21. Receio que não (pelo menos nunca vi outro como ele). Mas, talvez já haja alguma iniciativa open source (ou não) de fazer um programa desse tipo sem cobrar pelo mesmo. Se eu souber de algo, comunico-vos. Abraços, Graymalkin
  22. Graymalkin

    Utilizando C

    Dê uma procurada no fórum antes de postar. Dê uma olhadela neste tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=33002 Abraços, Graymalkin
  23. Infelizmente não. Mas você pode usar por um tempo para testar (30 dias, eu acho). Abraços, Graymalkin
  24. No VB quando queremos que um texto seja literal, usamos " (aspas duplas) para delimitá-lo. Pois bem, em SQL também, no entanto temos a opção de usar a ' (aspa simples) para delimitar os textos (a fim de não ter problemas com a delimitação do VB). Exemplo: aux = InputBox("Digite abaixo o começo do nome do produto desejado:") If aux<>"" Then Data1.Recordset.FindFirst "nomeproduto>='" & aux & "'") endif Se for o caso de coincidir com o início do nome do produto, o exemplo acima servirá. Note que usei o operador >= ao invés de somente =. Outra opção é usar o operador LIKE que aceita caracteres coringas nos textos a serem procurados. Exemplo: aux = InputBox("Digite uma parte qualquer do nome do produto desejado:") If aux<>"" Then Data1.Recordset.FindFirst "nomeproduto LIKE '%" & aux & "%'") endif Se você não sabe, % significa qualquer texto de qualquer comprimento (inclusive vazio). É o mesmo que * (aliás, se o primeiro não funcionar, tente este; de uma versão para outra isso mudou [de * para %]). E em relação a uma outra opção além do FindFirst, existe o Seek que procura através de índices (todavia, a utilização é da mesma maneira e você ainda tem de fazer alguns ajustes na abertura da tabela). Porém, nunca precisei realmente usá-lo (o Seek), já que o FindFirst (e suas variantes FindLast, FindNext e FindPrevious) além de instruções SQL sempre me serviram bem (e ainda servem, porém com ADO). Abraços, Graymalkin
  25. não axei tal opção não brother... poderia me explicar melhor a ação obrigado []s Dê um clique com o botão direito do mouse na grade e escolha "Properties". Na janela que surgir clique na aba Splits. Lá você encontrará a propriedade MarqueeStyle, que deverá ser ajustada para dbgHighlightRow. Abraços, Graymalkin
×
×
  • Criar Novo...