|
Hi Friends I have tried many times to convert this code into Vb.net but every time I got some exceptions ans errors and finally I am unable to Write this code into Vb.net please can some one please help me...
actually this is a Steganography project...
where two textboxes are used named txtmessage for the message to be hidden into image and txtpassword that acts as a key and a picture box named Picimage and two buttons named cmdEncode to Encode and cmddecode to Decode...
Option Explicit
Private Sub ArrangeControls()
Dim wid As Single
Width = picImage.Left + picImage.Width + Width - ScaleWidth + 120
Height = picImage.Top + picImage.Height + Height - ScaleHeight + 120
wid = ScaleWidth - txtMessage.Left - 120
If wid < 120 Then wid = 120
txtMessage.Width = wid
txtPassword.Width = wid
End Sub
' Encode this byte's data.
Private Sub EncodeByte(ByVal Value As Byte, ByVal used_positions As Collection, ByVal wid As Integer, ByVal hgt As Integer, ByVal show_pixels As Boolean)
Dim i As Integer
Dim byte_mask As Integer
Dim r As Integer
Dim c As Integer
Dim pixel As Integer
Dim clrr As Byte
Dim clrg As Byte
Dim clrb As Byte
Dim color_mask As Integer
byte_mask = 1
For i = 1 To 8
' Pick a random pixel and RGB component.
PickPosition used_positions, wid, hgt, r, c, pixel
' Get the pixel's color components.
UnRGB picImage.Point(r, c), clrr, clrg, clrb
If show_pixels Then
clrr = 255
clrg = clrg And &H1
clrb = clrb And &H1
End If
' Get the value we must store.
If Value And byte_mask Then
color_mask = 1
Else
color_mask = 0
End If
' Update the color.
Select Case pixel
Case 0
clrr = (clrr And &HFE) Or color_mask
Case 1
clrg = (clrg And &HFE) Or color_mask
Case 2
clrb = (clrb And &HFE) Or color_mask
End Select
' Set the pixel's color.
picImage.PSet (r, c), RGB(clrr, clrg, clrb)
byte_mask = byte_mask * 2
Next i
End Sub
' Decode this byte's data.
Private Function DecodeByte(ByVal used_positions As Collection, ByVal wid As Integer, ByVal hgt As Integer, ByVal show_pixels As Boolean) As Byte
Dim Value As Integer
Dim i As Integer
Dim byte_mask As Integer
Dim r As Integer
Dim c As Integer
Dim pixel As Integer
Dim clrr As Byte
Dim clrg As Byte
Dim clrb As Byte
Dim color_mask As Integer
byte_mask = 1
For i = 1 To 8
' Pick a random pixel and RGB component.
PickPosition used_positions, wid, hgt, r, c, pixel
' Get the pixel's color components.
UnRGB picImage.Point(r, c), clrr, clrg, clrb
' Get the stored value.
Select Case pixel
Case 0
color_mask = (clrr And &H1)
Case 1
color_mask = (clrg And &H1)
Case 2
color_mask = (clrb And &H1)
End Select
If color_mask Then
Value = Value Or byte_mask
End If
If show_pixels Then
picImage.PSet (r, c), RGB( _
clrr And &H1, _
clrg And &H1, _
clrb And &H1)
End If
byte_mask = byte_mask * 2
Next i
DecodeByte = CByte(Value)
End Function
' Translate a password into an offset value.
Private Function NumericPassword(ByVal password As String) As Long
Dim Value As Long
Dim ch As Long
Dim shift1 As Long
Dim shift2 As Long
Dim i As Integer
Dim str_len As Integer
' Initialize the shift values to different
' non-zero values.
shift1 = 3
shift2 = 17
' Process the message.
str_len = Len(password)
For i = 1 To str_len
' Add the next letter.
ch = Asc(Mid$(password, i, 1))
Value = Value Xor (ch * 2 ^ shift1)
Value = Value Xor (ch * 2 ^ shift2)
' Change the shift offsets.
shift1 = (shift1 + 7) Mod 19
shift2 = (shift2 + 13) Mod 23
Next i
NumericPassword = Value
End Function
' Pick an unused (r, c, pixel) combination.
Private Sub PickPosition(ByVal used_positions As Collection, ByVal wid As Integer, ByVal hgt As Integer, ByRef r As Integer, ByRef c As Integer, ByRef pixel As Integer)
Dim position_code As String
On Error Resume Next
Do
' Pick a position.
r = Int(Rnd * wid)
c = Int(Rnd * hgt)
pixel = Int(Rnd * 3)
' See if the position is unused.
position_code = "(" & r & "," & c & "," & pixel & ")"
used_positions.Add position_code, position_code
If Err.Number = 0 Then Exit Do
Err.Clear
Loop
End Sub
' Return the color's components.
Private Sub UnRGB(ByVal color As OLE_COLOR, ByRef r As Byte, ByRef g As Byte, ByRef b As Byte)
r = color And &HFF&
g = (color And &HFF00&) \ &H100&
b = (color And &HFF0000) \ &H10000
End Sub
Private Sub cmdDecode_Click()
Dim msg_length As Byte
Dim msg As String
Dim ch As Byte
Dim i As Integer
Dim used_positions As Collection
Dim wid As Integer
Dim hgt As Integer
Dim show_pixels As Boolean
If txtPassword.Text = "" Then
MsgBox ("Please Enter The Password to Continue...")
Exit Sub
End If
Screen.MousePointer = vbHourglass
DoEvents
' Initialize the random number generator.
Rnd -1
Randomize NumericPassword(txtPassword.Text)
wid = picImage.ScaleWidth
hgt = picImage.ScaleHeight
show_pixels = chkShowPixels.Value
Set used_positions = New Collection
' Decode the message length.
msg_length = DecodeByte(used_positions, wid, hgt, show_pixels)
' Decode the message.
For i = 1 To msg_length
ch = DecodeByte(used_positions, wid, hgt, show_pixels)
msg = msg & Chr$(ch)
Next i
picImage.Picture = picImage.Image
txtMessage.Text = msg
Screen.MousePointer = vbDefault
MsgBox ("Decryption Completed....")
End Sub
Private Sub cmdEncode_Click()
Dim msg As String
Dim i As Integer
Dim used_positions As Collection
Dim wid As Integer
Dim hgt As Integer
Dim show_pixels As Boolean
If txtMessage.Text = "" Then
MsgBox ("Please Enter Text to Encrypt...")
Exit Sub
ElseIf txtPassword.Text = "" Then
MsgBox ("Please Enter Password To Protect Data...")
Exit Sub
End If
Screen.MousePointer = vbHourglass
DoEvents
' Initialize the random number generator.
Rnd -1
Randomize NumericPassword(txtPassword.Text)
wid = picImage.ScaleWidth
hgt = picImage.ScaleHeight
msg = Left$(txtMessage.Text, 255)
show_pixels = chkShowPixels.Value
Set used_positions = New Collection
' Encode the message length.
EncodeByte CByte(Len(msg)), _
used_positions, wid, hgt, show_pixels
' Encode the message.
For i = 1 To Len(msg)
EncodeByte Asc(Mid$(msg, i, 1)), _
used_positions, wid, hgt, show_pixels
Next i
picImage.Picture = picImage.Image
Screen.MousePointer = vbDefault
MsgBox ("Encryption Complete..." & vbNewLine & vbNewLine & "You Can Save Picture Using Menu...")
End Sub
Private Sub Form_Load()
picImage.ScaleMode = vbPixels
picImage.AutoRedraw = True
dlgImage.InitDir = App.Path
ArrangeControls
End Sub
|
|
|
|
|
The auto convert doesn't really work, the languages are too different. I'd say you need to just rewrite it.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
This link could help you: http://msdn.microsoft.com/en-us/vbrun/ms788233.aspx[^]
Based on a quick look I think you should rewrite the code. When done properly in .Net the result would be quite different (and smaller) since you have lots of help in the framework to use.
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
|
Hi all...
I am creating a program using VS2005 in which i added some windows features like-logoff,shutdown and restart.
I wrote logoff code as below :
Call Shell("shutdown -l", AppWinStyle.Hide)
I wrote shutdown code as below :
Call Shell("shutdown -s", AppWinStyle.Hide)
I wrote restart code as below :
Call Shell("shutdown -r", AppWinStyle.Hide)
The problem is that,logoff code is running correctly bt when I use shutdown or restart function, my system goes logoff.
I want to know that how to shutdown and restart system in vb.net
Thanks.
Gagan
|
|
|
|
|
|
Thanks Tom for your help.
|
|
|
|
|
|
Lets take an example. we have a DataGridView with 2 columns, both columns are combobox columns and are databound. First column contains Company and second column Products. At run time in first column when i select company second column must filled with its products, focus should ramain at first column until i press enter. Moreover when ever second column is refereshed its first value should be selected by default or how can i set it combobox2.SelectedIndex = 0 property at run time while having focus in first column.
It should work like this, when i select in first column Company Nestle 2nd column should fill automatically with Nestle's products. like Milk, Kit Kat, Nesveta and so on, and first product Milk should be selected by default, please note that it is required while first Column Company is being edited.
|
|
|
|
|
Dear Friends
I am creating a geographical map program in VB.net. I am using a downloaded map. This map has no link with any other map websits like google. My project manager wants to show the latitude and longitude at the bottom of the map. i.e. when the mouse moves this two label shows the latitude and longitude of each points. How can we implement it. Please give me a solid explaination with code. I am struggling for this for the last 1 month. I dont know how to convert the x,y coordinates to latitude and longitude
|
|
|
|
|
It's simple math, but you have to know some basic information about the map. Assuming it's in a straight up is North orientation, you have to know the Lat and Long of each corner of the map. This gives also gives you the scale of the map. Once you have that, it's simple math (Scaled X = Original X * ScaleFactor).
|
|
|
|
|
But the latitude and longitude are not a stright line in my map it is circular. so if i use this formulae i am not getting the correct latitude and longitude
|
|
|
|
|
Thank you very much for your reply. On my map the latitude and logitude lines are not straight. For example the top most x coordinates are not the same and extreme left y cordinates are not the same
|
|
|
|
|
Then you've got two choices. Either get a version of the map that is projected with straight lines, or change the math to map the mouse coordinates to a curved map. Straight or curved, it still comes down to math.
|
|
|
|
|
Could you please give me the formula for finding the latitude and longitude of a stright line map and curved map. I am not familier with math function.
Could you please explain how can we find the latitude and longitude from x,y coordinates
When I move the mouse it might populate the latitude and longitude of the mouse point in a label.
|
|
|
|
|
Could you please give me the formula for finding latitude and longitude from x,y cordinates
|
|
|
|
|
Hello All,
I am trying to write a screen saver program that shuts off and display what ever the security camera sees as soon as someone or something gets close to the camera. Normally a screen saver program is temporarily deactivated when a mouse is clicked. I am wondering if I could use the camera to sense how close something is from it, then based on that info the screen saver program can decide what to do next. Is something like that possible? Thank you in advance for your response.
|
|
|
|
|
With a single camera, you can only determine range to a target if you know the dimensions of the target. Either that, or you'll need some kind of sensor, perhaps laser or ultrasonic, to determine the range. Another option is to use the same mechanism you use to determine range - stereo vision. You have to compare the differences between two images, just like your own eyes, to calcuate the range. This is, by far, the hardest method to use.
modified on Thursday, November 20, 2008 9:18 AM
|
|
|
|
|
LOL. You are truly a sick, sick, sick person Dave.
Any suggestions, ideas, or 'constructive criticism' are always welcome.
"There's no such thing as a stupid question, only stupid people." - Mr. Garrison
|
|
|
|
|
Why? He pretty much laid it out to the OP.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Dave's knowledge is pretty impressive..........def not questioning it.
Any suggestions, ideas, or 'constructive criticism' are always welcome.
"There's no such thing as a stupid question, only stupid people." - Mr. Garrison
|
|
|
|
|
Perhaps another approach could be that if the camera isn't moving, you can say if the picture is static (of course this depends on the quality of the camera feed). Then, if the picture changes, you could calculate the dimensions for the region that's changed. If the dimensions are above some threshold (5% or whatever is applicable), then leave the screen saver.
The calculation itself could be done by splitting the picture into smaller portions (like a matrix above the picture).
The need to optimize rises from a bad design.
My articles[ ^]
|
|
|
|
|
I am writing a program in .Net where the code gets a XML document from a URL( like the code below)and reads the XML document.But I dont know how to make the program keep on polling so that I can get the XML document continuosly or at some intervals . Any links or suggestions?
Code:-
Dim reader As XmlTextReader = New XmlTextReader("http://192.168.10.12/cgi-bin/dataProxy?oper=queryTags&map=1")
While reader.Read()
{
....
}
|
|
|
|
|
You'll have to use a Timer control to poll for the data. You'll find one in the ToolBox. You can Google for "System.Windows.Forms.Timer" for more information.
|
|
|
|
|
Like Dave said you can use a timer that fires repeatedly at the interval you specify. Another option would be to create a file watcher service (go a google search on it). Lots of examples of how to implement one.
Any suggestions, ideas, or 'constructive criticism' are always welcome.
"There's no such thing as a stupid question, only stupid people." - Mr. Garrison
|
|
|
|
|