Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

07/28/2012 13:04 lolkop#376
Quote:
Originally Posted by Dr.Toni View Post
Also ich hab mich mal wieder (:p) an Remus gewandt.. Er hat mir das hier empfohlen:
(Gesprächs Zitate :) )
du könntest Fileinstall benutzen und die exe files immer ins tmp dir installieren

mit Fileinstall kannst du dateien beim compilen in die exe kopieren, so das es nurnoch eine datei ist, aber beim ausführen werden die dateien wieder herauskopiert.
Das TempDir ist ein spezielles Verzeichnis das beim neustarten des rechners gelöscht wird. Ist zwar ein Umweg, aber die einfachste möglichkeit nur eine exe sichtbar zu haben ohne gleich mit Threads anzufangen
die idee an sich ist schon nicht gut.

letztendlich hat man immer eine programmschleife in der alles abgearbeitet wird.

in dieser schleife kann man dann einzelne programmteile bequem in funktionen auslagern. falls das alles irgendwann zu unübersichtlich wird, kann man auch auf neue *.au3 dateien auslagern, welche dann per include einfach ins hauptprojekt eingebunden werden können.

dennoch erhält man am ende nie mehr als eine ausführbare datei.
07/28/2012 15:29 K1ramoX#377
Kennt jmd eine InjectPE Funktion? Gibt ja einmal RunPE aber ich brauch es ohne Run, sprich dass der Prozess nicht erst gestartet werden muss sondern direkt in einem existieren Prozess injected wird D:
07/30/2012 21:32 Logtetsch#378
Servus,

ich steh gerade so zimliech aufm Schlauch.
Ich möchte eine E-Mail versenden. Habe mir dazu diese Funktion rausgesucht.
PHP Code:
_INetSmtpMail 
Meine Parameter gehen nur bis zum Body.
PHP Code:
Local $Body[1]
$Body[0] = $Message Diese wird aus einem Editfeld ausgelesen
Local $SmtpServer 
"smtp.web.de"
Local $MeineEmail "[Only registered and activated users can see links. Click Here To Register...]"
Local $SenderEmail "[Only registered and activated users can see links. Click Here To Register...]"
Local $SenderName "xxxx"
Local $Betreff "Betreff"

_INetSmtpMail ($SmtpServer$SenderName$SenderEmail$MeineEmail$Betreff$Body
Jedoch bekomme ich einen Error. Der Fehlercode ist 50.
Habe schon in der AutoIT-Hilfe nachgeschaut. Allerdings sagt diese nur, dass der Body (Main text) nicht versendet werden kann.
07/30/2012 21:36 butter123#379
Hast du schonmal geguckt, was wirklich in $Body[0] drinsteht, nachdem du das Feld ausgelesen hast?
Mach evtl noch ne zweite Zeile für das Body Array.
07/30/2012 21:52 Logtetsch#380
Hab es schon vorher versucht. Leider ohne Erfolg.
Ich sehe mich gezwungen eine andere UDF im Internet zu suchen >_<
07/30/2012 21:56 Lawliet#381
_INetSmtpMail ($SmtpServer, $SenderName, $SenderEmail, $MeineEmail, $Betreff, $Body)

$Body musst du mit $Body[0] übergeben. Wieso nutzt du eig. ein [1] Array?
07/30/2012 22:09 Logtetsch#382
Quote:
Originally Posted by Lawliet! View Post
_INetSmtpMail ($SmtpServer, $SenderName, $SenderEmail, $MeineEmail, $Betreff, $Body)

$Body musst du mit $Body[0] übergeben. Wieso nutzt du eig. ein [1] Array?
Klappt immernoch nicht. Das mit dem [1] Array diente nur als Beispiel.
07/31/2012 19:49 FichteFoll#383
Quote:
Originally Posted by Logtetsch View Post
Jedoch bekomme ich einen Error. Der Fehlercode ist 50.
Habe schon in der AutoIT-Hilfe nachgeschaut. Allerdings sagt diese nur, dass der Body (Main text) nicht versendet werden kann.
In meiner Hilfe steht:
Code:
5x - Cannot open SMTP session. x indicates the index number of last command issued to the SMTP server.
Im Quellcode steht dazu Folgendes (#186):
PHP Code:
open stmp session
If __SmtpSend($v_Socket$s_Send[0], $s_ReplyCode[0], $b_trace"220"$s_firstThen Return SetError(5000
Dafür kann es 2 Ursachen geben:
1. #262 TCPSend($v_Socket, $s_Send) = 0
2. #281 StringLeft($s_Receive, StringLen($s_ReplyCode)) <> $s_ReplyCode
$s_ReplyCode ist "250" (#157, #186)

Am besten kopierst du dir mal die Funktionen aus der UDF heraus und debuggst diese Stellen.
08/01/2012 00:53 Logtetsch#384
Danke an FichteFoll und an die anderen die sich bemüht haben mir zu helfen.
Das Problem ist nun beseitigt.
Allerdingst stehe ich momentan vor einem neuen. Ansich ist es kein Problem, nur fehlt mir dazu das Wissen.

Habe mir vor kurzem eine neue Includedatei erstellt.
Ich möchte, dass mir ein Wert, oder besser gesagt ein String wiedergegeben wird.

Beispiel :

Main Script:
PHP Code:
#include <MeineUDF.au3>

Global $String
Global $Func _MeineFunction ($String)

if 
not $Func 1 then
    
exit
EndIf 
Include Datei:
PHP Code:
if pipapo then
    $String 
"Text"
    
return SetError (1,"",True)
    return 
$String
EndIf 
Ich möchte also, dass der Text "Text" in meinem Mainscript wiedergegeben wird. Wie stelle ich das an?

mfg Logtetsch
08/01/2012 01:02 qkuh#385
Ich bin mir nicht sicher, aber ich glaube, dass $String in deiner MeineUDF.au3 eine Globale Variable sein muss.
08/01/2012 18:06 KDeluxe#386
Code:
return $String
Diese Codestelle wird nie erreicht.

Funktionieren würde es so:
Code:
if pipapo then
    $String = "Text"
    SetError (1,"",True)
    return $String
EndIf
Einen Fehler bei erfolgreicher Ausführung zu setzen ist (meiner Meinung nach) sinnlos. Statt "1" wäre es besser "0" zu setzen (→ kein Fehler). Bei dieser Funktion ist SetError() aber sowieso vollkommen unnötig.
Du weißt der Variable immer den selben Wert zu und gibst diesen anschließend zurück, du könntest stattdessen einfach gleich
Code:
if pipapo then return "Text"
verwenden.

Wenn du den Wert einer globalen Variable änderst brauchst du den Wert nicht zurückgeben. Zur Wiederverwendbarkeit der Funktion (für andere Scripts) würde ich statt einer globalen Variablen einen ByRef Parameter verwenden. Globale Variablen braucht man in einem AutoIt Script ohnehin nicht wirklich.

08/04/2012 04:09 mono0#387
Hat eigentlich Java oder Autoit die schlechtere Laufzeit?

nicht schlagen bitte ;)

noch was: gibts eigentlich sowas wie ne mouseover funktion?
08/04/2012 13:14 butter123#388
[Only registered and activated users can see links. Click Here To Register...]

zur laufzeit kann ich leider nichts sagen
08/04/2012 13:29 .AppleTree.#389
Java ist definitiv Schneller als AutoIt.

MFG AppleTree
08/04/2012 22:05 Havelock_Vetinari#390
Wieso kann GuiCtrlCreatePic deises Captcha (Anhang) nicht erstellen ( gibt 0 zurück) ? Mit anderen .bmp Dateien funktioniert es . Script :
Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 623, 445, 192, 124)
$Pic1 = GUICtrlCreatePic( "SF_Glück.bmp", 0,0)
If $Pic1 = 0 Then
	MsgBox(2,"","Fehler")
EndIf

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
€dit: Alter ^^ ich bin dumm ........ Sitze stundenlang vor dem scheiß proble , dabei isses anz einfach