sexta-feira, 29 de junho de 2012

Como impedir que seu aplicativo seja executado duas vezes ao mesmo tempo

Para impedir que seu aplicativo tenha duas execuções ao mesmo tempo, basta adicionar o código abaixo no evento Load do formulário de inicialização:

Dim i As Integer = 0
For Each processo As Process In Process.GetProcesses()
      If processo.ProcessName = "Nome do seu aplicativo" Then
            i += 1
      End If
Next processo
If i = 2 Then
     
Application.Exit()
End If

O nome do seu aplicativo você obtém ou altera em Solution Explorer / My Project / Application / Assembly Name.

Simples, não?

terça-feira, 26 de junho de 2012

CapsLock, NumLock ou ScrollLock estão ativados?

Para saber se as teclas CapsLock, NumLock ou ScrollLock estão ativadas utilize dos códigos abaixo:

Dim bln As Boolean

bln =
My.Computer.Keyboard.CapsLock
bln =
My.Computer.Keyboard.NumLock
bln =
My.Computer.Keyboard.ScrollLock

Estes códigos retornaram True se a tecla correspondente estiver ativa e False se não estiver ativada.

Simples, não?

terça-feira, 19 de junho de 2012

Como abrir um documento de Microsoft Excel

Para abrir um documento do Microsoft Excel você precisa adicionar ao seu projeto a referência COM: Microsoft Excel 12.0 Object Library ou inferior.

Adicione antes da declaração da Class Form o seguinte código:

Imports Excel = Microsoft.Office.Interop.Excel

Para abrir um novo documento insira os seguintes comandos em um procedimento ou função:

Dim excelApp As New Excel.Application
Dim excelBook As Excel.Workbook = excelApp.Workbooks.Add
excelApp.Visible =
True

Para abrir um documento Excel qualquer insira os seguintes comandos em um procedimento ou função:

Dim excelApp As New Excel.Application
Dim excelBook As Excel.Workbook = excelApp.Workbooks.Open("caminho/nomedodocumento.extensão")
excelApp.Visible =
True

Simples, não?

Como abrir um documento do Microsoft Word


Para abrir um documento do Microsoft Word você precisa adicionar ao seu projeto a referência COM: Microsoft Word 12.0 Object Library ou inferior.

Adicione antes da declaração da Class Form o seguinte código:

Imports Word = Microsoft.Office.Interop.Word

Para abrir um novo documento insira os seguintes comandos em um procedimento ou função:

Dim docWord As New Word.Application
Dim docDoc As Word.Document = docWord.Documents.Add
docWord.Visible = True

Para abrir um documento word qualquer insira os seguintes comandos em um procedimento ou função:

Dim docWord As New Word.Application
Dim docDoc As Word.Document = docWord.Documents.Open("caminho/nomedodocumento.extensão")
docWord.Visible = True

Simples, não?

segunda-feira, 14 de maio de 2012

Como imprimir um Form

Para imprimir um Form utilize o componente PrintForm do Visual Power Packs.















Os comandos principais são:

1. Para configurar a orientação da página:

PrintForm1.PrinterSettings.DefaultPageSettings.Landscape =
Boolean

Se Boolean = True, o Form será impresso na orientação Paisagem, se Boolean = False, o Form será impresso na orientação Retrato.

2. Para configurar um tamanho personalizado de papel:

PrintForm1.PrinterSettings.DefaultPageSettings.PaperSize =
New System.Drawing.Printing.PaperSize("String", Int1, Int2)

onde String é um nome para o tamanho do papel e Int1 é um número inteiro para o largura em centésimos de polegada e Int2 é um número inteiro para o comprimento em centésimos de polegada.

3. Para configurar as margens da impressão:

PrintForm1.PrinterSettings.DefaultPageSettings.Margins =
New System.Drawing.Printing.Margins(Int1, Int2, Int3, Int4)

onde Int1, Int2, Int3 e Int4 são números inteiros que cuja unidade é em centésimos de polegada e representam, respectivamente, margem esquerda, direita, superior e inferior. Lembrando que 1 polegada = 2,54 centímetros.

PrintForm1.PrintAction = PrintAction

onde há três opções para a PrintAction

PrintAction.PrintToFile: Imprime para um arquivo;
PrintAction.PrintToPreview: Exibe uma prévia da página antes da impressão;
PrintAction.PrintToPrinter: Imprime diretamente na impressora padrão.

Para utilizar o PrintToFile você deve definir antes para qual arquivo a figura do Form irá com o seguinte comando:
PrintForm1.PrintFileName =
"C:\Teste.eps"

A extensão do arquivo deve ser necessariamente o eps (Para saber mais: http://pt.wikipedia.org/wiki/Encapsulated_PostScript).

5. Para imprimir o Form:

PrintForm1.Print(
Form, printOption)

onde
Form é o formulário que ser quer imprimir, se for o formulário onde está o comando utilize o Me, e as opções de printOption são as seguintes:

PowerPacks.Printing.
PrintForm.PrintOption.ClientAreaOnly: Utiliza uma nova implementação para imprimir a área cliente visível no momento.
PowerPacks.Printing.
PrintForm.PrintOption.CompatibleModeClientAreaOnly: Usa a implementação de impressão compatível para imprimir a área cliente visível no momento.
PowerPacks.Printing.
PrintForm.PrintOption.CompatibleModeFullWindow: Usa a implementação de impressão compatível para imprimir o formulário de área visível no momento. Isso inclui a barra de título, barras de rolagem e borda.
PowerPacks.Printing.
PrintForm.PrintOption.FullWindow: Utiliza uma nova implementação para imprimir o formulário visível no momento. Isso inclui a barra de título, barras de rolagem e borda.
PowerPacks.Printing.
PrintForm.PrintOption.Scrollable: Utiliza uma nova implementação para imprimir a área inteira do cliente, embora alguns estão fora de vista.

Simples, não?

Arrastar e Soltar um componente

Para criar o efeito de arrastar e soltar para componentes de um Form, coloque os seguintes códigos nos eventos correspondente ao componente:

Public Class Form1

     
Dim drag As Boolean
      Dim ptX, ptY As Double

      Private Sub Componente_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseDown

            drag = True
            ptX = e.X
            ptY = e.Y

      End Sub

      Private Sub Componente_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseMove

            If drag = True Then
                  Componente.Location = New Point(Componente.Location.X + e.X - ptX, Componente.Location.Y + e.Y - ptY)                  
                  Me.Refresh()
            End If
     
End Sub


      Private Sub Componente_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseUp

            drag = False

      End Sub

End Class


Se quiser especificar qual botão acionará o efeito de arrastar e soltar, coloque o código abaixo em Componente_MouseDown:


If e.Button = Windows.Forms.MouseButtons.Right Then
      drag = True
      ptX = e.X : ptY = e.Y
End If

Simples. não? Confesso que tirei da página do MSDN.

segunda-feira, 26 de setembro de 2011

Retirar o botão de fechar da barra de títulos

Para retirar o botão de fechar da barra de títulos insira o código a seguir abaixo do Public Class Form1

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal bRevert As Integer) As Integer
Private
Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Private Const
SC_CLOSE = &HF060&
Private Const MF_BYCOMMAND = &H0&

Insira também a função abaixo:

Function RemoveXButton(ByVal iHWND As Integer) As Integer
      Dim
iSysMenu As Integer
     
iSysMenu = GetSystemMenu(iHWND, False)
     
Return RemoveMenu(iSysMenu, SC_CLOSE, MF_BYCOMMAND)
End Function

E em Form1_load coloque o seguinte comando:

RemoveXButton(
Me.Handle())

Para retirar o botão de Maximinizar e Minimizar vá em Propriedades do Form1 e coloque
False em MaximizeBox e MinimizeBox.

Simples, não?