Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 11:21

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



InetGet passt ned richtig ?!

Discussion on InetGet passt ned richtig ?! within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
InetGet passt ned richtig ?!

Huhu,
Code:
$download = InputBox ("AdminPanal", "Was wollen sie downloaden?")

If $download = "testdatei1.txt" Then
	InetGet ( "https://rapidshare.com/files/47496018/testdatei1.txt", "testdatei1.txt" )


EndIf
Hier in der .txt sollte eigentlich testdatei1 drinne stehen, aber wenn man die Datei durch das Script runterlädt, dann steht das hier in der .txt.

Quote:
<script type="text/javascript">location="https://rapidshare.com/#!download|366p1|47496018|testdatei1.txt|0|0|0";</script>
Warum & wie kann ich das beheben ?
Benjihz is offline  
Old 09/02/2012, 20:57   #2
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by xKnixXeD View Post
Huhu,
Code:
$download = InputBox ("AdminPanal", "Was wollen sie downloaden?")

If $download = "testdatei1.txt" Then
	InetGet ( "https://rapidshare.com/files/47496018/testdatei1.txt", "testdatei1.txt" )


EndIf
Hier in der .txt sollte eigentlich testdatei1 drinne stehen, aber wenn man die Datei durch das Script runterlädt, dann steht das hier in der .txt.



Warum & wie kann ich das beheben ?
rapidshare bietet keine direkt downloads an...
lolkop is offline  
Old 09/02/2012, 21:00   #3
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Achsooo.. o.O
Welche Seite bietet das denn zb an ?
Benjihz is offline  
Old 09/02/2012, 21:36   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by xKnixXeD View Post
Achsooo.. o.O
Welche Seite bietet das denn zb an ?
jeder beliebige webspace...

alle one-click-hoster haben die eigenschaft, das mindestens ein klick nötig ist, zum downloaden/uploaden
lolkop is offline  
Old 09/02/2012, 23:47   #5
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Du kannst dir einen Webspace, wie zum Beispiel bei Kili.de, zulegen. Benutze schon seit ca. 1 Jahr meinen FTP-Server bei Kilu und kann mich nicht beklagen.

Gebe dir hier gleich mal eine Download Funktion mit. Hatte diese mal aus Langeweile gescripted. Die Funktion nennt sich _Update, weil diese eigentlich für meine Bot´s gedacht war.


Ist noch etwas ausbaufährig was die Abfragen betrifft, aber an sich sollte diese Funktion ihre Aufgabe gut erfüllen.
Achja, bevor ich noch von jemand besimmten angepöbelt werde, die Idee mit der Progressbar kam von KDeluxe´s UDF.
Logtetsch is offline  
Old 09/03/2012, 00:25   #6
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Die UDF habe ich nur bei deinem Scripts verwendet, sollte daher niemand kennen.

Allerdings stell ich mir schon die Frage, warum du es verschlimmbessert hast. Den Download sollte man z. B. erst nach der Prüfung der Dateigröße starten.


KDeluxe is offline  
Old 09/03/2012, 07:33   #7
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Wie kann ich es dann schaffen, das das Script Zugang erhält ?
Weil zum ftp gibts ja eig immer ein Password.. :S
Benjihz is offline  
Old 09/03/2012, 15:58   #8
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Nunja, ich hab ja deine UDF nicht 1:1 nachgescriptet, sonst hätte es ja keinen Sinn. Ich hatte selbst den Drang mir eine eigene zu coden. Allerdings kam die Idee mit der Progressbar besser. Wie ich bereits gesagt habe, kann man die Abfragen nach belieben ändern bzw. verbessern. Ob nun die Dateigröße während dem Downloaden, oder vor dem Downloaden, angezeigt wird, spielt doch letzendlich keine Rolle. Die Funktion an sich sollte klappen

Einen Zugang braucht man nicht unbedingt. Durch ein .php oder ein .html Dokument sollte es auch funktionieren.

#.html Dokument auf dem FTP Server
Code:
<Version>1.0</Version>
#.au3 Code
Code:
Global $myVersion = "0.9"

Local $Site = "http://www.ftpserver.de/Version.html"
Local $Info = BinaryToString (InetRead( $Site ))
Local $newVersion = _StringBetween ($Info, "<Version>","</Version>")

if IsArray ($newVersion) Then
	if $newVersion[0] <> Then
		_Update (....)
	EndIf
EndIf
Logtetsch is offline  
Old 09/03/2012, 18:06   #9
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Die Downloadgröße wird vor dem Download in beiden Scripts nicht "angezeigt". In deinem Script wird die Abfrage schlichtweg nicht optimal genutzt. Die Zeile mit FileDelete() hat in deinem Script ebenfalls nichts zu suchen. Theoretisch könnte die Zeile dafür verantwortlich sein, dass die Datei nach dem Download sofort wieder gelöscht wird und somit nicht "weiterverarbeitet" werden kann. Wobei du die Ressourcen nie freigibst, wodurch der Zugriff zum Löschen verweigert werden kann. Eine zweimalige Abfrage für exakt das selbe (IsArray) ist ebenfalls unnötig und unperformant. "Sollte" ist nicht ausreichend.

Mal zur eigentlichen Frage zurück, in der Hilfe steht die Antwort:
Quote:
Originally Posted by F1-Hilfe
To use a username and password when connecting simply prefix the servername with "username:password@", e.g.
"http://myuser:"
Die Versionsüberprüfung wäre auch in einer Zeile lösbar:
Code:
$LocalVersion = "1.0"

$Source = BinaryToString(InetRead("http://www.somesite.com/path/version.html"))
$CurrentVersion = _StringBetween($Source, "<version>", "</version>")

If IsArray($CurrentVersion) And $CurrentVersion[0] <> $LocalVersion Then _Update()
KDeluxe is offline  
Old 09/03/2012, 18:28   #10
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
[IMG][/IMG]

Läuft soweit alles, nur wenn ich die MsgBox bestätige, dann kommt die Datei einfach ned in den Ordner wo mein Script liegt.. ?!
Benjihz is offline  
Old 09/03/2012, 23:03   #11
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Nun, wie ich schon gesagt hatte, ist diese Funktion ausbaufähig. Ich zieh mich vorsichtshalber etwas zurück.

Zum eigentlichen Thema. Versuch es mal so:
Code:
$hDownload = InetGet ($url, $fileName, 1+8, 1)

While True
	$szInfo = InetGetInfo ($hDownload)
	if IsArray ($szInfo) And $szInfo[2] = True Then
		MsgBox (64,"Download","Download wurde beendet!")
		ExitLoop
	EndIf
WEnd
Logtetsch is offline  
Old 09/03/2012, 23:53   #12
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Was man (fast) immer machen kann: @error abfragen.

Weshalb probierst du es überhaupt per FTP? Hat doch hier überhaupt keinen Nutzen.

Relativ einfach gelöst:
Code:
$SaveFile = @ScriptDir & "\Bla.txt"
$FileName = InputBox("Download", "Dateiname:", "testdatei1.txt")
If $FileName <> "" Then
	For $i = 1 To 5
		If $FileName = "testdatei" & $i & ".txt" Then
			If FileExists($SaveFile) Then FileDelete($SaveFile)

			InetGet("http://knixxed.kn.funpic.de/Dowmloader/" & $FileName, $SaveFile, 1)
			If @error Then MsgBox(32, "Fehler", '"' & $FileName & '" konnte nicht heruntergeladen werden!')

			MsgBox(64, "Info", '"' & $FileName & '" wurde unter' & @LF & @LF & '"' & $SaveFile & '"' & @LF & @LF & "gespeichert.")
			Exit
		EndIf
	Next

	MsgBox(32, "Fehler", '"' & $FileName & '" ist nicht auf dem Server vorhanden!')
Else
	MsgBox(32, "Fehler", "Es wurde kein gültiger Dateiname angegeben!")
EndIf
KDeluxe is offline  
Old 09/04/2012, 14:38   #13
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Quote:
Originally Posted by KDeluxe View Post
Was man (fast) immer machen kann: @error abfragen.

Weshalb probierst du es überhaupt per FTP? Hat doch hier überhaupt keinen Nutzen.

Relativ einfach gelöst:
Code:
$SaveFile = @ScriptDir & "\Bla.txt"
$FileName = InputBox("Download", "Dateiname:", "testdatei1.txt")
If $FileName <> "" Then
	For $i = 1 To 5
		If $FileName = "testdatei" & $i & ".txt" Then
			If FileExists($SaveFile) Then FileDelete($SaveFile)

			InetGet("http://knixxed.kn.funpic.de/Dowmloader/" & $FileName, $SaveFile, 1)
			If @error Then MsgBox(32, "Fehler", '"' & $FileName & '" konnte nicht heruntergeladen werden!')

			MsgBox(64, "Info", '"' & $FileName & '" wurde unter' & @LF & @LF & '"' & $SaveFile & '"' & @LF & @LF & "gespeichert.")
			Exit
		EndIf
	Next

	MsgBox(32, "Fehler", '"' & $FileName & '" ist nicht auf dem Server vorhanden!')
Else
	MsgBox(32, "Fehler", "Es wurde kein gültiger Dateiname angegeben!")
EndIf
Warum ? Weil es sone Art Selbsttest ist/war.

Meine Frage is jetzt warum man da soviel drum herum machen muss, er soll ja einfach nur die Dateien von dem ftp runterladen ?
Benjihz is offline  
Old 09/04/2012, 17:10   #14
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Muss man nicht, aber es ist angemessen. So kann man einfache Fehler vermeiden. Allerdings gilt KDeluxe´s Methode nur für die ersten fünf bzw. überhaupt nur für die Dateien, die den Namen "testdatei" entsprechen. So ist man unflexibel. Eine vielleicht etwas einfachere Variante wäre dann wohl diese:

Code:
#include <String.au3>

Local $DownloadUrl = "Downloadurlauseinemftpserver"
Local $url = "deinhtmldokument"
Local $szData = BinaryToString (InetRead ($url))
Local $szUserDownloadPanel = _StringBetween ($szData, "<Dokumente>", "</Dokumente>")

Global $szDocument, $hStatus = 0

if IsArray ($szUserDownloadPanel) And $szUserDownloadPanel[0] <> "" Then
	$szDocument = StringSplit($szUserDownloadPanel[0], "|")
	if IsArray ($szDocument) Then
		Local $hInput = InputBox ("Datei","Geben Sie einen Dateinamen ein!")
		if $hInput <> "" Then
			For $i = 0 to UBound ($szDocument)
				if $hInput = $szDocument[$i] Then
					$hStatus = 1
					ExitLoop
				Else
					MsgBox (46,"Fehler","Datei konnte nicht gefunden werden, oder Sie haben nicht die benötigte Rechte!", 5)
					Exit
				EndIf
			Next
			Local $hDownload = InetGet ($DownloadUrl, $FileName, 1+8, 1)
			if not @error Then
				While True
					Local $szDownloadInfo = InetGetInfo ($hDownload)
					if IsArray ($szDownloadInfo) and $szDownloadInfo[2] = True Then
						MsgBox (64,"Info","Download wurde erfolgreich abgeschlossen!")
						Exit
					EndIf
				WEnd
			EndIf
		EndIf
	EndIf
EndIf
Das musst du natürlich ebenfalls mit einem .html Dokument verknüfpen. Es gibt noch weite Möglichkeiten, habe aber momentan wenig Zeit (wegen meiner Ausbildung), um diese aufzuzählen bzw. zeigen. Habe das ganze auf die schnelle gemacht, deshalb hoffe ich, dass es keine Fehler gibt

Achja, das ganze sollte inetwa so aussehen. #.html Dokumet
Code:
<Dokumente>Datei1.txt|Datei2.txt|blödsinn.txt|pipapo.txt|binNunflexibel.exe</Dokumente>
So kannst du bestimmen, was User downloaden können und was nicht.
Logtetsch is offline  
Old 09/04/2012, 17:29   #15
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Noch mehr Text.. :S
Mir sieht das da alles ziemlich komplex aus, kann man das auch sonst ziemlich einfach machen ?
Weil sonst muss ich mich davor jetzt noch n parr Tage mit For Schleifen & dem ganzem anderem Zeug beschäftigen..
Benjihz is offline  
Reply


Similar Threads Similar Threads
InetGet als _IE funktion erhaeltlich?
07/08/2011 - AutoIt - 6 Replies
inetGet als _IE funktion erhaeltlich?
Problem mit InetGet
01/31/2011 - AutoIt - 8 Replies
Hi Ich will per InetGet() ein paar Dateien runterladen. Die Dateien sollen aber nicht direkt in den Ordner, in dem die EXE ist, sondern in einen Unterordner. Die Dateien werden zwar runtergeladen aber sind alle 4KB groß (sind sie in Wirklichkeit nicht) und fehlerhaft/funktionieren nicht.
Gui per Inetget?
09/16/2010 - AutoIt - 8 Replies
Hi. Ich will in meinem neuen Trainer für S4League dieses bild als hintergrund http://www.mypspwallpapers.com/uploads/200704/f/1 176278451.jpg aber ich habe nicht wirklich lust dass in einen Ordner zu packen... Könntet ihr mir kurz und knackig erklären wie das mit Inetget zu realisieren wäre?
InetGet ftw
07/13/2010 - AutoIt - 0 Replies
Hat sich erledigt ;D Bitte löschen
Frage zu InetGet in Autoit
12/30/2008 - Guild Wars - 12 Replies
Hi, hab die Helpfiles durchforstet aber nichts gefunden... Also in AutoIT gibt es ja den Befehl InetGet. Soweit ich es verstanden habe, kann man mit diesem Befehl Datein aus dem Internet herunterladen. Und nein, ich brauch das nicht um Trojaner,Viren und co zu machen. Alles was ich machen will ist ein kleines Tool, mit dem man einfach den entsprechenden (public) Bot downloaden kann.(z.B. Thermalquellen, ohne lang nach der aktuellen suchen zu muessen). MfG, NBA



All times are GMT +1. The time now is 11:22.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.