Hey. I need to fill textbox, which is protected or something..
Textbox's code is like this:
HTML Code:
<INPUT TYPE=hidden NAME=a0f2a0707462ad79826e98a1ce5721ad2 VALUE=951b01a2af33d0779983>
Can i fill text boxes in some kind of other way?
Because using
VB Code:
Wb.Document.All("a0f2a0707462ad79826e98a1ce5721ad2").Value = "lol"
Is not useful, because the textboxes name is different every time..
More of this code:
HTML Code:
<FORM ACTION=http://www.rate.ee/userinfo.php METHOD=post onSubmit="post.disabled=true;">
pealkiri: <INPUT CLASS=in1 TYPE=text NAME=subject SIZE=30 MAXLENGTH=60><BR><BR>
<TEXTAREA CLASS=in1 ROWS=10 COLS=60 NAME=text></TEXTAREA><BR><BR>
<INPUT TYPE=hidden NAME=act VALUE=contact>
<INPUT TYPE=hidden NAME=id VALUE=202005>
<INPUT TYPE=hidden NAME=a0f2a0707462ad79826e98a1ce5721ad2 VALUE=951b01a2af33d0779983>
<INPUT CLASS=in1 onMouseOver="this.classNAME='in2';" onMouseOut="this.classNAME='in1'" TYPE=submit NAME=post VALUE="Saadan!">
</FORM>
<BR></td>
<TD WIDTH=4 CLASS=moduleContentText><IMG SRC=http://pics.rate.ee/pics/empty.gif WIDTH=1 HEIGHT=1></TD>
<td width=1 valign=top class=backFrame><img src=http://pics.rate.ee/pics/empty.gif width=1 height=1></td>
</tr>
</table>
/hr>
**<form name="accept" method="GET" action="">
**<input type="hidden" name="us">
**<input type="hidden" name="_lang">
**<input type="hidden" name="beta">
**<input type="hidden" name="SID" value="1013818981">
**<input type="hidden" name="ac" value="">
**<input type="hidden" name="rus" value="lw9fd.law9.hotmail.msn.com">
**<input type="hidden" name="curmbox" value="F000000001">
**<input type="hidden" name="tos" value=1>
**<font class="f" size="4">
**<input type="submit" class="Bsbttn" value=" I Accept ">
'this is what the source looks like and thers an except and decline buttons on it... how would i submit the accept buton?
using ( .forms(0).elements("").value = "")
WebBrowser1.Document.Forms(0).elements("FieldName").Value = Text1.Text
WebBrowser1.Document.Forms(0).elements("ButtonName").Click
من یک حلقه دارم که اعداد رو توی تکست باکس میریزه حالا من می خوام بعد از وارد کردن هر عدد بره خط بعد برای رفتن به خط بعد از چی استفاده کنم؟ با تشکر کد: for i=1 to 20 text1=text1 & i & "بره خط بعد" next i | |
خاصیت MultiLine تکست رو True کن و کت رو به صورت زیر تعغیر بده .
For i = 1 To 20 Text1 = Text1 & i & vbCrLf Next i
Dim skrsoft As New class
txtid.Text = skrsoft.GenerateID
برنامه Internet Explorer یا iexplore.exe در واقع برنامه کوچکی است که وظیفه اصلی آن ایجاد چارچوبی برای بهم پیوستن عناصر مختلف است و این عناصر هستند که وظایف اصلی مثل load کردن صفحات وب ، اجرای کدهای Html و غیره را انجام می دهند . اصلی ترین عنصری که مستقیماً توسط iexplore.exe استفاده می شود کنترل Webbrowser ( موجود در فایل shdocrw.dll ) می باشد . وظیفه این فایل dll ، عبارت است از حرکت بین صفحات وب ، مدیریت تاریخچه صفحات دیده شده و غیره . این فایل خود از فایل دیگری بنام Mshtml.dll استفاده می کند که وظیفه آن بررسی و اجرای فایلهای html است . مایکروسافت به برنامه نویسان این امکان را داده که بتوانند در برنامه هایشان از کنترل webbrowser استفاده کنند . با استفاده از این کنترل می توان به سادگی یک مرورگر وب تقریباً کامل ساخت .
خصوصیات کنترل Webbrowser :
Webbrowser علاوه بر خواص استانداردی مثل width ، height و … خواص زیر را دارد :
۱ – Busy : اگر در حال load کردن یک صفحه یا در حال جستجو در وب باشد این خاصیت True است . توسط متد Stop می توان عملیات جاری را متوقف کرد .
۲ – Container : ارجاع به شی نگهدارنده کنترل webbrowser
3 – Document : ارجاع به صفحه html فعلی . برای کار با این صفحه html می توان از خواص و متدهابی شی Document استفاده کرد .
۴ – LocationName : حاوی آدرس محلی است که اکنون در کنترل webbrowser ، load شده است . اگر این محل یک صفحه html باشد عنوان آن صفحه خواهد بود و اگر این محل یک فایل در شبکه باشد مسیر کامل آن فایل خواهد بود .
۵ – LocationURL : حاوی url محلی است که فعلاً در کنترل webbrowser ، load شده است .
۶ – Offline : اگر کنترل webbrowser در حالت عدم اتصال باشد مقدار آن True و در غیراینصورت False است .
۷ – Parent : فرمی را نشان می دهد که کنترل webbrowser در آن قرار دارد .
۸ – ReadyState : وضعیت کنترل webbrowser را برمی گرداند .
متدهای کنترل webbrowser : این متدها مربوط به مرور در صفحات وب هستند :
۱- GoBack : در لیست تاریخچه url ها ، یکی به عقب برمی گردد .
۲ – GoForward : در لیست تاریخچه url ها ، یکی به جلو می رود .
۳ – GoHome : به homepage مرورگر می رود .
۴ – Navigate : به یک url یا فایل می رود . ساختار این متد بصورت زیر است :
URL آدرس مقصد می باشد . Flags نحوه باز شدن آدرس مقصد را تعیین می کند . اگر این پارامتر ذکر نشود آدرس جدید در پنجره فعلی باز خواهد شد و به لیست تاریخچه اضافه شده و اگر کپی آن در temperory cache موجود باشد از آنجا خوانده می شود . مقادیر پارامتر Flags عبارتند از :
- NavOpenInNewWindow : آدرس جدید را در پنجره جدیدی باز می کند .
- NavNoHistory : به لیست تاریخچه اضافه نمی شود بلکه جایگزین صفحه فعلی می شود .
- NavNoReadFromCache : صفحه جدید از cache خوانده نمی شود .
- NavNoWriteToCache : صفحه جدید روی cache نوشته نمی شود
Event های کنترل webbrowser : این event ها مربوط به مرور در وب و تغییر حالت آن هستند :
۱ – CommandStateChange : برای فعال یا غیرفعال کردن دکمه های Forward و Back در مرورگر استفاده می شود . شکل کلی فراخوانی این event بصورت زیر است :
که command فرمانی است که حالت فعال آن تغییر کرده است و دو مقدار می گیرد : ۱ و ۳ که بترتیب معادل فرمانهای GoForward و GoBack هستند .
Enable فعال یا غیرفعال بودن فرمان را تعیین می کند .
۲ – DocumentComplete : این event زمانی فعال می شود که صفحه در حال load شدن به حالت ReadyState_Complete برود . شکل کلی فراخوانی این event بصورت زیر است :
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
که pDisp ارجاعی به کنترل webbrowser است که event در آن رخ داده است و URL آدرس صفحه در حال load شدن است .
۳ – DownloadBegin : این event در آغاز حرکت به صفحه جدید روی می دهد و هیچ پارامتری نمی گیرد . مرورگر می تواند در این event پیغامی برای شروع عملیات جدید نشان می دهد .
۴ – DownloadComplete : این event در پایان عملیات یا در صورت انصراف کاربر یا بروز خطا روی می دهد .
۵ – ProgressChange : با بروز هر تغییری در وضعیت load ، این event روی می دهد . شکل کلی فراخوانی آن بصورت زیر است :
که Progress نشان دهنده پیشرفت عملیات ( بایتهای load شده ) است . پارامتر ProgressMax تعداد کل بایتهایی که باید load شوند را نشان می دهد بنابر این :
یک مثال ساده :
از منوی project مورد components را انتخاب کنید و از لیست کنترلها ، Microsoft Internet Controls را به toolbar خود اضافه کنید . یک کنترل WebBrowser روی فرم قرار دهید و سایز آنرا به اندازه ابعاد فرم خود قرار دهید . یک textbox و یک دکمه روی فرم قرار دهید . کد زیر را برای event مربوط به کلیک دکمه بنویسید :
Private Sub Command1_Click() Dim i As Integer Dim str As String List1.Clear For i = 0 To WebBrowser1.Document.links.length - 1 str = WebBrowser1.Document.links.Item(i) If Left$(LCase(str), 4) = "http" And InStr(1, LCase(str), ".persianblog.ir") > 0 Then List1.AddItem (WebBrowser1.Document.links.Item(i)) End If Next i MsgBox "Process Completed" End Sub
آدرس لیست وبلاگ های سایت پرشین بلاگ:
http://persianblog.ir/weblogs.aspx
در صورتی که صفحه موردنظر از تکنولوژی پویا استفاده کنه روش بالا جواب نمیده
<!--StartFragment-->//**************************************
// Name: Read Barcode from Image
// Description:Read two width barcodes like 2 of 5 or Code 39 from an image.
How to use it:
Dim bmp As Bitmap
Dim scanner As New gmseNWScanner(New gmseBarcodeDef2of5interleaved)
Dim result As gmseNWResult
bmp = New Bitmap("d:\sample2of5.bmp")
scanner.Scan(bmp)
For Each result In scanner.Result
Debug.writeline(result.Text)
Next
// By: mackenb
//
//
// Inputs:.NET Bitmap class
//
// Returns:2 of 5 interleaved barcodes in image.
//
//Assumes:The algorithm is designed to be extended to read all two width symbologies.
//
//Side Effects:None
//This code is copyrighted and has limited warranties.
//**************************************
// ' Barcode Reader for INTERLEAVED 2 OF 5
Imports System.Text
Imports System.Drawing
Imports System.Drawing.Imaging
Public Class gmseNWResult
Public Text As String
Public Count As Integer
End Class
Public Class gmseNWResultCollection
Implements IEnumerable
Dim hash As New Hashtable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default)
ReadOnly Property Count() As Integer
Get
Return hash.Count
End Get
End Property
ReadOnly Property Item(ByVal Index As Integer) As gmseNWResult
Get
Return hash(Index)
End Get
End Property
Public Sub Add(ByVal Text As String)
Dim r As gmseNWResult
r = hash(Text)
If r Is Nothing Then
r = New gmseNWResult
r.Text = Text
hash.Add(r.Text, r)
End If
r.Count += 1
End Sub
Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
Return hash.Values.GetEnumerator
End Function
End Class
// ' Definition of one Symbol
Public Class gmseNWBarcodeSymbol
Public Value As Integer
Public Text As String
// ' Encoding of Symbol in NW notation
Public Encoding As String
Public Sub New(ByVal Value As Integer, ByVal Text As String, ByVal Encoding As String)
Me.Value = Value
Me.Text = Text
Me.Encoding = Encoding
End Sub
End Class
' Abstract parameters für barcode decodi
// ng for further extensions (2 of 5 standa
// rd,...)
Public MustInherit Class gmseNWBarcodeDef
' Anzahl Bars, die ein Barcode mindesten
// s haben muک.
MustOverride ReadOnly Property MinBarCount() As Integer
' Decodieren des Barcodes aus NW nach Te
// xt.
Public MustOverride Function Decode(ByVal symbol As String) As String
' NWidth * Fkt <WWidth sein, sonst kein
// gültiger BC
Overridable ReadOnly Property MaxFktNW() As Integer
Get
Return 10
End Get
End Property
' 30% Tolerance to classify N and W barc
// odes.
Overridable ReadOnly Property PctNWTolerance() As Double
Get
Return 0.47
End Get
End Property
' Min length of white space before first
// bar and after last bar in percent of wid
// e bar.
Overridable ReadOnly Property PctMinWhiteSpace() As Double
Get
Return 2
End Get
End Property
End Class
// ' Definition 2 of 5 interleaved
Public Class gmseBarcodeDef2of5interleaved
Inherits gmseNWBarcodeDef
Dim StartSymbol As gmseNWBarcodeSymbol
Dim StopSymbol As gmseNWBarcodeSymbol
Dim hash As New Hashtable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default)
' We only accept barcodes with at least
// 23 bars.
Public Overrides ReadOnly Property MinBarCount() As Integer
Get
Return 23
End Get
End Property
Private Sub CreateSymbolTable()
Dim BaseSymbol(9) As gmseNWBarcodeSymbol
Dim sym As gmseNWBarcodeSymbol
Dim x As Integer
Dim y As Integer
Dim Text As String
Dim i As Integer
// ' Basic symbols
BaseSymbol(0) = New gmseNWBarcodeSymbol(0, "0", "NNWWN")
BaseSymbol(1) = New gmseNWBarcodeSymbol(1, "1", "WNNNW")
BaseSymbol(2) = New gmseNWBarcodeSymbol(2, "2", "NWNNW")
BaseSymbol(3) = New gmseNWBarcodeSymbol(3, "3", "WWNNN")
BaseSymbol(4) = New gmseNWBarcodeSymbol(4, "4", "NNWNW")
BaseSymbol(5) = New gmseNWBarcodeSymbol(5, "5", "WNWNN")
BaseSymbol(6) = New gmseNWBarcodeSymbol(6, "6", "NWWNN")
BaseSymbol(7) = New gmseNWBarcodeSymbol(7, "7", "NNNWW")
BaseSymbol(8) = New gmseNWBarcodeSymbol(8, "8", "WNNWN")
BaseSymbol(9) = New gmseNWBarcodeSymbol(9, "9", "NWNWN")
// ' Buildung the hash for decoding:
' 2 of 5 is an double density barcode. 2
// digits are codes together.
' The first with the black bars, the sec
// ond with white bars.
For x = 0 To 9
For y = 0 To 9
Text = ""
For i = 0 To 4
Text &= BaseSymbol(x).Encoding.Chars(i)
Text &= BaseSymbol(y).Encoding.Chars(i)
Next
sym = New gmseNWBarcodeSymbol(x * 10 + y, Format(x * 10 + y, "00"), Text)
hash.Add(sym.Encoding, sym)
Next
Next
StartSymbol = New gmseNWBarcodeSymbol(-1, "Start", "NNNN")
StopSymbol = New gmseNWBarcodeSymbol(-1, "Start", "WNN")
hash(StopSymbol.Encoding) = StopSymbol
End Sub
Public Sub New()
CreateSymbolTable()
End Sub
Public Overrides Function Decode(ByVal symbol As String) As String
Return Decode1(symbol, 0)
End Function
' Get human readable text from symvol co
// de.
Public Function Decode1(ByVal symbol As String, ByVal offset As Integer) As String
Dim sym As String
Dim sb As New StringBuilder
Dim Pos As Integer = offset
Dim bi As gmseNWBarcodeSymbol
// ' The number of bars must be x*10+3+4
If (symbol.Length - 7) Mod 10 <> 0 Then
Return ""
End If
' The first symbol shoul be the start sy
// mbol.
sym = symbol.Substring(Pos, StartSymbol.Encoding.Length)
If String.Compare(sym, StartSymbol.Encoding, True) <> 0 Then
Return ""
End If
Pos += StartSymbol.Encoding.Length
// ' Data
While Pos < symbol.Length
// ' Symbols with data have 10 bars:
If symbol.Length - Pos > 10 Then
sym = symbol.Substring(Pos, 10)
bi = hash(sym)
If bi Is Nothing Then
Return ""
End If
sb.Append(bi.Text)
Pos += 10
ElseIf symbol.Length - Pos >= 3 Then ' Stop has 3 bars:
sym = symbol.Substring(Pos, 3)
bi = hash(sym)
If bi Is Nothing Then
Return ""
Else
Return sb.ToString
End If
Else
Return ""
End If
End While
Return ""
End Function
End Class
// ' Scanning algorithm:
Public Class gmseNWScanner
Dim cBitMask(7) As Byte
Dim cScanRow() As Byte
Dim nBar As Integer
Dim cBarWidth() As Integer
Dim cBarBlack() As Boolean
Dim cOffset As Integer
Dim cLength As Integer
Dim cNWidth As Integer
Dim cWWidth As Integer
Dim cBCDef As gmseNWBarcodeDef
Dim cResult As gmseNWResultCollection
ReadOnly Property Result() As gmseNWResultCollection
Get
Return cResult
End Get
End Property
' Find all 2 of 5 interleaved barcodes i
// n Bitmap
Public Sub Scan(ByVal bmp As Bitmap)
Dim data As BitmapData
Dim ScanRow() As Byte
Dim y As Integer
Dim x As Integer
data = bmp.LockBits(New Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format1bppIndexed)
Try
cResult = New gmseNWResultCollection
ReDim ScanRow(data.Stride - 1)
// ' Scan all rows of bitmap.
For y = 0 To bmp.Height - 1
For x = 0 To data.Stride - 1
ScanRow(x) = System.Runtime.InteropServices.Marshal.ReadByte(data.Scan0, data.Stride * y + x)
Next
Scan(ScanRow, 0, bmp.Width)
Next
Finally
bmp.UnlockBits(data)
End Try
End Sub
// ' ScanRow must be 1bppp format.
Private Sub Scan(ByVal ScanRow() As Byte, ByVal offset As Integer, ByVal Length As Integer)
cScanRow = ScanRow
cLength = Length
cOffset = offset
CalcBars()
Scan()
End Sub
// ' Calculate bars
Private Sub CalcBars()
Dim x As Integer
Dim bl As Boolean
nBar = 0
ReDim cBarWidth(10)
ReDim cBarBlack(10)
cBarBlack(0) = IsBlack(cOffset)
For x = 0 To cLength - 1
If nBar >= cBarWidth.Length - 1 Then
ReDim Preserve cBarWidth(nBar * 2)
ReDim Preserve cBarBlack(nBar * 2)
End If
bl = IsBlack(cOffset + x)
If cBarBlack(nBar) = bl Then
cBarWidth(nBar) += 1
Else
nBar += 1
cBarBlack(nBar) = bl
cBarWidth(nBar) = 1
End If
Next
nBar += 1
End Sub
// ' The scan
Private Sub Scan()
Dim Pos As Integer
Dim ValidNW As Boolean
Dim BCStart As Integer
Dim BCEnde As Integer
Dim Text As String
Dim sb As StringBuilder
Dim nwt As Integer
Dim flag As Boolean
' We want a leading white space, so we s
// tart at position 1
Pos = 1
While Pos < nBar - cBCDef.MinBarCount
// ' Wir start with a black bar
If cBarBlack(Pos) Then
' Try to validate with a sample set, if
// we can classify the bars in N and W bars
// within a tolerance of 25%.
ValidNW = CalcNWWidth(Pos, cBCDef.MinBarCount)
If ValidNW Then ' n und w are OK.
sb = New StringBuilder
BCStart = Pos
BCEnde = Pos
' Start to decode, until no more valid b
// ars are found.
While Pos < nBar
nwt = NWBarType(cBarWidth(Pos))
If nwt = -1 Then
Exit While
ElseIf nwt = 0 Then
sb.Append("n")
Else
sb.Append("w")
End If
BCEnde += 1
Pos += 1
End While
BCEnde -= 1
// ' Check white space
flag = cBarWidth(BCStart - 1) >= cBCDef.PctMinWhiteSpace * cWWidth
If flag Then
flag = BCEnde < nBar - 1
End If
If flag Then
flag = cBarWidth(BCEnde + 1) >= cBCDef.PctMinWhiteSpace * cWWidth
End If
If flag Then
// ' Get the text representation
Text = cBCDef.Decode(sb.ToString)
If Text <> "" Then
cResult.Add(Text)
Debug.WriteLine(Text)
End If
End If
Else
Pos += 1
End If
Else
Pos += 1
End If
End While
End Sub
' Classify width of a bar in -1: invalid
// , 0 N(arrow), 1 W(ide).
Private Function NWBarType(ByVal Width As Integer) As Integer
Dim MaxAbweichung As Double
Dim Abweichung As Integer
Abweichung = Math.Min(Math.Abs(Width - cNWidth), Math.Abs(Width - cWWidth))
MaxAbweichung = (cWWidth - cNWidth) * cBCDef.PctNWTolerance
If Abweichung > MaxAbweichung Then
Return -1
ElseIf Math.Abs(Width - cNWidth) < Math.Abs(Width - cWWidth) Then
Return 0
Else
Return 1
End If
End Function
// ' Calculate Narrow and Wide bar width.
Private Function CalcNWWidth(ByVal Pos As Integer, ByVal Length As Integer) As Boolean
Dim NWidth As Integer
Dim WWidth As Integer
Dim tmp As Integer
Dim Abweichung As Double
Dim MaxAbweichung As Double
Dim i As Integer
// ' Calc Min and Max.
NWidth = cBarWidth(Pos)
WWidth = cBarWidth(Pos)
For i = 0 To Length - 1
tmp = cBarWidth(Pos + i)
If tmp > WWidth Then
WWidth = tmp
End If
If tmp < NWidth Then
NWidth = tmp
End If
Next
' As wide we accept as maximum NWidth *
// cBCDef.MaxFktNW
If NWidth * cBCDef.MaxFktNW < WWidth Then
cWWidth = 0
cNWidth = 0
Return False
End If
Abweichung = 0
// ' Calculate Tolerance
For i = 0 To Length - 1
tmp = Math.Min(Math.Abs(cBarWidth(Pos + i) - NWidth), Math.Abs(cBarWidth(Pos + i) - WWidth))
If tmp > Abweichung Then
Abweichung = tmp
End If
Next
// ' Wir haben: ----N--]----[--W-----
' We accept PctNWTolerance% percent maxi
// mum.
MaxAbweichung = (WWidth - NWidth) * cBCDef.PctNWTolerance
If Abweichung > MaxAbweichung Then
cWWidth = 0
cNWidth = 0
Return False
Else
cWWidth = WWidth
cNWidth = NWidth
Return True
End If
End Function
// ' Is the pixel black?
Private ReadOnly Property IsBlack(ByVal x As Integer) As Boolean
Get
Return (cScanRow(x \ 8) And cBitMask(x Mod 8)) = 0
End Get
End Property
// ' Hepler for calculating pixel color.
Private Sub CreateBitMask()
Dim b As Byte = 1
Dim i As Integer
For i = 0 To 7
cBitMask(7 - i) = b
If i < 7 Then
b = b * 2
End If
Next
End Sub
Public Sub New(ByVal bcd As gmseNWBarcodeDef)
cBCDef = bcd
CreateBitMask()
End Sub
End Class
برای نمونه یک سورس می نویسم که شما می تونید با اون از طریق Internet Explorer به سایت مورد نظرتون از داخل برنامه خودتون وارد بشید :
این کد را در قسمت Form / General بنویسید
(Private Sub OpenUrl (URLName As String
Dim objIE As Object
("Set objIE = CreateObject ("internetexplorer.application
objIE.Visible = True
((objIE.Navigate (Trim(URLName
End Sub
بعد یک Command و یک Textbox روی صفحه بزارید و خصوصیت Name اونها رو به ترتیب cmdGOو txtURLName قراربدید ، بعد هم می تونید با نوشتن کد زیر در رویداد Click مربوط به cmdGo به هر صفحه ای که در ابنترنت دوست دارید دسترسی داشته باشید. به همین سادگی !
( )Private Sub cmdGO_Click
(Call OpenUrl (txtURLName
End Sub