Estive a pesquisar a procura de um metodo que me ajude no envio de E-mail por Vbscript, espero que este exemplo seja util.
Sub enviamail(mail)
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Example CDO Message"
objMessage.From = mail
objMessage.To = "Email"
objMessage.TextBody = "Mensagem de Teste."
'Envio de Anexos
'objMessage.AddAttachment "c:\somefile.txt"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 'caminho do exchange pode ser IP ou nome
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
End Sub
(Office 365 Tips and Tricks. We definitely don't know everything...)
Friday, September 22, 2006
Thursday, August 31, 2006
Enviar mensagem com imagem no (Body) por Email...
Pois é, em vez de enviar anexos com imagens é possivel enviar através do corpo da mensagem do E-mail uma imagem.
Para isso está um pequeno codigo a demostrar.
Codigo:
Imports System.Net.Mail
Dim fromAddress As String = "XXXXX@mail.com"
Dim toAddress As String = "YYYYY@mail.com"
Dim subject As String = "Teste com imagem no body"
Dim contentId As String = "image1"
Dim filename As String = "c:\image001.jpg"
Dim body As String = "Aqui está o link para o recurso: "<"img src=""cid:image1""/>"
Dim mailMessage As New MailMessage(fromAddress, toAddress)
mailMessage.Subject = subject
Dim av1 As AlternateView
av1 = AlternateView.CreateAlternateViewFromString(body, Nothing, MediaTypeNames.Text.Html)
Dim linkedResource As LinkedResource = New LinkedResource(filename)
linkedResource.ContentId = contentId
linkedResource.ContentType.Name = filename
av1.LinkedResources.Add(linkedResource)
mailMessage.AlternateViews.Add(av1)
mailMessage.IsBodyHtml = True
Dim mailSender As New SmtpClient("servidor")
Try
mailSender.Send(mailMessage)
Response.Write("mensagem enviada!")
Catch ex As Exception
Response.Write(ex.Message)
End Try
Para isso está um pequeno codigo a demostrar.
Codigo:
Imports System.Net.Mail
Dim fromAddress As String = "XXXXX@mail.com"
Dim toAddress As String = "YYYYY@mail.com"
Dim subject As String = "Teste com imagem no body"
Dim contentId As String = "image1"
Dim filename As String = "c:\image001.jpg"
Dim body As String = "Aqui está o link para o recurso: "<"img src=""cid:image1""/>"
Dim mailMessage As New MailMessage(fromAddress, toAddress)
mailMessage.Subject = subject
Dim av1 As AlternateView
av1 = AlternateView.CreateAlternateViewFromString(body, Nothing, MediaTypeNames.Text.Html)
Dim linkedResource As LinkedResource = New LinkedResource(filename)
linkedResource.ContentId = contentId
linkedResource.ContentType.Name = filename
av1.LinkedResources.Add(linkedResource)
mailMessage.AlternateViews.Add(av1)
mailMessage.IsBodyHtml = True
Dim mailSender As New SmtpClient("servidor")
Try
mailSender.Send(mailMessage)
Response.Write("mensagem enviada!")
Catch ex As Exception
Response.Write(ex.Message)
End Try
Thursday, August 17, 2006
Tratamento de texto em relação a moeda (currency)
Quando se pretende formatar a moeda como texto o VS tem metodos formatar o valor que recebemos em Double e transformar em moeda, mas tambem é possivel definirmos exactamente o formato que se pretende.
No exemplo 1 é definido uma formatação de texto de como o resultado final irá sair.
No exemplo 2 utilizamos o formato "c" de currency que ira pegar no valor double e dar-lhe o formato em moeda da cultura vigente.
É preciso referir que o resultado final da moeda depende da culture que se esteja a ser utilizada no momento se estiver-mos na cultura americana o resultado nao será "€" euro, mas sim "$" dolar.
Exemplo 1:
total.Text = String.Format(String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", CDbl(value.Text)))
output: £124,14
Exemplo 2:
total1.Text = String.Format(String.Format("{0:c}", CDbl(value.Text)))
output: 124,14 €
No exemplo 1 é definido uma formatação de texto de como o resultado final irá sair.
No exemplo 2 utilizamos o formato "c" de currency que ira pegar no valor double e dar-lhe o formato em moeda da cultura vigente.
É preciso referir que o resultado final da moeda depende da culture que se esteja a ser utilizada no momento se estiver-mos na cultura americana o resultado nao será "€" euro, mas sim "$" dolar.
Exemplo 1:
total.Text = String.Format(String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", CDbl(value.Text)))
output: £124,14
Exemplo 2:
total1.Text = String.Format(String.Format("{0:c}", CDbl(value.Text)))
output: 124,14 €
Monday, August 14, 2006
Adicionar ou remover permissões de ficheiros ou directorios ACL (Access Control List)
Estava a explorar o msdn2 a procura de como controlar o acesso a pastas e ficheiros e encontrei este site onde explica como se adiciona ou remove as permissoes, Site.
No exemplo que eles dão, eles criaram um metodo:
AddFileSecurity(fileName, "DomainName\AccountName", _
FileSystemRights.ReadData, AccessControlType.Allow)
onde e definido o ficheiro a ser trabalhado, o utilizador que podera aceder, dando-lhe permissao de escrita.
No exemplo que eles dão, eles criaram um metodo:
AddFileSecurity(fileName, "DomainName\AccountName", _
FileSystemRights.ReadData, AccessControlType.Allow)
onde e definido o ficheiro a ser trabalhado, o utilizador que podera aceder, dando-lhe permissao de escrita.
Tuesday, August 08, 2006
Desenhar atraves de GDI um SMILE
Pois é o ASP.net e uma ferramenta tao pratica que todos os dias uma pessoa aprende sempre coisas novas, nunca podemos dizer que ja sabemos tudo, porque os utilizadores encontram sempre maneiras de complicar a vida, devemos ter a resposta, sim claro... com ajuda do msdn2 e um pouco de arte conseguimos fazer tudo.
criar a class onde sera desenhado o smile.
Imports System.Web
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Drawing.Imaging
Imports System
Namespace imagem
Public Class novaimagem
Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean _
Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
Dim bm As New Bitmap(101, 101)
Dim gr As Graphics = Graphics.FromImage(bm)
gr.FillEllipse(Brushes.Yellow, 0, 0, 99, 99)
gr.DrawEllipse(Pens.Black, 0, 0, 99, 99)
gr.DrawArc(Pens.Black, 20, 20, 60, 60, 0, 180)
gr.FillEllipse(Brushes.Black, 40, 40, 20, 25)
gr.FillEllipse(Brushes.White, 25, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 25, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 35, 20, 10, 15)
gr.FillEllipse(Brushes.White, 55, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 55, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 65, 20, 10, 15)
context.Response.ContentType = "image/GIF"
bm.Save(context.Response.OutputStream, ImageFormat.Gif)
End Sub
End Class
End Namespace
Inserir no Web.config:
system.web>
httpHandlers>
add verb="*" path="Imagem.ashx" type="imagem.novaimagem"/>
/httpHandlers>
Sendo chamado pelo Botao:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Image1.ImageUrl = String.Concat("Imagem.ashx")
End Sub
Depois de clicar no botao ira aparecer um smile :) :).
criar a class onde sera desenhado o smile.
Imports System.Web
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Drawing.Imaging
Imports System
Namespace imagem
Public Class novaimagem
Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean _
Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
Dim bm As New Bitmap(101, 101)
Dim gr As Graphics = Graphics.FromImage(bm)
gr.FillEllipse(Brushes.Yellow, 0, 0, 99, 99)
gr.DrawEllipse(Pens.Black, 0, 0, 99, 99)
gr.DrawArc(Pens.Black, 20, 20, 60, 60, 0, 180)
gr.FillEllipse(Brushes.Black, 40, 40, 20, 25)
gr.FillEllipse(Brushes.White, 25, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 25, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 35, 20, 10, 15)
gr.FillEllipse(Brushes.White, 55, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 55, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 65, 20, 10, 15)
context.Response.ContentType = "image/GIF"
bm.Save(context.Response.OutputStream, ImageFormat.Gif)
End Sub
End Class
End Namespace
Inserir no Web.config:
system.web>
httpHandlers>
add verb="*" path="Imagem.ashx" type="imagem.novaimagem"/>
/httpHandlers>
Sendo chamado pelo Botao:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Image1.ImageUrl = String.Concat("Imagem.ashx")
End Sub
Depois de clicar no botao ira aparecer um smile :) :).
Monday, July 31, 2006
"Cannot resolve collation conflict for equal to operation."
Ora aqui esta um erro que aconteceu, pensava eu "Ok projecto feito, toca a passar a BD para o servidor do cliente", ora la se muda e entao o que aconteceu quando arrebenta.....
"Cannot resolve collation conflict for equal to operation."
Problema: o problema nao é mais que um problema de linguaguem, se trabalhas com "Latin_general_CL_AS" e onde metes a BD esta com outra lingua, entao as tuas stored procedures entra em conflito e da erro.
Resolução: é associar ao campos a lingua por defeito da Base de dados.
exemplo:
Errada:
select employee_id
from MYLINKED.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id
Alterada:
select employee_id
from table.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id COLLATE database_default
"Cannot resolve collation conflict for equal to operation."
Problema: o problema nao é mais que um problema de linguaguem, se trabalhas com "Latin_general_CL_AS" e onde metes a BD esta com outra lingua, entao as tuas stored procedures entra em conflito e da erro.
Resolução: é associar ao campos a lingua por defeito da Base de dados.
exemplo:
Errada:
select employee_id
from MYLINKED.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id
Alterada:
select employee_id
from table.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id COLLATE database_default
Thursday, July 27, 2006
Associar Enter key ao Botão....
Pois é... nao sabia como associar o enter ao botao de submit entao pesquisei e encontrei este codigo que ajuda nesse campo.
asp:Panel ID="pnl1" runat="server" defaultbutton="Button1">
asp:Button ID="Button1" runat="server" Text="Button1" />
/asp:Panel>
Ok, mais uma coisa que nao sabia, sempre a aprender.....
asp:Panel ID="pnl1" runat="server" defaultbutton="Button1">
asp:Button ID="Button1" runat="server" Text="Button1" />
/asp:Panel>
Ok, mais uma coisa que nao sabia, sempre a aprender.....
Wednesday, July 26, 2006
Conexão de Base de dados por VBscript
Para fazer ligações a BD por ADODB em VBscript e simples depois de criar é o normal, como eu fazia em VB6...., :P .
Set OBJdbConnection = CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={SQL Server};server='server';uid=sa;pwd=;database=Northwind"
SQLQuery = "SELECT CompanyName, Country, Phone FROM dbo.Customers"
Set Result = OBJdbConnection.Execute(SQLQuery)
If Not Result.EOF Then
Do While Not Result.EOF
winmsgbox(Result("CompanyName"))
Result.MoveNext
Loop
End If
OBJdbConnection.Close
Set OBJdbConnection = CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={SQL Server};server='server';uid=sa;pwd=;database=Northwind"
SQLQuery = "SELECT CompanyName, Country, Phone FROM dbo.Customers"
Set Result = OBJdbConnection.Execute(SQLQuery)
If Not Result.EOF Then
Do While Not Result.EOF
winmsgbox(Result("CompanyName"))
Result.MoveNext
Loop
End If
OBJdbConnection.Close
Listagem Active directory por vbscript
Pediram-me a uns dias para realizar uns comandos em vbscript a nivel de LDAP, entao começei a explorar e voilá, toca a fazer listagens.... Primeiro por comando, o segundo por um Query em ADODB.
Codigo:
1.
Set objADSystemInfo = CreateObject("ADSystemInfo")
'Utilizador que esta a utilizar
strUserDN = objADSystemInfo.UserName
Set objUser = GetObject("LDAP://" & strUserDN)
For Each strGroup in objUser.Groups
'Listagem dos grupos
winmsgbox(strGroup.Name)
Next
'Listagem do Email
winmsgbox(objUser.mail)
2.
Dim conn, cmd, rs, temp, ldapPath
ldapPath = "caminho"
Set conn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
conn.provider = "adsdsoobject"
conn.open "active directory provider"
cmd.activeconnection = conn
cmd.commandtext = ";(objectclass=computer);name,cn,distinguishedname;subtree"
Set rs = cmd.Execute
Do Until rs.eof
winmsgbox(rs.fields("name") & vbTab & rs.fields("cn") & vbTab & rs.fields("distinguishedname"))
rs.movenext
Loop
Codigo:
1.
Set objADSystemInfo = CreateObject("ADSystemInfo")
'Utilizador que esta a utilizar
strUserDN = objADSystemInfo.UserName
Set objUser = GetObject("LDAP://" & strUserDN)
For Each strGroup in objUser.Groups
'Listagem dos grupos
winmsgbox(strGroup.Name)
Next
'Listagem do Email
winmsgbox(objUser.mail)
2.
Dim conn, cmd, rs, temp, ldapPath
ldapPath = "caminho"
Set conn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
conn.provider = "adsdsoobject"
conn.open "active directory provider"
cmd.activeconnection = conn
cmd.commandtext = "
Set rs = cmd.Execute
Do Until rs.eof
winmsgbox(rs.fields("name") & vbTab & rs.fields("cn") & vbTab & rs.fields("distinguishedname"))
rs.movenext
Loop
Wednesday, July 19, 2006
Editor de Texto FCKEditor em asp.net
Aqui se tem um editor de texto bastante util, a sua utilização e bastante simples.
1º É necessario fazer download do DLL a adicionar na toolbox do controls.
2. Adicionar na aplicação o package em Site.
Depois de estes dois aplicativos estarem inseridos podemos começar a trabalhar com o control.
Depois de inserir o control na pagina .aspx vamos ao source dele e temos que associar ao package metendo BasePath="../FCKeditor/", podemos tambem defenir skins para ter um aspecto mais office, por defeito ele ja trás 3 modelos, o do office é SkinPath="skins/office2003/", e o varivel para inserir texto não é text mas sim value.
Ok já esta pronto a ser utilizador.
Exemplo final:
FCKeditorV2:FCKeditor ID="FCKeditor1" Value="" SkinPath="skins/office2003/" runat="server" BasePath="../FCKeditor/"
1º É necessario fazer download do DLL a adicionar na toolbox do controls.
2. Adicionar na aplicação o package em Site.
Depois de estes dois aplicativos estarem inseridos podemos começar a trabalhar com o control.
Depois de inserir o control na pagina .aspx vamos ao source dele e temos que associar ao package metendo BasePath="../FCKeditor/", podemos tambem defenir skins para ter um aspecto mais office, por defeito ele ja trás 3 modelos, o do office é SkinPath="skins/office2003/", e o varivel para inserir texto não é text mas sim value.
Ok já esta pronto a ser utilizador.
Exemplo final:
FCKeditorV2:FCKeditor ID="FCKeditor1" Value="" SkinPath="skins/office2003/" runat="server" BasePath="../FCKeditor/"

Monday, July 17, 2006
Limitar internet a utilizadores da Active directory no windows 2003 server
Foi-me pedido para limitar a internet a um conjunto de utilizadores da active directory, entao começei a explorar o "Group policys" do Win2003 e pensei "vou ter que ter um grupo de utilizadores com politicas especiais de acesso a internet", onde defino o que esse conjunto de pessoas poderão aceder.
Entao criei este pequenito manual, rapido rapido para configurar esse grupo.
Configurar internet para alguns utilizadores na active directory no Servidor:
Software 2003 Busniess Server
'Group Policy Management;
- Botao direito na sede e selecionar "Create and link a GPO here..." Criar o nome exemplo "Internet Policy".
- Defenir a quem se destina "user ou groups".
- Botao direito em cima de "Internet Policy" e selecionar "Edit"
- ir a "user configuration-> windows settings->Internet Explorer Maintenance->Proxy Settings" em properties, defenir a proxy a ficar.
'se for utilizadores com acesso a internet mete-se a correcta, senao fica a errada para os que nao irão ter acesso
- aplicar definição.
'Bloquear Connections do internet Explorer
- Group Policy Management
- Botao direito em cima de "Internet Policy" e selecionar "Edit"
- ir a "user configuration-> Administrativa Templates->windows componentes->Internet Explorer->Internet Control Panel-> disable the connection Page"
- Meter Como Enable
O utilizador tem que fazer logoff e voltar a conectar para que as novas configurações fiquem registadas.
Ao abrir o internet explorer vao ao "Tools->Internet Option" e vão reparar que falta o tab das conexoes de rede, tá feito.... espero que tenha sido util.
Entao criei este pequenito manual, rapido rapido para configurar esse grupo.
Configurar internet para alguns utilizadores na active directory no Servidor:
Software 2003 Busniess Server
'Group Policy Management;
- Botao direito na sede e selecionar "Create and link a GPO here..." Criar o nome exemplo "Internet Policy".
- Defenir a quem se destina "user ou groups".
- Botao direito em cima de "Internet Policy" e selecionar "Edit"
- ir a "user configuration-> windows settings->Internet Explorer Maintenance->Proxy Settings" em properties, defenir a proxy a ficar.
'se for utilizadores com acesso a internet mete-se a correcta, senao fica a errada para os que nao irão ter acesso
- aplicar definição.
'Bloquear Connections do internet Explorer
- Group Policy Management
- Botao direito em cima de "Internet Policy" e selecionar "Edit"
- ir a "user configuration-> Administrativa Templates->windows componentes->Internet Explorer->Internet Control Panel-> disable the connection Page"
- Meter Como Enable
O utilizador tem que fazer logoff e voltar a conectar para que as novas configurações fiquem registadas.
Ao abrir o internet explorer vao ao "Tools->Internet Option" e vão reparar que falta o tab das conexoes de rede, tá feito.... espero que tenha sido util.
Função para automatizar valores para control
Em vez de cada vez de ter que inicializar variaveis do tipo inteiro para control, uma pessoa pode criar um simples metodo que ira associar as variaveis inteiro, isto é bom para quem utiliza muitas variaveis de control e quando se pretende mudar paginas...
Protected Enum SearchType As Integer
NotSet = -1
valor = 0
valor1 = 1
End Enum
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(SearchType.NotSet)
End Sub
Protected Enum SearchType As Integer
NotSet = -1
valor = 0
valor1 = 1
End Enum
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(SearchType.NotSet)
End Sub
Tuesday, July 04, 2006
Introdução automatica de Código
Há certas funções que uma pessoa precisa e como há tanta coisa para recordar e temos que pesquisar em projectos anteriores para os encontrar, o vb2005 tem uma função que ajuda nessas pequenas funções chamada "insert snippet".
Essas funçoes sao chamadas quando trabalhamos em code-behind, carrega-se no botao direito do rato e seleciona-se "insert snippet", ai teremos um conjunto de funçoes que nos convem utilizar.
Exemplo:
"insert snippet -> Data Types -> convert a string to a byte array" tendo como resultado:
Dim bytes As Byte() = System.Text.Encoding.Unicode.GetBytes("StringToConvert")
Essas funçoes sao chamadas quando trabalhamos em code-behind, carrega-se no botao direito do rato e seleciona-se "insert snippet", ai teremos um conjunto de funçoes que nos convem utilizar.
Exemplo:
"insert snippet -> Data Types -> convert a string to a byte array" tendo como resultado:
Dim bytes As Byte() = System.Text.Encoding.Unicode.GetBytes("StringToConvert")
Monday, July 03, 2006
Manual de instalação de IPbrick
Estava eu a instalar o Ipbrick num pc qualquer e estava a ver na parte de tras da caixa do CD, olha... algo que pode ajudar... Manual
Criação de Trigger para distinguir fim de semana
A uns tempos atras foi defenido um tempo entre X e Y que inclui o mês inteiro, depois foi pedido para saber quanto dias realmente eram uteis, ou seja a ideia era mesmo pegar no sabado e domingo e esqueçer entao vim com este trigger em SQL server, eheh ajuda sempre....
/*CREATE TRIGGER validadata ON dbo.Agenda
FOR INSERT
AS
/*Na inserção dos dias da operação valida os dias Sabado e domingo nao inserindo*/
declare @DTI as datetime,@DTF as datetime, @codigo as int
select @codigo=AG_COD, @DTI=AG_DI,@DTF=AG_DF from inserted
DECLARE @days int, @dp int , @cnt int,@wkends as int,@tempo as datetime
set @wkends=0
set @cnt=0
set @days=datediff(d,@DTI,@DTF)
set @tempo=@DTI
while @cnt <=@days
begin
set @dp=datepart(dw,dateadd(dw,@cnt,@tempo))
/*1 e 7 é sabado e domingo respectivamente*/
if @dp=2 or @dp=3 or @dp=4 or @dp=5 or @dp=6
begin
set @wkends=@wkends+1
end
set @cnt=@cnt+1
End
/*CREATE TRIGGER validadata ON dbo.Agenda
FOR INSERT
AS
/*Na inserção dos dias da operação valida os dias Sabado e domingo nao inserindo*/
declare @DTI as datetime,@DTF as datetime, @codigo as int
select @codigo=AG_COD, @DTI=AG_DI,@DTF=AG_DF from inserted
DECLARE @days int, @dp int , @cnt int,@wkends as int,@tempo as datetime
set @wkends=0
set @cnt=0
set @days=datediff(d,@DTI,@DTF)
set @tempo=@DTI
while @cnt <=@days
begin
set @dp=datepart(dw,dateadd(dw,@cnt,@tempo))
/*1 e 7 é sabado e domingo respectivamente*/
if @dp=2 or @dp=3 or @dp=4 or @dp=5 or @dp=6
begin
set @wkends=@wkends+1
end
set @cnt=@cnt+1
End
Listagem das Fontes
Quando se formata um texto podemos escolher qual a formatação com que este irá ficar, mas como se chama essa função???? Simples atraves deste exemplo podemos listar todas as fontes que existem no pc.
imports system.drawning
Dim oneFontFamily As FontFamily
For Each oneFontFamily In FontFamily.Families
ListBox1.Items.Add(oneFontFamily.Name)
Next
imports system.drawning
Dim oneFontFamily As FontFamily
For Each oneFontFamily In FontFamily.Families
ListBox1.Items.Add(oneFontFamily.Name)
Next
Tuesday, June 27, 2006
Redimensionar uma imagem
As vezes precisavamos trabalhar com imagens e mudar o seu tamanho, devido ao seu tamanho e esta ser pesada, para isso podemos trabalhar com uma imagem, vou demostrar 2 exemplos.
O primeiro será para guardar fisicamente no servido a segunda será para guardar na Base de Dados
1.
'1.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream
'1.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)
Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false
'1.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)
'1.4 guarda a imagem num espaço fisico, com uma extenção .png
retorna.Save(Request.PhysicalApplicationPath + "pics\minhaimagem" , ImageFormat.Png)
'1.5 liberta a memoria reservada no IIS
retorna.Dispose()
2.
'2.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream
'2.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)
Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false
'2.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)
Dim imageS1 As MemoryStream = New MemoryStream
'2.4 associamos a imagem ao fluxo de memoria
thumbNailImg.Save(imageS1, ImageFormat.Png)
Dim idimagem(imageS1.Length) As Byte
imageS1.Position = 0
'2.5 envia para byte o fluxo de informação
imageS1.Read(idimagem, 0, CInt(ImageStream.Length))
O primeiro será para guardar fisicamente no servido a segunda será para guardar na Base de Dados
1.
'1.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream
'1.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)
Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false
'1.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)
'1.4 guarda a imagem num espaço fisico, com uma extenção .png
retorna.Save(Request.PhysicalApplicationPath + "pics\minhaimagem" , ImageFormat.Png)
'1.5 liberta a memoria reservada no IIS
retorna.Dispose()
2.
'2.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream
'2.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)
Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false
'2.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)
Dim imageS1 As MemoryStream = New MemoryStream
'2.4 associamos a imagem ao fluxo de memoria
thumbNailImg.Save(imageS1, ImageFormat.Png)
Dim idimagem(imageS1.Length) As Byte
imageS1.Position = 0
'2.5 envia para byte o fluxo de informação
imageS1.Read(idimagem, 0, CInt(ImageStream.Length))
Friday, May 26, 2006
Como esconder o nome dos Discos.......
Esta nao sabia, mas agora ja sei.....
1. vai para Start > run > "diskpart".
vai aparecer uma janela com a seguinte descrição.
DISKPART>
2. escreve "list volume"
vai aparece algo do genero:
Volume### Ltr Label Fs Type Size Status Info
-------------- ---- ------ --- ----- ---- ------- -----
Volume 0 F DC-ROM
Volume 1 C NTFS Partition 7000MB Healthy
Volume 2 D soft NTFS Partition 8000MB Healthy
Volume 3 E Porn NTFS Partition 8000MB Healthy
3.Se quiser esconder a drive E entao escreve "select volume 3"
entao vai aparecer na mesma janela { Volume 3 is the selected volume}
4.agora escreve " remove letter E"
agora a mensagem vai aparece{ Diskpart Removed the Drive letter }
as vezes e preciso fazer reboot ao computador.
Diskpart vai remover a letra . Agora o Windows XP nao tem a capacidade de indentificar o disco desconhecido.
Não a necessidade de ter medo, nao havera perda de informação para reparar o nome da drive repete o mesmo processo, mas no passo 4 muda "remove" para "assign"
ou seja escreve " assign letter E"
Ok esta feito, mais um coisa que aprendi.....
1. vai para Start > run > "diskpart".
vai aparecer uma janela com a seguinte descrição.
DISKPART>
2. escreve "list volume"
vai aparece algo do genero:
Volume### Ltr Label Fs Type Size Status Info
-------------- ---- ------ --- ----- ---- ------- -----
Volume 0 F DC-ROM
Volume 1 C NTFS Partition 7000MB Healthy
Volume 2 D soft NTFS Partition 8000MB Healthy
Volume 3 E Porn NTFS Partition 8000MB Healthy
3.Se quiser esconder a drive E entao escreve "select volume 3"
entao vai aparecer na mesma janela { Volume 3 is the selected volume}
4.agora escreve " remove letter E"
agora a mensagem vai aparece{ Diskpart Removed the Drive letter }
as vezes e preciso fazer reboot ao computador.
Diskpart vai remover a letra . Agora o Windows XP nao tem a capacidade de indentificar o disco desconhecido.
Não a necessidade de ter medo, nao havera perda de informação para reparar o nome da drive repete o mesmo processo, mas no passo 4 muda "remove" para "assign"
ou seja escreve " assign letter E"
Ok esta feito, mais um coisa que aprendi.....
Saturday, May 13, 2006
Conexoes a Base de Dados
Estava a ver uma pagina e pensei, é mesmo isto que qualquer um de nos precisa....
Aqui vai o link para realizar conexoes as diversas Base de Dados Conexao Base Dados
Aqui vai o link para realizar conexoes as diversas Base de Dados Conexao Base Dados
Saturday, May 06, 2006
Tratamento e validação de Texto em VB.net
Estava a explorar uns sites e encontrei um site que explica muito bem como se realiza validações, sim aquelas coisas que depois de termos o programa feito temos que fazer :P , em VB.net, aqui fica o site Validacao
Saturday, April 29, 2006
Datagrid dentro Datagrid

Este projecto ainda é do tempo das datagrid e framework 1.0 e tinha como base o desenvolvimento em ASP.NET.
Está situação aconteceu quando estava a chamar documentos relacionados com outros tipo de documentos ....... :P e assim por adiante, utilizei neste exemplo a Base de dados Northwind, ja conhecida por muita gente.
O segredo esta na alteração da nossa datagrid na parte do html.
Criem uma coluna e ponham em ultima posição, depois adicionem uma placeholder tendo visible=false;
Fechem um TR e um TD da datagrid logo a seguir ao placeholder;
criar uma novo TR e TD dentro da TD criar a nova datagrid;
depois de criada e defenida a datagrid fechar o TR e o TD;
fechar o placeholder e pronto esta feito a parte de o html;
CodeBehind:
Tambem é simples porque basta jogar com o placeholder selecionado e activar para true.
Select Case e.CommandName
Case "expand"
Dim Expanded As PlaceHolder = e.Item.FindControl("Expanded")
Dim btnExpand As ImageButton = e.Item.FindControl("imgexpand")
If btnExpand.ImageUrl.Equals("~/image/low.gif") Then
btnExpand.ImageUrl = "~/image/high.gif"
Expanded.Visible = False
Else
btnExpand.ImageUrl = "~/image/low.gif"
Expanded.Visible = True
End If
End Select
e como podem ver.... bastante simple e pratico......
Conexão Excel
A algum tempo atrás precisei de exportar dados de um excel e como o google e nosso amigo, fiz a pesquisa nele, após inumeras horas... exagero 1 ou 2 horitas, encontrei uma conexao que dava perfeitamente para o que pretendia, aqui vai....
Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
& "data source=c:\Email1.xls;" _
& "Extended Properties=Excel 8.0;"
Para realizar uma select realizei:
da = New OleDbDataAdapter("SELECT * FROM [Email$]", conexao_Excel)
' o "Email$" é o sheet da folha, este select obriga a que a pagina de excel esteja previamente preparada para se poder trabalhar correctamente.
Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
& "data source=c:\Email1.xls;" _
& "Extended Properties=Excel 8.0;"
Para realizar uma select realizei:
da = New OleDbDataAdapter("SELECT * FROM [Email$]", conexao_Excel)
' o "Email$" é o sheet da folha, este select obriga a que a pagina de excel esteja previamente preparada para se poder trabalhar correctamente.
Friday, April 28, 2006
Matar Processos
em vez de fazer crt+ALT+DEL vamos complicar um pouco mais, ora toca a matar processos atraves de codigo para isso utilizei as seguintes linha de codigo....
Dim process As Process
process = System.Diagnostics.Process.GetProcessesByName("processo")(0)
process.Kill()
Dim process As Process
process = System.Diagnostics.Process.GetProcessesByName("processo")(0)
process.Kill()
Win32
Aqui esta um pequeno exemplo de como o win32 nos pode ajudar a visualizar conteudo do nosso PC.
Dim ObjQuery As New Management.SelectQuery("Win32_Process")
' O Array abaixo é para definir quais são as propriedades que queremos obter.
' Mas caso queira pode passar no SelectQuery.
Dim Propriedades() As String = New String() {"Name", "Handle", "ProcessID"}
' Instanciando o objeto de procura para a query
Dim searcher As New Management.ManagementObjectSearcher(ObjQuery)
Dim ObjColecao As Management.ManagementBaseObject
ListBox2.Items.Add("Informações sobre o Processos")
ListBox2.Items.Add("**********************************")
For Each ObjColecao In searcher.Get()
For x As Integer = 0 To Propriedades.Length - 1
ListBox2.Items.Add("- " & Propriedades(x) & " - " & ObjColecao(Propriedades(x)))
Next
ListBox2.Items.Add("**********************************")
Next
Dim ObjQuery As New Management.SelectQuery("Win32_Process")
' O Array abaixo é para definir quais são as propriedades que queremos obter.
' Mas caso queira pode passar no SelectQuery.
Dim Propriedades() As String = New String() {"Name", "Handle", "ProcessID"}
' Instanciando o objeto de procura para a query
Dim searcher As New Management.ManagementObjectSearcher(ObjQuery)
Dim ObjColecao As Management.ManagementBaseObject
ListBox2.Items.Add("Informações sobre o Processos")
ListBox2.Items.Add("**********************************")
For Each ObjColecao In searcher.Get()
For x As Integer = 0 To Propriedades.Length - 1
ListBox2.Items.Add("- " & Propriedades(x) & " - " & ObjColecao(Propriedades(x)))
Next
ListBox2.Items.Add("**********************************")
Next
Grupos e Utilizadores associados a um ficheiro ou Pasta
Existe maneiras para visualizar os grupos e utilizadores associados a uma pasta ou ficheiro, para isso este codigo ajuda na sua visualização.
Imports System.Management
Imports System.Security.AccessControl
Imports System.Security.Principal
Dim path As String = "caminho da pasta ou ficheiro"
Dim sd As FileSecurity = File.GetAccessControl(path)
For Each ace As FileSystemAccessRule In sd.GetAccessRules(True, True, GetType(NTAccount))
Dim name As NTAccount = CType(ace.IdentityReference, NTAccount)
' onde ira guardar os nomes
ListBox2.Items.Add(name)
Next
Imports System.Management
Imports System.Security.AccessControl
Imports System.Security.Principal
Dim path As String = "caminho da pasta ou ficheiro"
Dim sd As FileSecurity = File.GetAccessControl(path)
For Each ace As FileSystemAccessRule In sd.GetAccessRules(True, True, GetType(NTAccount))
Dim name As NTAccount = CType(ace.IdentityReference, NTAccount)
' onde ira guardar os nomes
ListBox2.Items.Add(name)
Next
Criar shortcuts em .net
Num pensei que uma coisa tão simples que se faz quase todos os dias fosse tão dificil de fazer a nivel de programação, para criar um simples shortcut tive que chamar o control IWshRuntimeLibrary.
O codigo a seguir ira demostrar como se realiza um shortcut
Imports IWshRuntimeLibrary
Dim teste As WshShell = New WshShell
'caminho do desktop
Dim DesktopDir As String = _
CType(teste.SpecialFolders.Item("Desktop"), String)
Dim shortCut As IWshRuntimeLibrary.IWshShortcut
'nome do shortcut
shortCut = CType(teste.CreateShortcut(DesktopDir & _
"\novo.lnk"), _
IWshRuntimeLibrary.IWshShortcut)
With shortCut
.TargetPath = "caminho do shortcut vai ter"
.WindowStyle = 1
.Description = "descrição"
.WorkingDirectory = DesktopDir
.IconLocation = "caminho do ico"
.Save()
End With
O codigo a seguir ira demostrar como se realiza um shortcut
Imports IWshRuntimeLibrary
Dim teste As WshShell = New WshShell
'caminho do desktop
Dim DesktopDir As String = _
CType(teste.SpecialFolders.Item("Desktop"), String)
Dim shortCut As IWshRuntimeLibrary.IWshShortcut
'nome do shortcut
shortCut = CType(teste.CreateShortcut(DesktopDir & _
"\novo.lnk"), _
IWshRuntimeLibrary.IWshShortcut)
With shortCut
.TargetPath = "caminho do shortcut vai ter"
.WindowStyle = 1
.Description = "descrição"
.WorkingDirectory = DesktopDir
.IconLocation = "caminho do ico"
.Save()
End With
Adicionar controls, DLL, OCX etc....
ja tive perguntas que podem parecer idiotas para quem trabalha a algum tempo com .net, uma delas é, "como se adiciona um DLL", bom para responder a essa questão é bastante simples, para isso diriga-se ao quadro da direita do seu visual studio e na opção "solution Explorer" irá ter a opção "References" com o botão direito do rato selecione "add reference" e adicione o .dll pretendido, para adicionar um control no quadro da esquerda "toolbox" e com o botao direito selecione a opção "Choose Items..." adicionando o control que pretende, podera ser em .dll, .ocx etc.....
Autenticação Active directory LDAP
Boas este vai ser o meu primeiro artigo, bom nao sera mesmo artigo é apenas um link mas que irá ajudar muita gente que está a começar a trabalhar com Active directory e LDAP.
Existe um metodo simples facultado pelo msdn2 para validar o utilizador de um servidor através do LDAP, Autenticação pela Active Directory, para isso temos a ajuda né ;).
Nos proximos artigos irei expor outras campos que podem ser visualizados e pelo active directory, fiquem bem.....
Existe um metodo simples facultado pelo msdn2 para validar o utilizador de um servidor através do LDAP, Autenticação pela Active Directory, para isso temos a ajuda né ;).
Nos proximos artigos irei expor outras campos que podem ser visualizados e pelo active directory, fiquem bem.....
Subscribe to:
Posts (Atom)