Spoiler anzeigen
[Blockierte Grafik: http://i.epvpimg.com/AsZTb.png]
Hm ja, da freue ich mich schon und es funktioniert nicht
Was habe ich falsche gemacht? Windows 7 64 Bit.
Grüße Njahs
[Blockierte Grafik: http://i.epvpimg.com/AsZTb.png]
Hm ja, da freue ich mich schon und es funktioniert nicht
Was habe ich falsche gemacht? Windows 7 64 Bit.
Grüße Njahs
Ich melde mich dann auch mal für das kleine Quiz hier an.
Ursprünglich wollte ich mir auch das Humble Origin Bundle holen,
aber man kann nicht mit Paypal zahlen
Viel Glück an alle anderen Teilnehmer.
Grüße
Das geht leider nicht, solch einen Befehl gibt es nicht in dieser Form,
und ich denke, dass das Überprüfen des kompletten Computers auf neue Datein
nicht funktionieren wird.
Grüße
Zitat[...]filename of the picture to be loaded : supported types BMP, JPG, GIF(but not animated).[...]
Herzlichen Glückwunsch!
Willkommen!
Mein Kopf hat früher öfter mal Bekanntschaft mit der Tastatur gemacht,
meistens beim World of Warcraft spielen, und deshalb kam sowas
dabei raus.
5+ Jahre bin ich meinem Namen schon treu
// Man, ihr habt alle so lange Geschichten, und ich?
Frohes neues!
Könntest du das Programm namens "Autoit-123-Demo26" als Anhang / als Download
in dein Thread hinzufügen? Wäre sehr nett von dir
Herzlichen Glückwunsch
Willkommen!
'Hätte da noch eine kleine Frage (tut mir leid...)
Undzwar: Ich habe nun erfolgreich einige DLL's in C# für AutoIt erstellt,
und habe mich nun wieder meinem kleinen Projekt zugewendet, wofür
ich eine selbst erstellte DLL dringenst bräuchte.
Nun, ich dachte mir, dass es eigentlich funktionieren sollte,
aber das tut es (leider) nicht...
Ich versuche vergebens,
diesen Code (C#) als DLL kompiliert
und umgewandelt
in AutoIt per DllCall aufzurufen, bekomme
aber immer einen Fehler von seitens AutoIt.
Nehmen wir an, ich habe diesen C# code:
using System.Net;
using System;
using System.Text.RegularExpressions;
using System.Text;
using System.IO;
namespace Main
{
public class Class1
{
public static string isReceived(string sSendPacket,string sEmail)
{
Match match = Regex.Match(sSendPacket, @"www.mmmmail.com/" + Convert.ToString(sEmail) + "_(.*?)html", RegexOptions.IgnoreCase);
if (match.Success)
{
return "true";
}
return "false";
}
public static string SendPacket(string sUrl, string Packet)
{
if (sUrl == "") return "Failure:1";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sUrl);
if (Packet != "")
{
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(Packet);
request.ContentLength = bytes.Length;
Stream os = request.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();
}
else { request.Method = "GET"; };
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response == null) { return "Failure:2"; };
StreamReader sReturn = new StreamReader(response.GetResponseStream());
return sReturn.ReadToEnd();
}
}
}
Alles anzeigen
- Ich müsste ihn nun so in AutoIt aufrufen:
$Dllopen = Dllopen(@Scriptdir & "\Main.dll")
$DllCall = DllCall($Dllopen,"str","SendPacket","str", "www.mmmmail.com/njahs.xml","str","")
$DllCall = DllCall($Dllopen,"str","isReceived","str", $DllCall[0],"str",'njahs')
msgbox(0,"","Error Code: " & @error & " Array: " & IsArray($DllCall))
_Arraydisplay($DllCall)
DllClose($DllOpen)
[/autoit]Dabei kommt aber diese Fehlercode heraus:
ZitatAlles anzeigenUnbehandelte Ausnahme: System.IO.FileNotFoundException: Die Datei oder Assembly "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
bei Main.Class1.isReceived(String sSendPacket, String sEmail)=== Zustandsinformationen vor Bindung ===
LOG: Benutzer = Marco-PC\Marco
LOG: DisplayName = System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
(Fully-specified)
LOG: Appbase = file:///C:/Sonstiges/AutoIt3/
LOG: Ursprünglicher PrivatePath = NULL
Aufruf von Assembly : (Unknown).
===
LOG: Diese Bindung startet im default-Load-Kontext.
LOG: Es wurde keine Anwendungskonfigurationsdatei gefunden.
LOG: Die Computerkonfigurationsdatei von C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config wird verwendet.
LOG: Verweis nach der Richtlinie: System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
LOG: Download von neuem URL file:///C:/Sonstiges/AutoIt3/System.DLL.
LOG: Download von neuem URL file:///C:/Sonstiges/AutoIt3/System/System.DLL.
LOG: Download von neuem URL file:///C:/Sonstiges/AutoIt3/System.EXE.
LOG: Download von neuem URL file:///C:/Sonstiges/AutoIt3/System/System.EXE.!>17:09:57 AutoIT3.exe ended.rc:-532459699
>Exit code: -532459699 Time: 2.119
Ich 'bin hier am verzweifeln.
Habe, bis zum bitteren Ende, Suchmaschinen benutzt,
vergebens..
Liegt es an meinem .Net Framework (aktuellste Version) oder sogar an meinem AutoIt?
Projekt & Main.dll im Anhang.
Hi, habe mir kurz deinen Code angesehen und das Problem ist ganz einfach! Die Funktion ist nicht static und deshalb kann es auch nicht funktionieren und wird im Tool auch nicht angezeigt
DotNETExporter
Wie man sich bei solchen kleinen Fehlern kaputt arbeiten kann
Ich dummerchen
Doch, die Express-Versionen reichen aus.
Könnte es sein, dass du ein 64 Bit-System verwendest?
Bei meinem XP32 funktioniert alles einwandfrei, auf dem Win7-64 habe ich das Studio nicht installiert.
Jap, habe ein 64 Bit Betriebssystem.
Hi,
6...setzen....schau dir mal an, was ein DllCall() zurückgibt...
Das allereinfachste Debuggingwerkzeug in Autoit besteht aus der Tastenkombination ALT+d
Wenn man sich angewöht, damit die Variablen zu checken, fallen 90% aller Fehler auf!Weiterhin finde ich weder mit IDA noch mit Raptor´s Werkzeug in einer deiner Dll´s die Funktion....
Könnte es daran liegen, dass ich nur Visual C# Express,
und kein Visual Studio installiert habe?
Würde die Testversion von VS ausreichen?
Hi,
sowohl Tool und Methode funktionieren noch einwandfrei...jedenfalls bei mir.
Ich habe folgenden C# Code (für die DLL):
Nun, so mache ich es, und so funktionert es nicht...:
1) Die C# DLL aus dem Projects/Projekt/Projekt/bin/debug/testdll.dll in das Programm von RAPTOR laden.
=> testdll.il & testdll.res entstehen im Ordner.
2) Ich selektiere die "RechenFunktion" - Funktion, und drücke auf "CIL-Code Modifizieren".
- Selektiert habe ich:
{
// Code size 9 (0x9)
.maxstack 1
.locals init ([0] int64 CS$1$0000)
IL_0000: nop
IL_0001: ldc.i4.s 10
IL_0003: conv.i8
IL_0004: stloc.0
IL_0005: br.s IL_0007
IL_0007: ldloc.0
IL_0008: ret
} // end of method AddierenClass::RechenFunktion
3) Nachdem ich den CIL-Code gespeichert habe, drücke ich auf Kompilieren.
=> Ausgabe:
Microsoft (R) .NET Framework IL Assembler. Version 2.0.50727.4927
Copyright (c) Microsoft Corporation. All rights reserved.
Assembling 'c:\users\marco\documents\visual studio 2010\projects\testdll\testdll\bin\debug\testdll.il' to DLL --> 'c:\users\marco\documents\visual studio 2010\projects\testdll\testdll\bin\debug\testdll.dll'
Source file is ANSI
Assembled method ClassLibrary1.AddierenClass::RechenFunktion
Assembled method ClassLibrary1.AddierenClass::.ctor
Creating PE file
Emitting classes:
Class 1: ClassLibrary1.AddierenClass
Emitting fields and methods:
Global
Class 1 Methods: 2;
Emitting events and properties:
Global
Class 1
Writing PE file
Operation completed successfully
Alles anzeigen
4) Ich verschiebe die TestDLL.dll, die um 1KB kleiner geworden ist, in ein Verzeichniss,
indem ich dieses Script ausführe:
$Dllopen = DllOpen(@ScriptDir & "\TestDLL.dll")
$DLLcall = DllCall($Dllopen, "long", "RechenFunktion")
MsgBox(0, "", $DLLcall)
DllClose($Dllopen)
Ausgabe: 0.
Ich hoffe, dass ich es ausführlich genug ausgedrückt habe,
'bin nicht so gut im Erklären...
Danke!
PS: TestDLL.dll - voher / nachher im Anhang!
Hey Jungs,
tut mir leid, so ein altes Thema wieder aufzugreifen,
aber ich finde keinen Lösungsweg,
eine C# DLL in AutoIt zu benutzen.
Das Tool, von RAPTOR,
sowieso seine "Methode", die ich
nicht ganz verstehe, funktionieren nicht
Ich hoffe auf Hilfe,
Mfg.
So, habe nun (endlich) eine (von 4) Abfragen fertig,
und wollte fragen, ob es Verbesserungen gäbe.
Nämlich für die Linke seite der "Wand" (nicht Außenwand!)
For $i = 0 To UBound($aWalls) - 1; iX = PlayerX ; iY = PlayerY ;; aWalls[$i][0] = Wand X ; aWalls[$i][1] = Wand Y ;; 20 = Wandhöhe & Breite ; 40 = Player höhe & breite
If ($iX + 40) > ($aWalls[$i][0]) And ($iX + 20) < ($aWalls[$i][0]) Then
If ($iY) < ($aWalls[$i][1]) Then
If ($iY + 40) > ($aWalls[$i][1] + 20) Or ($iY + 40) > ($aWalls[$i][1]) Then
Return True
EndIf
ElseIf ($iY) > ($aWalls[$i][1]) Then
If ($iY) < ($aWalls[$i][1] + 20) and ($iY + 40) > ($aWalls[$i][1]) Then
Return True
EndIf
EndIf
EndIf
Next
Hey Autoit.de User
Ich hab da ein Problem mit GDI+,
nämlich will ich herausfinden,
ob sich 2 Objekte (Bilder / Player & Wand)
miteinander schneiden, und ggf. es zu verhindern.
Mein erster Ansatz war dieser:
Func Kollision($iX, $iY, $iImage); $iImage: 0 = Spieler, 1 = Background, 2 = Walls
For $i = 0 To UBound($aWalls) - 1
If ($iX + $aImageSize[$iImage][1]) = $aWalls[$i][0] And ($iY + $aImageSize[$iImage][0]) = $aWalls[$i][1] Then Return True; $aImageSize[$iImage][X]: 0 = Height , 1= Width
Next
Return False
EndFunc ;==>Kollision
Aber:
[Blockierte Grafik: http://i.epvpimg.com/BM4rf.png] [Blockierte Grafik: http://i.epvpimg.com/647zc.png]
Hat jemand eine Idee? (Script ink. Bilder im Anhang!) - Script is optimierungsbedürftig, ich weiß.
PS: Ich frage hier, auch wenn es eine "einfache" Frage ist, weil
ich ab und an Konzentration "Störungen" habe,
ich versuch schon ca. 50min dieses Problem
zu lösen, aber ich lande immer wieder am Anfang...
Hm, ob Zufall oder Schicksal,
ich kenne auch einen Marius, der
in NRW wohnt, ab und zu Badminton & Fußball
spielt, und auch um die 13 ist... D:
Hast du zufällig im September Geburtstag?
Bzw. zurück zum Thema:
Herzlich willkommen