-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Como isso estava originalmente no fórum VB, você pode fazer assim: Shell "net time \\computador /set /yes" Considerando que a rede seja Windows. Abraços, Graymalkin
-
Você pode usar isso no evento KeyPress da textbox e incluir no vetor inválidos os caracteres que você não quer que sejam inseridos nela: inválidos = Array("ç", ",", ".") For i = LBound(inválidos) To UBound(inválidos) If Asc(inválidos(i)) = KeyAscii Then KeyAscii = 0 End If Next i ok? Graymalkin
-
Não sei se entendi bem o que você quer, mas seria isso abaixo? If KeyAscii = 97 Then Text1.Text = Text1.Text & " teste" End If Abraços, Graymalkin
-
Então, no caso o código ficaria assim: Private Sub Document_Open() Dim DataUlt As Date, Data As Date Dim Hoje As Date Hoje = Now() Selection.Find.Execute "Última modificação:" If Selection.Find.Found Then Selection.MoveRight unit:=wdCharacter, Count:=1 Selection.MoveRight unit:=wdCharacter, Count:=11, Extend:=wdExtend DataUlt = CDate(Trim(Selection.Text)) If DateSerial(Year(Hoje), Month(Hoje), Day(Hoje)) > DateSerial(Year(DataUlt), Month(DataUlt) + 3, Day(DataUlt)) Then MsgBox "Atualize o documento!" End If End If Selection.MoveRight unit:=wdCharacter, Count:=1 Selection.Find.Execute "Data:" If Selection.Find.Found Then Selection.MoveRight unit:=wdCharacter, Count:=1 Selection.MoveRight unit:=wdCharacter, Count:=11, Extend:=wdExtend Data = CDate(Trim(Selection.Text)) If DateSerial(Year(Hoje), Month(Hoje), Day(Hoje)) > DateSerial(Year(Data), Month(Data), Day(Data) + 7) Then If MsgBox("Deseja alterar a data do documento?", vbYesNo) = vbYes Then Selection.TypeText Space(1) & Date End If End If End If Selection.MoveRight unit:=wdCharacter, Count:=1 Selection.Find.Execute "Próxima validação:" If Selection.Find.Found Then Selection.MoveRight unit:=wdCharacter, Count:=1 Selection.MoveRight unit:=wdCharacter, Count:=11, Extend:=wdExtend Selection.TypeText Space(1) & FormatDateTime(DateSerial(Year(DataUlt), Month(DataUlt) + 3, Day(DataUlt)), vbShortDate) End If End Sub ok? Abraços, Graymalkin
-
Dê uma olhada no Microsoft MAPI Controls 6.0 (através da opção Components do menu Project). Abraços, Graymalkin
-
Basta ir na opção Open e escolher o seu arquivo .py, depois vá no menu Run e escolha Run Module (ou aperte F5). Não sei se entendi direito, mas você disse que gravou o que estava na tela da shell? Se foi assim, ele não vai executar porque vai estar tudo que estava naquela tela (como as informações de Copyright que tem no início). O correto é você criar um novo vazio e escrever seus códigos nele. Abraços, Graymalkin
-
Exatamente, e por isso é que procuramos mostrar o "caminho das pedras", ao invés de apresentar a coisa pronta. Juntando a dica do Eddie com o que eu já tinha feito, seria algo assim: hoje = CDate("04/12/2004") aniv = CDate("05/12/1994") idade = Year(hoje) - Year(aniv) If Month(hoje) >= Month(aniv) Then If Day(hoje) >= Day(aniv) Then somar = 0 Else somar = -1 End If Else somar = -1 End If idade = idade + somar MsgBox "Idade real: " & idade Certo? Abraços, Graymalkin
-
Verifique os tipos dos campos e como você está inserindo-os. Acredito que o campo "total" seja um campo do tipo Double (ou qualquer outro tipo Numérico), portanto não se deve utilizar ' (aspas simples) para delimitar o valor que ficará nesse campo. Abraços, Graymalkin
-
Você pode utilizar as funções Day(), Month() e Year(), para saber, respectivamente, o dia, o mês e o ano de uma determinada data. Exemplo: data = CDate("25/01/1984") dia = Day(data) mês = Month(data) ano = Year(data) Nesse caso, dia será 25, mês será 1 e ano será 1984. Ok? Abraços, Graymalkin
-
Como ficaria meio complicado explicar como fazer, decidi fazer um exemplo baseado no que você apresentou e ficou assim: Private Sub Document_Open() Dim Data As Date Dim Hoje As Date Selection.Find.Execute "Última modificação:" If Selection.Find.Found Then Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=11, Extend:=wdExtend Data = CDate(Trim(Selection.Text)) Hoje = Now() If DateSerial(Year(Hoje), Month(Hoje), Day(Hoje)) > DateSerial(Year(Data), Month(Data) + 3, Day(Data)) Then MsgBox "Atualize o documento!" End If End If End Sub Ou seja, primeiro procura-se pela string "Última modificação:", e se ela for encontrada, move-se o cursor para direita uma posição (isso porque esse texto fica selecionado), daí seleciona-se 11 caracteres a direita (para selecionar a data do documento), converte-se o texto para uma data (que fica na variável Data) e pega-se também a data do dia (que fica na variável Hoje), verifica-se então se a data de hoje é maior do que a data do documento somada de 3 meses, se for aparece uma mensagem. Tudo isso fica na sub Document_Open() que sempre é executada quando o documento é aberto (ou se ficar no Normal.dot é executada sempre que qualquer documento é aberto). Ok? Qualquer dúvida, 'stamos aí. Abraços, Graymalkin
-
Acredito que bastaria você trocar a linha... REG.Seek "=", Busca ... por: REG.Seek ">=", Busca Sendo que a busca procuraria pelo primeiro nome que tivesse o começo igual ao conteúdo da variável Busca. Abraços, Graymalkin
-
A idéia principal de se usar uma barra de progresso é indicar ao usuário que algo está acontecendo e que esse algo tem um fim, portanto acho sem sentido desacelerar os processos a fim de demonstrar isso (afinal, quanto mais rápido, não é melhor?). Quando existe uma série de etapas que devem ser executadas sequencialmente, é interessante fazer: Progressbar1.Max = 3 Progressbar1.Value = 0 Processo1() Progressbar1.Value = Progressbar1.Value + 1 Processo2() Progressbar1.Value = Progressbar1.Value + 1 Processo3() Progressbar1.Value = Progressbar1.Value + 1 Porém, se for um único processo síncrono ao qual você não tem acesso, fica difícil calcular o valor total do progresso, quanto deve ser somado e de quanto em quanto tempo deve ser somado. Se ainda assim quiser ver uma barra de progresso encher a cada segundo, utilize a API Sleep() para parar por um segundo a cada iteração, exemplo: ProgressBar1.Max = 3 ProgressBar1.Value = 0 For i = 1 To 3 ProgressBar1.Value = i Sleep 1000 Next i Abraços, Graymalkin
-
Um exemplo: ProgressBar1.Max = 100 For i = 1 To 100 ProgressBar1.Value = i DoEvents: DoEvents: DoEvents Next i Porém, o processo acontece tão rápido que não dá pra ver ela "enchendo" realmente. Abraços, Graymalkin
-
A despeito de tudo poder ser feito através da lógica, a solução para esse problema não se limita apenas à ela e envolve muito mais os recursos disponíveis na linguagem. Isso é muito específico e pode envolver conhecimentos além do "normal". De qualquer forma, uma opção seria utilizar as classes TCPListener e TCPClient para o envio e recepção de dados através do protocolo TCP/IP. Nesse caso você vai precisar de conhecimentos a respeito de sockets. Qualquer dúvida, 'stamos aí. Abraços, Graymalkin
-
Respondendo as duas últimas perguntas (a primeira, infelizmente, não sei, já que não uso esse controle): 2 - Dê uma olhada se existe referência a controles ou bibliotecas que não são usadas no projeto (se bem que eu acho que ele remove sozinho quando um determinado controle está referenciado mas não é usado). Um programa simples com o uso do DAO, se não me engano, ocupa 3MB, no mínimo. 3 - Sim, tem como. Basta você utilizar o operador >= ou o LIKE. Exemplos: Data1.Recordset.FindFirst "campo>='" & texto & "'" ou Data1.Recordset.FindFirst "campo LIKE '*" & texto & "*'" No caso do >= a string digitada deve ser o começo do que se quer procurar, já no caso do LIKE usa-se caracteres curingas para definir a busca. No caso, esse "*" significa qualquer sequência de caracteres de qualquer comprimento. Portanto, colocando um no começo e outro no fim, a busca será feita até mesmo no meio das palavras e não apenas no começo. Abraços, Graymalkin
-
Se ele só tem o botão Fechar então você definiu a propriedade BorderStyle para Fixed. Tente mudar para Sizable ou outro tipo. Abraços, Graymalkin
-
Até onde sei não dá pra fazer isso só com o VB (talvez com o uso de APIs isso seja possível), mas você pode simplesmente desabilitar o botão maximizar a fim de que a janela só possa ser minimizada ou fechada. Para tal, basta alterar a propriedade MaxButton para False. Abraços, Graymalkin
-
Se não me engano, os endereços acessados ficam gravados em alguma chave do Registro. Dê uma procurada através do Regedit e veja o nome exato da chave, daí o que você pode fazer é ler essa chave a partir do programa em VB e armazenar em um local seguro. Abraços, Graymalkin
-
Em relação aos tutoriais dê uma olhada no tutorial que já vem junto da documentação e veja também os que estão disponíveis em http://www.pythonbrasil.com.br. Em relação a criação de páginas dinâmicas, procure algo sobre CGI. Não posso ajudar muito porque essa não é a minha praia, mas veja também as mensagens anteriores do fórum, pois esse assunto passou por aqui a pouco tempo. Abraços, Graymalkin
-
Para a parte de sockets, dê uma olhada nas classes TcpListener e TcpClient, ok? Abraços, Graymalkin
-
Uma idéia seria ficar "buscando" uma janela, o tempo todo, com as características daquela janela de download do Internet Explorer, e caso ela fosse encontrada, apertar no botão Cancelar. Isso vai exigir o uso de algumas APIs do Windows como a FindWindow(), FindWindowEx(), EnumWindows() e SendMessage() (não necessariamente todas essas). Se ainda precisar de ajuda, é só falar. Abraços, Graymalkin
-
Você pode utilizar seus conhecimentos já adquiridos e fazer "programas em páginas" tão eficazes quanto programas executáveis. Como o Rnyo citou, você utilizar um servidor web como o Apache ou o IIS (ou mesmo o PWS) em uma rede local e seus "programas" rodariam no navegador. Mas se você quer mesmo se aventurar na programação mais "off-line" digamos (não necessariamente), você pode começar com linguagens de programação tipo Visual Basic, Python, Delphi ou xHarbour, por exemplo. Abraços, Graymalkin
-
A função que você procura é a StrConv(), que existe no VB mas não tenho certeza quanto a existência da mesma no Access. Exemplo: msgbox StrConv("isto é teste", vbProperCase) Todavia, os "ligantes" deverão ser alterados com a função Replace() mesmo, já que a função citada acima não identifica essa diferença. Abraços, Graymalkin
-
Já existe um outro tópico sobre a diferença entre o VB6 e o VB.NET (http://scriptbrasil.com.br/forum/index.php?showtopic=11065). Mas, a plataforma .NET é uma espécie de "meio comum" ("comum" no sentido de único ou universal) para rodar aplicativos. Assim como Java precisa de uma "virtual machine" para rodar, aplicativos .NET necessitam da .NET Framework instalada. Abraços, Graymalkin
-
Aí é que está, essa cor nunca vai existir no VB, porque ele não "tem" cores! Aliás, nem HTML tem. O que você se refere é ao valor hexadecimal da cor e que pode ser usado do jeito que falei no post anterior. Exemplo: Label1.Forecolor = &HF7EFE7 Abraços, Graymalkin