Als Info:
WoW ist von der Registry unabhängig, kannst drin löschen was du willst
(und ich weiß das, bin selbst WoW-Spieler und Fachinformatiker :/)
Als Info:
WoW ist von der Registry unabhängig, kannst drin löschen was du willst
(und ich weiß das, bin selbst WoW-Spieler und Fachinformatiker :/)
Dann änder das PW von seinem Account und kündige diesen, aber ändere vorher die Emailadresse im Acc ab. und er soll sich an
nen Psychologen wenden.
Bedenke, er könnte ja Windows neu installieren...
Welchen Zweck soll denn das haben? Lösch doch einfach das Spiel oder
willst du Freunde von dir nerven?
Ansonsten waren meine Vorredner schneller
Morgen,
Deine Frage ist sehr weitfächernd, du musst versuchen die Fragen so präzise wie möglich zu stellen (das geht in dem du möglichst viele Details angibst)
ein Beispiel (Da ich nicht genau weiß was du willst):
#include <GuiConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]; GUI
$GUI = GUICreate("GUI Name", 300, 200)
; Input-Feld 1 mit einem Label davor
$Label_1 = GUICtrlCreateLabel("ID eingeben:", 10, 10, 85, 30)
$Input_1 = GUICtrlCreateInput("", 100, 10, 100, 30)
; Input-Feld 2 mit einem Label davor
$Label_2 = GUICtrlCreateLabel("PW eingeben:", 10, 50, 85, 30)
$Input_2 = GUICtrlCreateInput("", 100, 50, 100, 30)
; Button zum Speichern erstellen
$Save = GUICtrlCreateButton("Save", 30, 100, 80, 30)
; Button zum Abbrechen erstellen
$Abbrechen = GUICtrlCreateButton("Abbrechen", 150, 100, 110, 30)
; GUI initialisieren
GUISetState()
; Auf Aktionen im GUI reagieren
While 1
$msg = GUIGetMsg()
[/autoit][autoit][/autoit][autoit]; Beende Programm
If $msg == $Abbrechen Or $msg == $GUI_EVENT_CLOSE Then ExitLoop
; Führe Aktionen aus beim Drücken auf "Save"
If $msg == $Save Then
;Breche ab wenn das ID-Feld leer ist
If GUICtrlRead($Input_1) == "" Then
MsgBox( 64, "Achtung!", "Die ID wurde nicht eingetragen!")
ContinueLoop
EndIf
;Breche ab wenn das PW-Feld leer ist
If GUICtrlRead($Input_2) == "" Then
MsgBox( 64, "Achtung!", "Das PW wurde nicht eingetragen!")
ContinueLoop
EndIf
;Schreibe ID und PW in eine Ini-Datei
iniWrite ( @ScriptDir & "\" & "Test.ini", "TEST", "ID", GUICtrlRead($Input_1))
iniWrite ( @ScriptDir & "\" & "Test.ini", "TEST", "PW", GUICtrlRead($Input_2))
EndIf
WEnd
Ich habe versucht alles genau zu kommentieren..
Wenn du Fragen zu einzelnen Befehlen hast, schaue bitte in der Hilfe nach, dort steht alles sehr gut beschrieben (meistens jedenfalls *g*)
Gruß
Prajoss
Das liegt einfach daran dass iniRead und sonstiges im ersten Parameter den Pfad + Dateinamen haben will.
@ScriptDir gibt aber nur den Pfad an. D.h. du musst sowas schreiben:
[autoit]If iniRead(@WorkingDir & $DATEINAME, ...)
[/autoit]Gruß
Prajoss
ps: evtl ist es auch
[autoit]@WorkinDir & "\" & $DATEINAME
[/autoit]das musst du dann selbst rausfinden, hab ich nich so genau im Kopf
Nun habe ich noch eine Möglichkeit gefunden die Daten einzutragen ohne das genannte
Problem zu auszulösen:
#include <GuiConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]Local $var
[/autoit][autoit][/autoit][autoit]; GUI
GuiCreate("Sample GUI", 400, 400)
GuiCtrlCreateList("", 5, 190, 100, 90)
$var = "test|Test"
GuiCtrlSetData(-1, $var)
GuiSetState()
While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd
Damit hab natürlich einen Umweg gefunden aber weiß immernoch nich weshalb der Fehler auftritt,
vllt fällt jemanden ja was ein, dann kann er es gerne hier reinschreiben (ich werde mich dieser
Sache nicht mehr widmen).
Gruß
Prajoss
Edit: Danke Eukalyptus
Heyho,
ich bin auf ein interessantes Phänomen gestoßen was doch störend ist.
Ich habe folgende Funktion:
[autoit]Func _Profile_auslesen($daten)
[/autoit][autoit][/autoit][autoit]GUICtrlSetData($daten, "")
[/autoit][autoit][/autoit][autoit]For $i = 1 To $ID Step 1
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\***\Profile\" & $i, "Profilname")
If $var <> "" Then GUICtrlSetData($daten, $var)
Next
EndFunc
[/autoit]Diese Funktion liest in der Registry geschriebene "Profile" aus -- könnte auch ne .ini sein --
und schreibt diese in das entsprechende Gui (ob Liste, Combo,etc) und das Problem ist folgendes:
Wenn $var z.B. "TEST" heißt und im 2. Durchlauf $var "test" lautet,
so taucht in der Liste/Combo nur "TEST" auf.
Um einen Fehler in meinem Script direkt auszuschließen, habe ich ein etwas allgemeineres Script geschrieben:
[autoit]#include <GuiConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]Local $var
[/autoit][autoit][/autoit][autoit]; GUI
GuiCreate("Sample GUI", 400, 400)
GuiCtrlCreateList("", 5, 190, 100, 90)
$var = "Test"
GuiCtrlSetData(-1, $var)
$var = "test"
GUICtrlSetData(-1, $var)
GuiSetState()
While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd
Auch hier tritt das gesagte Phänomen auf.. Hat mein AutoIT noch nen Bug?
Gruß
Prajoss
Hey,
wenn du nur die aktuelle Funktion schließen möchtest, dann hilft dir der Befehl:
[autoit]Return
[/autoit]Gruß
Prajoss
Hey,
Ich versuchs mal zu erklären.. Er hat einen großen Button.
Wenn er diesen Button aber anklickt gibt es 2 Möglichkeiten:
1. Er klickt auf die Hellgraue Fläche und dann löst es das event aus (man sieht dass der Button gedrückt wurde)
2. Er drückt auf die Dunkelgraue Fläche (dort wo der ganze Text steht) reinklickt, passiert gar nichts!
Und er möchte warum bei 2. nichts passiert und wie man es behebt.
Gruß
Prajoss
Dieser Fehler besagt, dass du eine Variable verwendest, die noch nicht deklariert ist..
In diesem Fall sind es: $pwd und $name..
Du musst sie noch bei deinen deklarierten Variablen dazuschreiben:
Local $pwd, $name
Gruß
Prajoss
was soll er wohin schreiben??
wenn du die Inputs auslesen willst geht es über GUICtrlRead($INPUT), in deinem Beispiel:
$auslesen = GUICtrlRead($NAme)
MsgBox(0, "Test", $auslesen)
oder gleich
MsgBox(0, "Test", GUICtrlRead($auslesen))
und wenn du sie in ein Programm eintippen lassen willst, benötigst du dann entweder
Send($auslesen) oder ControlSendText("Programmname", "", ID, $auslesen)
Gruß
Prajoss
Du kannst die eingegeben Daten mit
GuiCtrlRead($INPUT) rauslesen, alternativ auch mit ControlGetText() und in eine Variable speichern.
Wenn man den Quellcode vor sich hat, kann man genauere Tipps geben
Schau in der Hilfe nach beiden Befehlen, die Beispiele erläutern die Funktionsweise eigentlich recht gut.
Gruß
Prajoss
"Edith sagt:" ist das selbe wie "Edit:"
Ich habe den Quellcode aus Scite rauskopiert und eingefügt, hab das mit dem Spoiler noch nie ausprobiert...
Wenn man natürlich das Gesamte nicht kennt, kann man halt nur gezielt auf den Ausschnitt hinarbeiten, darum auch
das Weglassen der forma()-Funktion.
Also ich seh das so, entweder du versuchst das mit den Bildern falls es in deinem Programm passt oder du wartest bis der ein oder
andere Profi hier was dazusagt, ich hab da noch nicht so viel Erfahrung mit AutoIT
Gruß
Prajoss
Hey,
ich hab ein wenig rumprobiert, jedoch sieht es aus als ob er immer das Label neu aufbaut, selbst beim Befehl
GUICtrlSetState($L2, $GUI_HIDE) wird der Hintergrund erst weiß und verschwindet dann.
Wieso erstellst du nicht einfach 2 Bilder direkt mit dem Text drin? In einem ist der Text in Grün und im anderen in Rot
Sollte ja per Screenshots gehen und wechselst dann zwischen den Hintergründern hin und her? Könntest du das verwenden?
Gruß
Prajoss
Edith sagt:
Die Funktion format() ist recht überflüssig und nimmt noch Performance weg..
so sieht der Code ein wenig einfacher aus und der wechsel geht auch schneller:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
Global $sethfm = 0
Global $b_hoehe = 30, $b_breite = 250
Global $farbe1 = 0xff0000 ; Rot
Global $farbe2 = 0x076825 ; Grün
Global $L2
HotKeySet("t", "test")
[/autoit][autoit][/autoit][autoit];-------------------------------------------------------------------------------------------------------------
gui()
Exit
;-------------------------------------------------------------------------------------------------------------
Func gui()
$Form1 = GUICreate("Form1", 500, 440, (@DesktopWidth - 500) / 2, (@DesktopHeight - 400) / 2, $WS_DLGFRAME + $WS_POPUP + $WS_THICKFRAME)
$Pic1 = GUICtrlCreatePic("pic.jpg", 0, 0, 500, 440, $WS_BORDER)
$L2 = GUICtrlCreateLabel("Label Text", 125, 200, $b_breite, $b_hoehe, $SS_CENTER)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 18, 900, 2, "Verdana")
GUICtrlSetCursor(-1, 0)
If $sethfm = 0 Then GUICtrlSetColor($L2, $farbe2)
If $sethfm = 1 Then GUICtrlSetColor($L2, $farbe1)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $L2
If $sethfm = 0 Then
$sethfm = 1
GUICtrlSetColor($L2, $farbe1)
ElseIf $sethfm = 1 Then
$sethfm = 0
GUICtrlSetColor($L2, $farbe2)
EndIf
EndSwitch
WEnd
EndFunc ;==>gui
Func test()
For $i = 1 To 3
GUICtrlSetColor($L2, $farbe2)
Sleep(1000)
GUICtrlSetColor($L2, $farbe1)
Sleep(1000)
Next
EndFunc ;==>test
Das dachte ich mir bereits aber als ich es getestet habe war der trotzdem noch da, hmm warscheinlich das
Script nicht abgespeichert nach der Änderung :pinch:
Der Aufruf soll bewirken dass, wenn jemand vor dem Drücken des Buttons noch die Taste "^" gedrückt hat, dass es keine Verfälschung im gesendeten Text gibt
sonst ist der erste Buchstabe kein a sondern ein â... Gibt sicher auch einen Befehl den Tastaturpuffer zu leeren, weiß den jemand grade auf die schnelle? sonst such ich halt
Gruß
Prajoss
PS: Danke Greenhorn
ZitatVielleicht solltest Du in den If Abfragen der Nachrichtenschleife des Fensters explizit den Vergleichsoperator '==' benutzen.
Das '=' könnte evtl. als Zuweisung gewertet werden und sollte nicht als Vergleichsoperator genutzt werden ...
Hab ich gemacht, ändert nichts am Problem, außerdem steht das so in der Hilfe da, dass man nur "=" für If-Abfragen nutzen kann.
Ich werde mich bessern und nun "==" benutzen der Lesbarkeitshalber
ZitatOder Du nimmst eine Switch Abfrage in der Nachrichtenschleife.
Das werde ich gleich testen
ZitatBesser wäre vielleicht auch, in der umwandeln() die Control...() Funktionen zu nutzen, anstatt Send().
Ich denke das wird nicht das Problem verursachen aber ich seh sie mir mal genauer an, vorallem ControlSend(), danke
Gruß
Prajoss