Register for your free account! | Forgot your password?

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

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

Advertisement



Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

Discussion on Tratsch rund um Autoit / Autoit Talk | kleinere Fragen within the AutoIt forum part of the Coders Den category.

Reply
 
Old 10/29/2012, 01:54   #586
 
elite*gold: 464
Join Date: Dec 2010
Posts: 3,998
Received Thanks: 3,909
Ein Release würde sich lohnen
Hilft den Newbies
Dr.Toni-old is offline  
Old 10/29/2012, 11:34   #587
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Ehrlich gesagt würde ich Anfängern davon abraten.
Dabei entsteht bloß Code, den sie nicht verstehen. Ist ähnlich wie mit den Koda GUIs.
Um eine Sprache zu lernen, sollte man lieber alles selbst schreiben.
-STORM- is offline  
Old 10/29/2012, 13:00   #588
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
Quote:
Originally Posted by she was 8 View Post
meinste
@ScriptDir
@ScriptFullPath
@WorkingDir
@DesktopCommonDir
@DesktopDir

usw?
Nein eben nicht^^

Das Programm liegt an ort x und wird ausgeführt . Ich möchte das Verzeichnis in dem ich mich befunden habe , bevor ich das Programm gestartet habe herausfinden ( das Programm wird durch ein Makro meiner Tastatur gestartet)
Havelock_Vetinari is offline  
Old 10/29/2012, 13:05   #589
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Was genau meinst du mit Ort?
In welchem Programm du bist, also aktives Fenster?
Oder bist du immer im Windows Explorer, und willst dort den Ordner rausfinden?
-STORM- is offline  
Old 10/29/2012, 14:01   #590


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Also ich denke er meint wenn er vom Ordner X1 (z.B. C:\user\Desktop) auf Ordner X2 wechselt (z.B. C:\user\Desktop\Programme) und sein Programm startet, dann soll sein Programm X1 ausgeben.
Das geht nicht
Lawliet is offline  
Old 10/29/2012, 14:13   #591
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
Ok , ich erkläre wohl besser was ich vorhabe damit es hier etwas klarer wird

Ich möchte mir ein Programm schreiben , welches mir eine Datei an dem Ort erstellt , an dem ich bin ( Desktop , C:\x\x\xxxxx) . Also das programm fragt meine Tastendrücke ab und soll dann , an dem Ort ( wie oben schon , irgendein Verzeichnis etc...) an dem ich mich befinde , anhand der Tastendrücke eine Datei für mich erstellen ( ich drücke a = .au3 wird erstellt , b = .bat wird erstellt)

Das Programm lasse ich dann durch ein Makro meiner g15 (gamer-tastatur mit zusätzlichen Tasten um sie mit Makros zu belegen . Ich drücke also nur die taste um das Programm zu starten , wechsle nicht das Verzeichnis ( Das einzige Problem ist dann , dass das Programm dann sozusagen "über" dem Verzeichnis steht)) starten. So weit so gut ... Ist auch alles nicht schwer , das einzige Problem das ich habe ist , dass ich nicht weiß wie ich den genauen Ort an dem ich mich gerade befinde ( Desktop , C:\xxxxxxxx\.....) herausfinden kann ...

( Das Programm soll mir halt dort wo ich mich gerade aufhalte meine Dateien erstellen)

Hoffe das bringt ein wenig klarheit^^
Havelock_Vetinari is offline  
Old 10/29/2012, 14:23   #592
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Hab es mir nochmal durchgelesen, und wenn ich dich richtig verstanden habe, passt das Beispiel:
Code:
#include <Process.au3> ;// für _ProcessGetName

;// falls Explorer geöffnet ist wird Adresse zurückgegeben, andernfalls wird leerer Wert zurückgegeben und @error auf 1 gesetzt
Func _GetDirectory()
	Local $WinHandle = WinGetHandle("") ;// ohne Parameter automatisch Handle des aktiven Fensters zurückgegeben ==> Ausgangswert für weiteres Überprüfen
	Local $WinPID = WinGetProcess($WinHandle) ;// zugehörigen Prozess finden ==> Ausganswert für Prozess-Namen
	Local $ProcName = _ProcessGetName($WinPID) ;//Prozess-Name (später nach explorer.exe überprüfen)

	Local $WinText = WinGetText($WinHandle) ;// erste Zeile gibt Pfad an falls $ProcName==explorer.exe

	Local $directory ;//Variable definieren zum späteren Speichern der Adresse
	If $ProcName == "explorer.exe" Then
		Local $CutFirstLine = StringSplit($WinText, @CRLF) ;// einzelne Zeilen von WinText splitten ==> Adresse steht in erster Zeile
		If $CutFirstLine[0] > 0 Then ;// falls $CutFirstLine[1] existiert
			$directory = StringTrimLeft($CutFirstLine[1], StringLen("Adresse: ")) ;// "Adresse: " vom String (erste Zeile) abschneiden
		EndIf
		MsgBox(0,"Directory",$directory) ;// erhaltene Adresse anzeigen
	Else
		SetError(1)
	EndIf

	Return $directory
EndFunc
Quote:
Originally Posted by Lawliet! View Post
Also ich denke er meint wenn er vom Ordner X1 (z.B. C:\user\Desktop) auf Ordner X2 wechselt (z.B. C:\user\Desktop\Programme) und sein Programm startet, dann soll sein Programm X1 ausgeben.
Das geht nicht
Würde mit meinem Beispiel auch gehen , indem man die Adresse des aktiven Explorerfensters global speichert und auf Veränderung überprüft.
Pseudocode:
Code:
If $address_new <> $address_previous Then MsgBox(0,"vorheriges Verzeichnis",$address_previous)
Oder habe ich dich missverstanden?
-STORM- is offline  
Thanks
1 User
Old 10/29/2012, 14:29   #593
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Hmm vielleicht kannst du da ja irgendwie was mit der Registry machen.
Dein Programm soll ja das selbe machen wie
Rechtsklick ->> Neu ->> Datei ??

MfG
Achat is offline  
Old 10/29/2012, 14:31   #594
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
Quote:
Originally Posted by -STORM- View Post
Hab es mir nochmal durchgelesen, und wenn ich dich richtig verstanden habe, passt das Beispiel:
Code:
#include <Process.au3> ;// für _ProcessGetName

;// falls Explorer geöffnet ist wird Adresse zurückgegeben, andernfalls wird leerer Wert zurückgegeben und @error auf 1 gesetzt
Func _GetDirectory()
	Local $WinHandle = WinGetHandle("") ;// ohne Parameter automatisch Handle des aktiven Fensters zurückgegeben ==> Ausgangswert für weiteres Überprüfen
	Local $WinPID = WinGetProcess($WinHandle) ;// zugehörigen Prozess finden ==> Ausganswert für Prozess-Namen
	Local $ProcName = _ProcessGetName($WinPID) ;//Prozess-Name (später nach explorer.exe überprüfen)

	Local $WinText = WinGetText($WinHandle) ;// erste Zeile gibt Pfad an falls $ProcName==explorer.exe

	Local $directory ;//Variable definieren zum späteren Speichern der Adresse
	If $ProcName == "explorer.exe" Then
		Local $CutFirstLine = StringSplit($WinText, @CRLF) ;// einzelne Zeilen von WinText splitten ==> Adresse steht in erster Zeile
		If $CutFirstLine[0] > 0 Then ;// falls $CutFirstLine[1] existiert
			$directory = StringTrimLeft($CutFirstLine[1], StringLen("Adresse: ")) ;// "Adresse: " vom String (erste Zeile) abschneiden
		EndIf
		MsgBox(0,"Directory",$directory) ;// erhaltene Adresse anzeigen
	Else
		SetError(1)
	EndIf

	Return $directory
EndFunc

Würde mit meinem Beispiel auch gehen , indem man die Adresse des aktiven Explorerfensters global speichert und auf Veränderung überprüft.
Pseudocode:
Code:
If $address_new <> $address_previous Then MsgBox(0,"vorheriges Verzeichnis",$address_previous)
Oder habe ich dich missverstanden?
Genau das isses Danke

Quote:
Originally Posted by Achat View Post
Hmm vielleicht kannst du da ja irgendwie was mit der Registry machen.
Dein Programm soll ja das selbe machen wie
Rechtsklick ->> Neu ->> Datei ??

MfG
Ja , so ungefähr ^^
Havelock_Vetinari is offline  
Old 10/30/2012, 23:45   #595
 
elite*gold: 10
Join Date: Aug 2010
Posts: 2,814
Received Thanks: 466
Hallo,

habe folgenden Code:

PHP Code:
#include <Array.au3>
#include <Process.au3>


Global $aProcess ProcessList()
Global 
$apRAM[UBound($aProcess)-1][2]

For 
$i 0 To UBound($aProcess)-1
    $aRAM 
ProcessGetStats($aProcess[$i][1])
    
$apRAM[1][1] = $aRAM
Next

_ArrayDisplay 
($aRAM)
_ArrayDisplay ($apRAM
$aRAM wird korrekt angezeigt.
In $apRAM wird jedoch logischerweise kein Wert eingetragen, da hinter $aRAM nichts steht.

Wenn ich jedoch diesen Code benutze:

PHP Code:
#include <Array.au3>
#include <Process.au3>


Global $aProcess ProcessList()
Global 
$apRAM[UBound($aProcess)-1][2]

For 
$i 0 To UBound($aProcess)-1
    $aRAM 
ProcessGetStats($aProcess[$i][1])
    
$apRAM[1][1] = $aRAM[0] ;<=== [0ergänzt
Next

_ArrayDisplay 
($aRAM)
_ArrayDisplay ($apRAM
bekomme ich den Fehler

Quote:
Subscript used with non-Array variable.:
$apRAM[1][1] = $aRAM[0]
$apRAM[1][1] = $aRAM^ ERROR
$aRAM ist jedoch ein Array, was sich mit _ArrayDisplay ja sogar anzeigen lässt.

Ich hoffe ihr könnt mir helfen

MfG ExChill
ExChill is offline  
Old 10/30/2012, 23:48   #596
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Arrays werden mit Dim definiert.
-STORM- is offline  
Old 10/30/2012, 23:53   #597
 
elite*gold: 10
Join Date: Sep 2012
Posts: 1,438
Received Thanks: 933
Wäre jemand so nett und kann mir ein ausführliches WinHttp Tutorial schicken? Möchte einen kleinen Packet Bot schreiben für nen total unbekanntes Browsergame

Danke im Vorraus
Requiable is offline  
Old 10/30/2012, 23:59   #598
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by -STORM- View Post
Arrays werden mit Dim definiert.
Oder mit local oder global. Dim benutze ich nie.

Quote:
Originally Posted by Requiable View Post
Wäre jemand so nett und kann mir ein ausführliches WinHttp Tutorial schicken? Möchte einen kleinen Packet Bot schreiben für nen total unbekanntes Browsergame

Danke im Vorraus
Sufu von epvp benutzen, Google benutzen,

Es gibt keine ausführlichen Tutorials, alle Tutorials zusammen sind vielleicht ausführlich.

MfG
Achat is offline  
Old 10/31/2012, 00:29   #599
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by ExChill View Post
Hallo,

habe folgenden Code:

PHP Code:
#include <Array.au3>
#include <Process.au3>


Global $aProcess ProcessList()
Global 
$apRAM[UBound($aProcess)-1][2]

For 
$i 0 To UBound($aProcess)-1
    $aRAM 
ProcessGetStats($aProcess[$i][1])
    
$apRAM[1][1] = $aRAM
Next

_ArrayDisplay 
($aRAM)
_ArrayDisplay ($apRAM
$aRAM wird korrekt angezeigt.
In $apRAM wird jedoch logischerweise kein Wert eingetragen, da hinter $aRAM nichts steht.

Wenn ich jedoch diesen Code benutze:

PHP Code:
#include <Array.au3>
#include <Process.au3>


Global $aProcess ProcessList()
Global 
$apRAM[UBound($aProcess)-1][2]

For 
$i 0 To UBound($aProcess)-1
    $aRAM 
ProcessGetStats($aProcess[$i][1])
    
$apRAM[1][1] = $aRAM[0] ;<=== [0ergänzt
Next

_ArrayDisplay 
($aRAM)
_ArrayDisplay ($apRAM
bekomme ich den Fehler



$aRAM ist jedoch ein Array, was sich mit _ArrayDisplay ja sogar anzeigen lässt.

Ich hoffe ihr könnt mir helfen

MfG ExChill
$aRam ist aber nicht immer ein Array. Du gehst alle Prozesse durch, sobald bei einem der Rückgabewert von ProcessGetStats() kein Array ist, stürzt dein Programm ab.
Was kann man da machen? Auf Fehler überprüfen oder prüfen, ob es sich um ein Array handelt.
Abgesehen davon beinhaltet das erste Element von $aProcess keine ProzessID, sondern die Anzahl der gefundenen Prozesse. Du musst also auch bei 1 und nicht bei 0 beginnen. UBound() wird überhaupt nicht benötigt.

Hier mal ein Beispiel:
Code:
#include <Array.au3>

Global $aProcess = ProcessList()
Global $apRAM[$aProcess[0][0]][2]

For $i = 1 To $aProcess[0][0]
	$apRAM[$i - 1][0] = $aProcess[$i][1]
	$aRAM = ProcessGetStats($aProcess[$i][1])
	If IsArray($aRAM) Then
		$apRAM[$i - 1][1] = $aRAM[0]
	Else
		$apRAM[$i - 1][1] = 0
	EndIf
Next
_ArrayDisplay($apRAM)
KDeluxe is offline  
Thanks
1 User
Old 10/31/2012, 03:54   #600
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Wie kann ich herausfinden, ob das Maus-Rad nach oben oder unten bewegt wurde?

MfG
Achat is offline  
Reply


Similar Threads Similar Threads
[Sammelthread]Fragen zu Autoit wie man Hacks herstellt(Autoit) + Antworten
11/16/2011 - Metin2 - 0 Replies
Hallo Liebe Community, Ich habe diesen Thread aufgemacht weil manche leute mit Autoit nicht mehr weiterkommen wie man Hack herstellt ,ich habe mit schon ein Multihack mit Autoit herstellt das war einfach .Da viele User nicht weiterkommen werden habe ich mich entschieden ein Thread aufzumachen mit Fragen und ich den dann Antworten kann und helfen kann! ------------------------------------------------- --------------------------- Mein Multihack:...



All times are GMT +1. The time now is 21:29.


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.