Wie ich dir bereits geschrieben habe, geht es nicht ohne Host...
Zusätzlich muss Port und IP gewusst werden und evtl. auch ne Weiterleitung eingerichtet werden, wenn man hinter dem Rooter sitzt...
Wie ich dir bereits geschrieben habe, geht es nicht ohne Host...
Zusätzlich muss Port und IP gewusst werden und evtl. auch ne Weiterleitung eingerichtet werden, wenn man hinter dem Rooter sitzt...
Anbei das Sript...
Hier habe ich auch ein Thema für dieses Script: https://autoit.de/index.php?page=Thread&threadID=17415
also kannst du auch mit f5 beenden?
Ja
Und im Hintergrund würde das auch gehen, man muss dann nur das Fenster immer rechtzeitig ansteuern, wenn etwas eingegeben werden soll...
Was willst du damit eigentlich erreichen?
Bei mir scheint der Code zumindest zu klappen. Welchen Editor nutzt du? Dann kann man evtl. herausfinden, warum das mit dem Strg + F5 nicht klappt.
Und ich weiß auch nicht, ob soetwas hier im Forum erlaubt ist, was du machst
wegen dem unsichtbaren installieren, ohne das der User etwas mitbekommt
Warum sollte das verboten sein? Es reicht auch schon, wenn es minimiert ist und auch minimiert ausgeführt wird...
In Netzwerken ist so etwas sehr sinnvoll. Normal muss man ja ansonsten die ganze Platte formatieren, vorher die Daten sichern, und anschließend per vorgefertigtem Iso wieder alles draufspielen. Das würde auch gehen, ist jedoch viel umständlicher und komplizierter...
Hallo zusammen,
ich habe folgendes Sript erstellt. Dort möchte ich erreichen, dass sich ein Fenster nach einer gewissen, durch eine Variable definierte Zeit, schließt.
Nach mehreren Tests habe ich herausgefunden, dass der Timer nicht auf die Funktion zugreifen kan bzw. die Funktion an den Problemen schuld ist. Ich wollte mit dem Timer eine zweite Funktion aufrufen, die eine Variable verändert. Die erste Funktion, in der sich der Timer befindet, testet per Schleife, ob die Variable den Wert enthält und wenn ja, schließt sie das Fenster.
Gibt es evtl. auch die Möglichkeit, dass man, sollte dies alles nicht klappen, man die Fensterschließung per Timer auch ohne zusätzliche Funktion erreicht?
Noch eine Anmerkung: Das Sript ist so ausgelegt, dass es in ein anderes eingebunden werden muss (durch den include-Befehl). Habe noch ein zweites Sript angehängt, mit dem ich teste, ob die Einbindung klappt bzw. das Sript überhaupt geht...
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
Author: Florian Kurrle
Sript Version: 2.1
Version: 1.0-The important changes
2.0-English is mainlanguage and icons are included
Script Function:
Creates a Window, where you can enter a PIN with your mouse and which can output the PIN as variable
Syntax: _PIN_Win([left[, top[, timeout]]])
timeout = the time to close the window in milliseconds
Return values: Success 1
Failure 0 and set @error to 1. This can happend only when passing wrong parameters.
Usage: #include <PIN_Fenster.au3> (when it's in the stadart include-path)
#include "path\PIN_Fenster.au3" (when it isn't in the standart include-path)
$_PIN is the entered PIN
When you press the E-button, you delete the entered PIN
When you press the C-butto, you confirm the entered PIN
#ce ----------------------------------------------------------------------------
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#Include <Timers.au3>
#include-once
;Declares the PIN and the exit-var
Global $_PIN, $_Exit, $TimeID
#Region GUI/Func
Func _PIN_Win($left = -1, $top = -1, $timeout = "", $_Exit = 0)
If Not IsNumber($timeout) Or $timeout < 0 Then Return SetError(1, 0, 0)
If $left < -1 Or $top < -1 Then Return SetError(1, 0, 0)
Local $btn, $msg, $btn1, $btn2, $btn3, $btn4, $btn5, $btn6, $btn7, $btn8, $btn9, $btn0, $E, $OldCoord, $hGUI
$OldCoord = Opt("GUICoordMode", 0)
$_PIN = "" ;PIN is deleting
$_Exit = 0
$hGUI = GUICreate("", 109.5, 148, $left, $top)
$_IDD = _Timer_SetTimer($hGUI, $timeout, "_PIN_Exit", -1); The timer is starting
$TimeID = _Timer_GetTimerID($_IDD);;;; ---Für Testzwecke
MsgBox(0, $_IDD, $TimeID) ;;;; ---Für Testzwecke
;Button1
$btn1 = GUICtrlCreateButton("", -1, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_1.ico")
;Button2
$btn2 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_2.ico")
;Button3
$btn3 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_3.ico")
;Button4
$btn4 = GUICtrlCreateButton("", -74, 37, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_4.ico")
;Button5
$btn5 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_5.ico")
;Button6
$btn6 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_6.ico")
;Button7
$btn7 = GUICtrlCreateButton("", -74, 37, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_7.ico")
;Button8
$btn8 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_8.ico")
;Button9
$btn9 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_9.ico")
;Button0
$E = GUICtrlCreateButton("", -74, 37, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_E.ico")
;E-Button
$btn0 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_0.ico")
;C-Button (OK-Button)
$btn = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_C.ico")
GUISetState()
;Check which buttons are pressed and react proportionally
$msg = 0
While 1
$msg = GUIGetMsg()
If $msg == $GUI_EVENT_CLOSE Then Exit
Select
Case $msg = $btn
ExitLoop
Case $msg = $btn1
$_PIN &= 1
Case $msg = $btn2
$_PIN &= 2
Case $msg = $btn3
$_PIN &= 3
Case $msg = $btn4
$_PIN &= 4
Case $msg = $btn5
$_PIN &= 5
Case $msg = $btn6
$_PIN &= 6
Case $msg = $btn7
$_PIN &= 7
Case $msg = $btn8
$_PIN &= 8
Case $msg = $btn9
$_PIN &= 9
Case $msg = $btn0
$_PIN &= 0
Case $msg = $E
$_PIN = ""
Case $_Exit = 1
ExitLoop
EndSelect
WEnd
GUIDelete()
Opt("GUICoordMode", $OldCoord)
EndFunc
Func _PIN_Exit(ByRef $_Exit)
$_Exit = 1
EndFunc
#EndRegion GUI/Func
Sript, in welches das vorherige beispielsweise eingebunden wird:
#include "..\PINPad.au3"
_PIN_Win(100, 300, 1000);The window is 100 pixels left and 300 pixels top
MsgBox(64, "", $_PIN) ;output the entered PIN
[/autoit]Vielen Dank schonmal!
LG FKFK
Hallo zusammen,
folgende Situation: Es gibt sehr viele Rechner im Netzwerk. Auf allen muss neue Software installiert werden. Leider ist der Zeitaufwand zu hoch, um dies bei jedem einzeln zu machen.
Ich habe bereits erfolgreich eine Automatisierung mehrer Installation getestet mit AutoIT. Es hat auch alles geklappt, nur das Problem ist, dass die User das nicht stören sollen. Wahrscheinlich würde das Sript einfach in den Autostart-Ordner gelegt werden und anschließend mit Adminzugriff die jeweilige Software von einem Netzwerklaufwerk herunter installiert werden.
folgendes Problem: Dies würde auch alles klappen, aber es wäre schön, wenn der User nicht 30min. warten muss, bis alles fertig ist, oder sogar das ganze versehentlich stört.
Es besteht ja die Möglichkeit, Maus und Tastatur kurzzeitig zu sperren.Jedoch wäre es auch schön, wenn man die Installationen so ausführen könnte, dass der User davon möglichst wenig mitbekommt, zumindest minimiert und nach Möglichkeit sogar ganz unsichtbar...
Das ist eine schwierige Aufgabe, aber ich glaube, dass bestimmt mir jemand mit einer guten Lösung helfen kann
Schonmal danke im Vorraus!
LG FKFK
Alles anzeigenMan kann doch die Tasten in deinem Skript
dann blocken.
Das mit der Zeiteingabe ist vielleicht ganz
gut.
Dann solltest du vielleicht auch mit der
Funktionsabfrage abfragen, ob die Zeiteingabe
aktiviert sein soll oder nicht, bzw. wie lang.
MfG
qixx
Joa, gehen würde das schon. Dann deaktviert man einfach die Buttons...
Man kann ja auch noch einfügen, evtl. über eine zweite Funktion oder so, dass man das eine bestimmte Häufigkeit falsch eingeben kann und dann etwas passiert, wobei das evtl. lieber dem jeweiligen Benutzer überlassen sein sollte.
Zu der Zeit: Ich bin gerade dabei das einzurichten. Das kann ich ja _Timer_SetTimer setzen. Um $hWnd herauszufinden benutze ich $hGUI = GUICreate(...) und als Funktion nehme ich noch eine zweite Funktion, die eine Variable auf eins setzt. In der ersten Funktion wird überprüft, ob die Variable auf eins ist und wenn ja, dann die Funktion per Return beendet. Irgendetwas mache ich falsch, weil es bei mir nicht klappt...
Eine mit jedem Tastendruck um 1 größer werdende
Variable. Wenn die Variable einen bestimmten
Wert hat, die Tastendrücke blocken. Was das
bringen soll? Keine Ahnung! xD
MfG
qixx
Hast du das Sript schonmal getestet?
Da kann man nichts mit der Tastatur machen, sondern nur mit der Maus. Da gibts nichts zum Blocken, sondern man kann höchstens sagen, dass sich das Fenster irgendwann schließt, wenn die Variable zu groß ist...
Dies wäre aber nicht gut, da dadurch die Sicherheit nicht mehr ganz so hoch ist: Man weiß dann nämlich schon, wie lang der PIN ist.
Aber mir fällt noch etwas ein: Man kann dem Fenster eine variable Zeitvorgabe geben. Dies wäre sicherlich die bessere Alternative
Hallo zusammen,
habe jetzt das Sript nochmal verbessert, Variablen für die Postion eingefügt, wie du gesagt hast qixx und noch Icons hinzugefügt
2 Examples sind schon dabei und auch alles auf Englisch geschrieben
Wenn ihr Fehler in den englischen Formulierungen findet, dann bitte melden!
qixx: Ich glaube, ein Eingabelimit lohnt sich nicht. Wie sollte das auch gehen und was sollte das nützen? Man kann höchsten die Variable begrenzen, aber nicht verbieten, dass jemand 100mal auf den gleichen Button klickt
Habe den Quellcode nochmal reinkopiert und anbei nochmal alles zusammen (mit Icons, Examples usw.) gehängt...
Ich hatte mir mal überlegt, ob ich die Icons in eine DLL einbinde, aber nachdem die Icons mit einer sehr schlechten Qualität eingebunden wurden, habe ich das doch gelassen. Weiß jemand, wie man trotzdem eine gute Qualität erreicht?
LG FKFK
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.2.0
Author: Florian Kurrle
Sript Version: 2.0
Script Function:
Creates a Window, where you can enter a PIN with your mouse and which can output the PIN as variable
Syntax: _PIN_Win([left[, top]])
Return values:Success 1
Failure 0 and set @error to 1. This can happend only when passing wrong parameters.
Usage: #include <PIN_Fenster.au3> (when it's in the stadart include-path)
#include "path\PIN_Fenster.au3" (when it isn't in the standart include-path)
$_PIN is the entered PIN
When you press the E-button, you delete the entered PIN
When you press the C-butto, you confirm the entered PIN
#ce ----------------------------------------------------------------------------
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include-once
;Declare the PIN
Global $_PIN
#Region GUI/Func
Func _PIN_Win($length = "", $left = -1, $top = -1)
If Not IsNumber($length) Or $length < 1 Then Return SetError(1, 0, 0)
If $left < -1 Or $top < -1 Then Return SetError(1, 0, 0)
Local $btn, $msg, $btn1, $btn2, $btn3, $btn4, $btn5, $btn6, $btn7, $btn8, $btn9, $btn0, $E, $OldCoord
$OldCoord = Opt("GUICoordMode", 0)
$_PIN = "" ;PIN is deleting
GUICreate("", 109.5, 148, $left, $top)
;Button1
$btn1 = GUICtrlCreateButton("", -1, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_1.ico")
;Button2
$btn2 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_2.ico")
;Button3
$btn3 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_3.ico")
;Button4
$btn4 = GUICtrlCreateButton("", -74, 37, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_4.ico")
;Button5
$btn5 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_5.ico")
;Button6
$btn6 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_6.ico")
;Button7
$btn7 = GUICtrlCreateButton("", -74, 37, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_7.ico")
;Button8
$btn8 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_8.ico")
;Button9
$btn9 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_9.ico")
;Button0
$E = GUICtrlCreateButton("", -74, 37, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_E.ico")
;E-Button
$btn0 = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_0.ico")
;C-Button (OK-Button)
$btn = GUICtrlCreateButton("", 37, -1, 37, 37, 0x0040)
GUICtrlSetImage(-1, "../Images/_C.ico")
GUISetState()
;Check which buttons are pressed and react proportionally
$msg = 0
While 1
$msg = GUIGetMsg()
If $msg == $GUI_EVENT_CLOSE Then Exit
Select
Case $msg = $btn
ExitLoop
Case $msg = $btn1
$_PIN &= 1
Case $msg = $btn2
$_PIN &= 2
Case $msg = $btn3
$_PIN &= 3
Case $msg = $btn4
$_PIN &= 4
Case $msg = $btn5
$_PIN &= 5
Case $msg = $btn6
$_PIN &= 6
Case $msg = $btn7
$_PIN &= 7
Case $msg = $btn8
$_PIN &= 8
Case $msg = $btn9
$_PIN &= 9
Case $msg = $btn0
$_PIN &= 0
Case $msg = $E
$_PIN = ""
EndSelect
WEnd
GUIDelete()
Opt("GUICoordMode", $OldCoord)
EndFunc
#EndRegion GUI/Func
Hier der Download: autoit.de/wcf/attachment/7574/
Ich habe soeben das Programm "einfach mal so" gestartet und einige mir bekannten Tricks probiert.
Unter Vista (32bit) hab ich einfach STRG+ALT+ENTF. gedrückt und Abmelden ausgewählt.
Da ich noch einige Prozesse offen hatte, fragte mich ein Infofenster, ob ich alle Prozesse beenden möchte.
DeskLock wurde sofort beendet. Wenn man einfach auf Abbrechen klickt, so kann man den Desktop wieder frei benutzen.
Mögliche Lösung wäre (wie oben schon gesagt wurde) die Idee mit den 2 .exe Dateien.Ich weiss nicht was passieren würde, wenn es keine aktiven Prozesse gäbe.
Das habe ich oben bereits auch schon geschrieben, dass das passiert
Es könnte sogar sein, dass, falls es mit zwei exen gemacht wird, auch beide gleichzeitig beendet werden würden oder wenn das nicht klappt, sich der PC aufhängt...
Man muss es einfach mal testen, aber ich vermute, dass es nichts helfen wird.
Da müsste man das Problem bei der Wurzel packen und herausfinden, warum das Programm immer beendet wird...
Du findest reshacker hier
Joa, jetzt hats geklappt. Danke für die Hilfe
Dann schonmal danke euch zwei!
ResEd habe ich zwar gefunden, aber wo könnte ich reshacker bekommen?
Habe folgenden Bug gefunden, den ich lieber nicht posten möchte, da er sonst ausgenutzt werden kann...
Bei deinme Sript muss man einfach nur auf Strg+Alt+Entf drücken und dann auf abmelden. Wegen deinem Sript kann er sich nicht abmelden und beendet es deshalb nach kurzer Zeit. Nachdem das Sript beendet wurde hört er mit dem abmelden plötzlich auf und man kann ganz normal weitermachen.
Ich habe Vista.
Vermutlich lässt sich der Bug fast nicht beseitigen: Entweder man verhindert das abmelden ganz, was ich auf keinen Fall machen würde oder man richtet es so ein, dass es beim Abmelden keine Probleme verursacht und man sich sofort abmeldet...
Noch eine andere Frage: Wie bestätigt man sein eingegebenes Kennwort? Bei mir kann ich weder Enter drücken, noch gibts da irgendeinen Button für...
LG FKFK
Hallo zusammen,
ich würde gerne eine DLL mit verschiedenen Icons drin erstellen. Diese würde ich dann auslesen und im Sript einbinden...
Wie das mit dem auslesen geht, weiß ich.
Leider habe ich aber keine Ahnung, wie man eine DLL erstellt, geschweigedenn, wie man darin Icons einfügt.
Vielleicht kann mir ja jemand weiterhelfen
LG FKFK
Ist doch in dem Pseudocode von mir drin Opt() gibt den alten Wert zurück, einfach zurücksetzen, wenn du es nicht mehr brauchst.
Hmmmm, ich habe zwar irgendwie nicht verstanden, warum dein Code funktionieren sollte, aber er hat trotzdem geklappt
Kann das sein, dass sich nach Beenden der Funktion der Wert zurücksetzt bzw. wenn man den gleichen Wert nochmals eingibt, dass er dann auf Standart zurückgestellt wird? Sorry, hab irgendwie nicht kapiert, wie es geklappt hat, sondern nur dass
Du solltest den GUICoord-Mode in deiner Funktion setzen, sonst kommen noch mehr solche Beiträge
Ja, das stimmt!
Nur suche ich noch nach einer Möglichkeit, wie man das einbauen kann, ohne dass ein bisheriger GUICoord-Mode überschrieben wird, der evtl. bereits gesetzt wurde.
Alles anzeigenSchau dir mal die Koordinaten an.
Wenn man schon C&P macht, dann
sollte mal auch die Werte ändern. xDWas vielleicht auch schön wäre, wenn
du dir bei Google ein Originalbild von der
PIN-Tastatur ziehst, das klein schneidest
und die Bilder halt als Tasten verwenden
würdest.Du könntest auch ein "Eingabelimit"
einbauen und die Position des GUI's
abfragen in der Funktion, damit diese
nicht deine fest voreingestellte Position
benutzen muss.
MfG
qixx
Zu 1: Naja, bei mir klappt es trotzdem bei dir bestimmt auch, wenn du es ausprobierst
Zu 2: Das mit den Bildern ist eine gute Idee! Werde ich dann mal noch machen...
Zu 3: Über das Eingabelimit habe ich schon nachgedacht. Am besten werde ich das benutzerdefiniert integrieren... Was meintst du mit Position des GUIs abfragen?
Meinst du damit, falls man das Script in ein andres GUI einbinden möchte?