Function Pause
		(UMA FUNÇÃO QUE FAZ FALTA NO VB)

 You can easily pause for n seconds in your 
 program with the following code: 

 Private  Sub Pause (Seconds As Single) 

     Dim EndTime As Date 

     EndTime = DateAdd("s", Seconds, Now) 

     Do 
       DoEvents 
     Loop Until Now >= EndTime 

 End Sub 
  
 Use:: 
 'In the Forms Splash 
 Private Sub Form_Load() 
     'Wait for 5 seconds, after show frmSplash 
     Pause (5) 
     Unload frmSplash 
 End Sub
				----------------

	 		    IMPRIMIR ARQUIVO TEXTO

Método para imprimir um arquivo texto, sem ter que abri-lo,
"print app.path & "\arquivo.txt" ?
				------------

  			     SAIR DO WINDOWS

Option Explicit

'Forçar saída do Windows (Reboot)

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As
Long, ByVal dwReserved As Long) As Long
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
' Obs.: é mencionado também um EWX_POWEROFF no WIN32.HLP, que creio ser
o número 5.

Private Sub Form_Click()
    Dim X As Long
    
    X = ExitWindowsEx(EWX_FORCE, 0)
    X = ExitWindowsEx(EWX_REBOOT, 0)
End Sub
				---------------

		How to Highlight Textbox Text on Gaining Focus
 		 (TEXTO EM TEXTBOX SELECIONADO AO GANHAR FOCO)

Applies to: VB4-32
With appropriate API 16-bit API declarations, this code also applies to: 
VB3 VB4-16

'Place the following code into the GotFocus sub of the textbox whose 
contents you want to have highlighted on obtaining focus:
Sub Text1_GotFocus()

Text1.SelStart = 0
Text1=SelLength = Len(Text1)

End Sub 

Comments

An object cannot obtain focus during the Form_Load. If you require that 
the a textbox have focus on the initial displaying of the form, use an 
implicit Show statement in the form's Load event: 

Sub Form_Load()

(any form startup code)

Me.Show
Text1.SetFocus 

End Sub
				--------------

		A nice and easy example how to play a wav file 
			(REPRODUZINDO ARQUIVO .WAV)

           Declare Function sndPlaySound Lib "MMSystem" (ByVal lpsound as String, ByVal flag as Integer ) as Integer
           Dim SoundFile as String, worked as Integer
	   SoundFile = "filename.wav"
           worked = sndPlaySound (SoundFile, 1)
				----------------

			Abrir URL no navegador padrão 

          Para abrir um link através do VB, no navegador padrão, coloque o seguinte
          código na seçao de declarações: 

          #If Win32 Then 

          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 

          #Else 

          Private Declare Function ShellExecute Lib _ 
          "shell.dll" _ 
          (ByVal hwnd As Integer, _ 
          ByVal lpOperation As String, _ 
          ByVal lpFile As String, _ 
          ByVal lpParameters As String, _ 
          ByVal lpDirectory As String, _ 
          ByVal nShowCmd As Integer) As Integer 

          #End If 

          Private Const SW_SHOWNORMAL = 1 

          No procedimento CLICK de algum controle, digite: 

          Private Sub label1_Click() 

          Dim iret As Long 

          iret = ShellExecute(Me.hwnd, _ 
          vbNullString, _ 
          "http://www.vbbrasil.com", _ 
          vbNullString, _ 
          "c:\", _ 
          SW_SHOWNORMAL) 

          End Sub
				----------------
			Launch Internet Explorer 
			 (EXECUTAR O IE VIA VB)


                     'General Declerations Section
                     Dim TheBrowser As Object


   Sub LaunchIT()
       Set TheBrowser = CreateObject("InternetExplorer.Application")
            With TheBrowser
                 .Visible = True
                 .Navigate ("http://www.fta.com/~tekinc")
            End With
   End Sub
             
     This Sample Assumes That the user is already logged into the internet and that Internet Explorer is their browser. 

     Keep in mind, that you obviously can "Navigate" to any web address or any file. If you want to use this VB Trick on a regular network you can. just navigate to a text document on the network (PERFECT FOR HELP FILES)
     IE...Navigate ("I:\VB\Apps\Inventory\helpfile.html"). 
				----------------

			    Dar um boot na máquina

Para dar um boot na maquina vc deverá criar uma variável do tipo inteiro e digitar o seguinte comando:

= ExitWindows(&H43, 0)

Lembre-se q vc é bom verificar se existe ainda algum programa aberto, para dar o boot na maquina.

No Windows 95:

' API para reboot
Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4

Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As
Long) As Long

Dica: voce pode usar combinacao das constantes por exemplo:
Ret = ExitWindowsEx(EWX_REBOOT + EWX_FORCE, 0)
Da o reboot e nao pegunta se quer gravar nada.
				--------------

			    Shutdown (Desligar)			

Shutdown (e não só) à máquina via API:
1)Iniciar um novo projeto
2)criar um módulo de declarações com o seguinte:
Declare Function ExitWindows Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long,
ByVal dwReserved As Long) As Long
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1
 
3)colocar um botão num form e no evento click colocar o seguinte:
Dim RetVal As Long
RetVal = ExitWindows(EWX_SHUTDOWN, 0)

4)Tentar com todas as constantes
				--------------

				Format

Para codificação dd/mm/yyyy
propriedade format: dd/mm/yyyy
propriedade mask: ##/##/####

Para codificação 999.999.999,99 (para windows com o ponto decimal configurado para
"virgula")
propriedade format: ###,###,##0.00
propriedade mask: ###.###.###,##
				--------------

		Mudar o foco dos campos globalmente usando ENTER

Digite o seguinte comando na função "Keypress" do campo desejado: 
"If KeyAscii = 13 Then PRÓXIMO_CAMPO.SetFocus"
-------
Eu fiz diferente. Criei uma function:

Public function pular (tecla as integer)
if tecla = 13
then 
sendkeys("{TAB}")
else
tecla = 0
end if

end function
e chame-a nos eventos keypressed
pular (keypressed)
				--------------

			Mudar de campo com a tecla enter

No evento Keypress insira o seguinte código:
if KeyAscii = 13 then
sendKeys "{TAB}"
KeyAscii = 0
Endif
				--------------

   Texto de uma caixa de texto selecionado quando receber o foco

Text1.SelStart = 0
Text1.SelLength = Len(Text1)
				---------------

		Definir ENTER para saltar de campos,
e como para o computador não emitir um Beep após o ENTER ser pressionado ?

Existe mais duas formas de fazer isso:

Se voce quer que o efeito do ENTER funcione para todos os controles
presentes no formulario:
1) No evento Form_KeyPress insira o codigo:
If KeyAscII = 13 then
SendKeys "{Tab}"
KeyAscII = 0 
endif
2) Altere a propriedade KeyPreview do Form para True
Se voce quer que o efeito do ENTER funcione num controle em
especifico:
1) No evento KeyPress do controle insira o codigo:
If KeyAscII = 13 then
SendKeys "{Tab}"
KeyAscII = 0 
endif
Pronto o enter vai mudar de campo e o beep nao mais te incomodara.
				----------------

		Como registrar e desregistrar um .OCX no VB5

Na subpasta \tools do CD de instalação do VB5 existe o regsvr32 (caso não ache no "c")
c:\vb\tools\regsvr32 c:\windows\system\keysta32.ocx
Se voce quizer disregistrar use
c:\vb\tools\regsvr32 /u c:\windows\system\keysta32.ocx
-------
Ou
				REGISTRO DE OCX

Talvez seja melhor vc utilizar o Threed32.OCX q vem (acreditem) escondido no CD do VB5, no diretorio VB5.0\TOOLS\CONTROLS 
- copie o Threed32.ocx p/ o diretorio system
- execute c:\windows\system\regsvr32.exe Threed32.ocx
- Depois de um duplo-clique no arquivo VBCTRLS.REG no mesmo diretorio do CD
 (tem um txt q explica isso nesse diretorio) 

				----------------

			   Resolução do monitor sem API

    Dim xRes As Long, yRes As Long
    Dim picx As Long, picy As Long
    picx = Screen.TwipsPerPixelX
    picy = Screen.TwipsPerPixelY
    xRes = Screen.Width \ picx
    yRes = Screen.Height \ picy
    MsgBox "Pixels da tela: " & xRes & "X" & yRes				----------------
				-----------------

			FORM DE FORMA TRIANGULAR

Option Explicit
Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Type tP
    P(1 To 3) As POINTAPI
End Type
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, _
ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    Dim z As tP
    z.P(1).x = ((Me.ScaleHeight - Me.ScaleLeft) / 2) + 13
    z.P(1).y = 26
    z.P(2).x = 26
    z.P(2).y = Me.ScaleHeight - Me.ScaleLeft
    z.P(3).x = Me.ScaleHeight - Me.ScaleLeft
    z.P(3).y = Me.ScaleHeight - Me.ScaleLeft
    SetWindowRgn hWnd, CreatePolygonRgn(z.P(1), 3, 3), True
End Sub
				------------------

				PARÁBOLA E OUTRAS


1 - É Possível fazer uma parábola?
2 - Como faço para em uma barra de progresso estabelecer o mínimo (0%)como sendo o inicio da copia de alguns arquivos e o máximo (100%) como o final?
3 - Pelo q eu estava notando a Função Rnd sempre e constante por exemplo quando coloco ela variando de 0 a 100 o primeiro valor sempre é 95 o segundo
51 o terceiro 37 e assim por diante... gostaria então de algum jeito q realmente fosse randomico.
4 - Tenho por exemplo um numero 3,531309834738E 04 tem como eu pegar somente
as 2 primeiras casas desse número? 
5 - Gostariade calcular o tempo do clique do mouse (do evento mousedown) não em segundos e sim em uma unidade q desse um numero de umas 3 casas.


1 - É Possível fazer uma parábola? 	a maneira mais facil de se tracar uma curva eh usando coordenadas polares, a equacao da parabola eh:
   ro= p / (1 - cos(alfa))
onde p eh a distancia que a parabola corta o eixo dos x    para o tracado de o programinha seria mais ou menos assim:
p = 1
a = 0
ang = a * 3.141592/180
 ro = p / (1. - cos(ang)
 xa = cos(ang) * ro
 ya = sin(ang) * ro
 pset (xa,ya)
      for a = 0 to 360 step 5
           ang = a * 3.141592/180
           ro = p / (1. - cos(ang)
           xa = cos(ang) * ro
           ya = sin(ang) * ro
           line -(xa,ya)
      next a

eu nao testei, mas acredito que esta certo. eu fiz de 0 a 360, isto fara a curva ser tracada de - a + infinito.

pergunta 2
  se voce tem n arquivos para passar para porcetagem eh:
     for a= 1 to n
         perc = a*100/n
         manda para o slicer o perc
     next a

	Qto ao item 3 sobre o rnd, o problema eh que voce esta dando sempre a mesma semente, no randomize(), use o timer como semente, ai cada vez sera uma nova sequencia de numeros.

	no caso do 4 - se voce esta nescessitando do numero mesmo, e não de uma representacao dele seria alguma coisas assim:
     numero= 3.14159265
     num = val(format(numero,"0.00")) 
     se voce quizer mais precisao mude o "0.00" para "0.000" e assim por diante.
				-----------------

    Source: geocities.com/SiliconValley/Ridge/3505

               ( geocities.com/SiliconValley/Ridge)                   ( geocities.com/SiliconValley)