Lad sie einfach in @TempDir herunter und lösche sie mit FileDelete, FileDelete verschiebt sie normalerweise nicht in den Papierkorb.
Beiträge von alpines
-
-
Du könntest einen Mode einbauen der einen Parameter checkt ob drinne de oder en enthalten ist und dann Tag / Day auszugeben.
-
Das ist doch das falsche Forum, hier bekommst du Hilfe für deine Snippets die nicht funktionieren.
Wenn du fertige Scripte haben willst dann poste in Zukunft bitte hier: https://autoit.de/index.php?page=Board&boardID=51 -
Danke für das Feedback, werde den Thread umbenennen.
-
Einen guten Mittag euch allen da draußen!
Mir ist in letzter Zeit (oder generell) auf gefallen das einige versuchen .NET DLLs in AutoIt zu verwenden aber es nicht schaffen. Damit keine weiteren Threads oder Fragen darüber gestellt werden wie man es schafft eine .NET DLL in AutoIt zu verwenden und nicht C++ oder ähnliches (Delphi exportiert ebenfalls vernünftig) zu lernen habe ich für euch dieses Tutorial geschrieben.
Ich hoffe ich kann euch damit helfen .NET DLLs in AutoIt einzubinden.In diesem Tutorial werde ich hauptsächlich auf C# zurückgreifen und nicht auf Visual Basic, da mir C# lieber ist. Fangen wir an!
___________________________________________________________________________Zunächst brauchen wir Microsofts Visual Studio, das gibts in der Express Version 30 Tage lang gratis und danach kann man sich kostenfrei registrieren.
Den Link dazu findet ihr hier: Visual Studio Download
Einfach zu Visual Studio Express scrollen, Visual Studio Express 2013 für Windows Desktop anklicken und herunterladen.
Das Tutorial sollte eigentlich auch mit anderen Versionen von Visual Studio kompatibel sein.Nachdem ihr VS installiert habt öffnet ihr es und es taucht der Startbildschirm auf.
[Blockierte Grafik: http://i.imgur.com/0K8ZdDI.png]Wir gehen auf Neues Projekt und wählen Klassenbibliothek aus.
[Blockierte Grafik: http://i.imgur.com/DnCJDPN.png]Ich habe das Projekt jetzt checkPrime genannt, da ich eine Funktion dort exportieren möchte Primzahlen errechnet. Weiteres später.
Nach einer recht kurzen Wartezeit öffnet sich anschließend unser C# Projekt.
[Blockierte Grafik: http://i.imgur.com/KEZfNk8.png]Ihr könnt auch eine einfache Addition schreiben um es zu testen, achtet aber auf die Datentypen!
Die Funktion primeCheck (warum ich mehr oder weniger dieses komplizierte Beispiel genommen habt sehr ihr später!)
[Blockierte Grafik: http://i.imgur.com/Ssfa0z5.png]Zuerst sollte man seinen NuGet-Packet-Manager updaten.
Das geschiet in dem ihr hier klickt und von dort auf Updates > Produktupdates. Ich würde es gerne zeigen, allerdings ist das Update bei mir nicht mehr sichtbar, weil ich es schon aktuell hab.
Sofern das Update da nicht zu sehen ist spielt das keine Rolle und ihr könnt mit dem nächsten Schritt weitermachen.
[Blockierte Grafik: http://i.imgur.com/HFNQxAm.png]Nachdem ihr euren Paket-Manager geupdatet habt, oder auch nicht, fahren wir mit folgendem Schritt vor. Dem installieren der benötigten Pakete.
Wo und wie man den PM findet, sehr ihr hier.
[Blockierte Grafik: http://i.imgur.com/rAMAuXv.png]Und schon taucht ein neues Fenster auf, ich habs mir nach links gezogen, weil es mir da besser gefiel. Falls oben nicht nuget.org steht (in der ComboBox) stellt es um, das dort nuget.org steht.
[Blockierte Grafik: http://i.imgur.com/eh4PjC2.png]Wir tippen dort Install-Package UnmanagedExports ein und drücken die Enter-Taste.
[Blockierte Grafik: http://i.imgur.com/96Md8CM.png]Wenn alles gut läuft sollte es wie dort oben gezeigt aussehen.
So, die DLL Funktionen für dieses Projekt wurden installiert, nun müssen wir eine kleine Einstellung übernehmen.
Statt Any CPU müssen wir das auf x86 setzen, aber x86 ist oben nicht vertreten, wie man das hinzufügt sehr ihr hier. Desweiteren von Debug auf Release.
[Blockierte Grafik: http://i.imgur.com/PSryPsC.png]Danach erscheint der Konfigurations-Manager.
[Blockierte Grafik: http://i.imgur.com/oIgNO7w.png]Wir wählen in Aktive Projektmappenplattform: Neu aus und schon erscheint ein neues Fenster.
[Blockierte Grafik: http://i.imgur.com/jcaVtqr.png]Wir stellen die Einstellungen auf folgendes um damit die DLL kompatibel ist.
[Blockierte Grafik: http://i.imgur.com/KZQAbfL.png]Anschließend klicken wir auf OK und Schließen das Fenster. Sofern ihr alles bisher richtig gemacht habt sollte oben wo Any CPU stand jetzt x86 stehen und statt Debug Release.
So, soweit so gut. Aber eins haben wir noch vergessen, nämlich die Funktion zu exportieren dies geschieht indem wir erstmal
oben hinzufügen.
So, jetzt haben wir alles was wir zum Exportieren brauchen, jetzt schreiben wir noch eine Zeile zum Exportieren selbst hin.
Diese Zeile lautet in meinem Fall
DllExport sagt sicherlich schon was es ist, "checkPrime" ist die Funktion und den Rest dafür das es ein StdCall ist (StdCall = Standard-Funktionsaufruf)Mittlerweile sieht mein Code so aus.
[Blockierte Grafik: http://i.imgur.com/IopYRq5.png]Jetzt ist eigentlich alles fertig und nichts steht mehr im Weg unsere DLL endlich zu kompilieren, also können wir entweder F7 drücken oder F5
Der Unterschied zwischen F7 und F5 ist der, dass F7 das Projekt kompiliert und F5 kompiliert sowie debugged.
F5 wird zwar das Projekt kompilieren aber spuckt unnötigerweise eine Fehlermeldung aus die wir mit F7 vermeiden können.Also drücken wir F7!
[Blockierte Grafik: http://i.imgur.com/7Lt9Kt7.png]Damit sollte in Dokumente > Visual Studio 2013 > Project > checkPrime > checkPrime > bin > x86 > Release die checkPrime.dll liegen.
[Blockierte Grafik: http://i.imgur.com/RAdW6WE.png]Ich hab einen kleinen Test vorbereitet, das war auch eigentlich der Grund warum ich Primzahlen für den Test genommen hab.
Denn ich möchte euch den Geschwindigkeitsunterschied zwischen AutoIt und C# zeigen.So sieht mein Testordner aus.
[Blockierte Grafik: http://i.imgur.com/Vmlstwm.png]Das Testscript sieht so aus.
AutoIt
Alles anzeigen; Speedtest.au3 $hTimer = TimerInit() Local $a = 2, $b = 2, $c = 0 Do $b = 2 While $a >= $b If mod($a, $b) = 0 Then $c += 1 $b += 1 WEnd If $c > 2 Then $c = 0 ;keine Primzahl If $c = 1 Then $c = 0 ;Primzahl $a += 1 Until TimerDiff($hTimer) >= 5000 ConsoleWrite("Speedtest AutoIt 5 Sec Prime: " & $a & @CRLF) $hTimer = TimerInit() Local $a = 2 Do DllCall("checkPrime.dll", "bool", "checkPrime", "int", $a) $a+=1 Until TimerDiff($hTimer) >= 5000 ConsoleWrite("Speedtest C# 5 Sec Prime: " & $a & @CRLF)So, kommen wir zu dem Aspekt den ich schon die ganze Zeit erwähnen möchte, die Geschwindigkeit.
Da bei C# kein Interpreter den AutoIt Code noch in C++ Code interpretieren muss, verliert man kaum an Geschwindigkeit.
Das ist sehr deutlich durch die Speedtest.au3 zu erkennen, trotz dem zusätzlichen DllCall ist die C# DLL schneller, hier die Ergebnisse.Man sollte noch anmerken, das bei Primzahlen die Anzahl nicht steigt wie man einfachen Rechnungen, da hier die Zahl selbst und alle Zahlen dadrunter bis 2 durchgerechnet werden um einen Teiler zu finden.
Man kriegt deutlich eindeutigere Resultate wenn man eine DLL mit Addition exportiert aber das könnt ihr ja versuchen
Wichtig! Wenn die Funktion string returned oder als Parameter string hat dann düft ihr sie in AutoIt nicht mit string als Typ definieren sondern str!
Wichtig! Setzt den Accessor auf Public, da einige Sprachen (vb) Probleme haben die Funktion zu importen!Im Anhang ist der Testordner + Projektmappe der DLL als .zip!
___________________________________________________________________________
Zum Abschluss möchte ich noch sagen, das es mir Spaß gemacht hat das Tutorial zu verfassen, ich hoffe ich konnte euch damit helfen .NET DLLs erfolgreich in AutoIt zu verwenden.
Lob, Kritik und jegliches Feedback ist jederzeit gerne gesehen!
-
Kannst dir auch überlegen Switch oder Select zu nutzen, der Übersichtlichkeit halber
[autoit]$iCompany = 2230
[/autoit][autoit][/autoit][autoit]Switch $iCompany
[/autoit][autoit][/autoit][autoit]
Case 2221, 2222, 2223, 2224, 2225
MsgBox(64, "Empfänger", "A")
Case 2226, 2227, 2228, 2229
MsgBox(64, "Empfänger", "B")
Case 2230
MsgBox(64, "Empfänger", "C")
EndSwitchSelect
[/autoit]
Case $iCompany < 2226
MsgBox(64, "Empfänger", "A")
Case $iCompany > 2225 and $iCompany < 2230
MsgBox(64, "Empfänger", "B")
Case $iCompany = 2230
MsgBox(64, "Empfänger", "C")
EndSelect -
Die Abfrage is falsch da Zahlen immer true sind.
Statt If $sVar = 1 or 3
muss da If $sVar = 1 or $sVar = 3 hin.
Alternativ tuts ein Switch auch. -
Es reicht wenn du auf die Seite egal in welcher Methode zugreifst, Browser sind davon nicht betroffen.
Nicht du bezeichnest was "per se störend" ist, sondern die von eBay. -
Dein "Tool" verstößt gegen die eBay AGBs also sollte man, egal in welcher Hinsicht, dir nicht helfen.
-
Warum nennst du dann das Thema wenn es nur ums includen geht? Nicht ein bisschen redundant?
-
Es ist egal wie viel ms du als Intervall nimmst, solange du keine schriftliche Erlaubnis davon vorlegen kannst das du es darfst, hast du hier mit eBay nichts verloren.
-
Bitte nicht noch einmal:
https://autoit.de/index.php?page…&post348937 -
Es gab schon mal eine Diskussion über das Requesten von Htmls auf eBay und es ist nicht erlaubt.
-
http://msdn.microsoft.com/en-us/library/…9(v=vs.85).aspx
Das verwenden eigentlich HackShields bzw. Sicherheitsprogramme von Online-Spielen die das Injecten / hacken erschweren.
-
[autoit]
FileSelectFolder()
[/autoit]?
-
Wenn du wissen willst wer grade auf deinen Prozess zugreift dann schau mal auf msdn nach
K32EnumProcesses
-
5.5 Jahre später und dann eine Uservorstellung, so muss das sein

Willkommen im Forum! -
-
Wenn du eigene GUIs entwerfen möchtest dann solltest du dir mal GDI+ oder SkinCrafter anschauen.
//und achja, willkommen im Forum!

-
" nicht" ja, aber was ist wenn ein Satz so ist? Lala.Nicht?