Stimmt, eine Frage wäre nicht schlecht gewesen Ja ich möchte wissen, wie ich diesen Event auslöse.
Deine Lösung funktioniert. Wie sieht es dabei mit der Performance aus, wenn ständig das Input-Feld ausgelesen werden muss?
Stimmt, eine Frage wäre nicht schlecht gewesen Ja ich möchte wissen, wie ich diesen Event auslöse.
Deine Lösung funktioniert. Wie sieht es dabei mit der Performance aus, wenn ständig das Input-Feld ausgelesen werden muss?
Ich erstelle mir mittels GuiCtrlCreateInput() ein Eingabefeld.
Wird jetzt ein Buchstabe in dieses Feld eingetragen, soll ein Event ausgelöst bzw. eine Funktion aufgerufen werden.
Zweck ist es eine Live-Suche zu implementieren, sodass nach jedem Tastendruck das Suchergebnis weiter verfeinert wird.
Es gibt Schlimmeres. Ich hab nur versucht das Verhalten bei MsgBox auf GuiCreate zu übertragen.
Dann gehts wohl doch nur mit:
[autoit]GUISetState(@SW_DISABLE, $gui)
[/autoit]Nur das Hauptfenster soll deaktiviert werden. Alle sonstigen "externen" Fenster haben die Anwendung nicht zu interessieren
Wie wärs denn, wenn du ein wirkliches CHILD-Window erstellst? Lies die Hilfe zu den Styles.
Ein wirkliches CHILD-Window? Wie sieht der GuiCreate-Aufruf dafür denn aus?
Die Hilfe habe ich bereits gelesen. Habe auch fast alle Styles (bzw. ExStyles) in fast allen Kombinationen ausprobiert, aber nie kam ich zum gesteckten Ziel.
Hallo zusammen,
übergebe ich der MsgBox-Funktion den Window-Handle des Hauptfensters, wird dieses inaktiv geschaltet
[autoit]$gui = GUICreate("Hauptfenster")
GUISetState(@SW_SHOW)
MsgBox(0, "MsgBox", "", 0, $gui)
Bei diesem Beispiel ist es nicht möglich auf das Hauptfenster zuzugreifen, solange die MsgBox noch geöffnet ist.
Dieses Verhalten möchte ich gern bei zwei Fenstern erzielen. Hier klappt es leider nicht:
[autoit]#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]$gui = GUICreate("Hauptfenster")
GUISetState(@SW_SHOW)
$child_gui = GUICreate("Kindfenster", 100, 100, -1, -1, -1, -1, $gui)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Ich kann trotz geöffnetem Kindfenster auf das Hauptfenster zugreifen.
GUISetState(@SW_DISABLE, $gui)
[/autoit]
Das wäre eine Möglichkeit, aber kann man es nicht über die Styles des Kindfensters bzw. Hauptfensters erreichen?
Vielen Dank im Voraus
Als Ansatz schau dir mal _IsPressed() an. Vielleicht kann man damit sowas realisieren, obwohl es eher umständlich wäre.
Hallo zusammen,
anscheinend bietet SQLite keine Möglichkeit die Datenbank-Datei zu verschlüsseln, sodass jemand, der die Datei besitzt, auch alle Daten einsehen kann.
Entweder müsste ich alle Daten, die in die DB geschrieben werden, verschlüsseln oder eine verschlüsselbare andere DB nutzen.
Gibt es andere unterstützte Datenbanken, für die fertige Libraries wie die SQLite.au3 existieren?
Gruß
Ok, danke für die Info.
Dann muss ich es wirklich über eine Hilfsfunktion regeln.
Ich habe folgendes Script:
[autoit]Dim $ar[2][3]
$ar[0][0] = "00"
$ar[0][1] = "01"
$ar[0][2] = "02"
$ar[1][0] = "10"
$ar[1][1] = "11"
$ar[1][2] = "12"
Ich möchte nun eine "Zeile" des 2D-Arrays an eine Funktion übergeben. Versucht habe ich es so:
funktionsname($ar[0])
[/autoit]
Ziel ist es, dass in der Funktion ein Array zur Verfügung steht, dass 3 Elemente besitzt.
In diesem Beispiel wären das die Elemente 00, 01, 02.
Weiß jemand Rat?
Viele Grüße
Habe es jetzt etwas unschön, aber funktionierend gelöst:
[autoit]INetGet($url, $lokale_datei))
If INetGetSize($url) <> FileGetSize($lokale_datei) Then
Return False
Else
Return True
EndIf
P.S. Hm warum funktioniert die Formatierung nicht?
Sowohl Ziel- als auch Quellpartitionen sind NTFS-formatiert.
Ich nutze FTP, da ich das AutoIt-Script als SYSTEM laufen lassen muss. Somit fällt die komfortable Netzwerkfreigabe weg.
Was gibt es denn für Alternativen zu FTP (oder HTTP[s])?
$url = "ftp://user:pw@ip/datei.exe"
MsgBox(0, "", INetGetSize($url))
gibt mir 4091805696 aus (also 3,81 GB).
Führe ich nun
$lokale_datei = "C:\datei.exe"
MsgBox(0, "", INetGet($url, $lokale_datei))
aus, wird die zwar Datei kopiert, ich bekomme aber 0 (=Failure) zurück.
Ist INetGet auf eine maximale Größe beschränkt, bis zu der der Return-Wert korrekt ist?
Mit ShellExecute wird die Anwendung ebenfalls als SYSTEM gestartet.
Die Anwendung kann über folgenden Weg als Administrator (bzw. gerade angemeldeter User) ausgeführt werden:
[autoit]
Send("#r")
Send("D:\test.exe{ENTER}")
Leider steht mir die Taskleiste nicht immer zur Verfügung, sodass diese Möglichkeit weg fällt.
Und warum kann der Dienst nicht als SYSTEM laufen?
Da die dann gestartete test.exe kein Zugriff auf andere externe Programme hat - ebenfalls mit der Fehlermeldung ERROR_ACCESS_DENIED.
[...] Bei den Diensten gibt es für diesen Fall eine Option die sich 'Datenaustausch zwischen Dienst und Desktop zulassen'.
Das stimmt. Diese Option gibt es. Leider gibt es diese Option nur bei dem System-Konto.
Logge ich mich als Administrator ein und lasse den Dienst als Administrator laufen, erscheint trotzdem keine MsgBox.
Hallo Community,
ich habe mittels des Tools AppToService folgende exe-Datei zu einem Dienst gemacht:
[autoit];RunAsSet($admin_user, $admin_host, $admin_pw)
Run("D:\test.exe")
Das Programm test.exe besitzt folgenden Sourcecode:
MsgBox(0, "", @UserName)
[/autoit]Starte ich den Dienst als SYSTEM, muss die RunAsSet-Zeile auskommentiert bleiben, da sonst der Run-Befehl mit dem Fehler ERROR_ACCESS_DENIED (@extented = 5) fehlschlägt. Anschließend gibt test.exe natürlich SYSTEM als Benutzer aus.
Führe ich den Dienst als Administrator aus (RunAsSet nichtmehr auskommentiert), wird test.exe als Administrator gestartet, zeigt aber keine GUI-Elemente, in diesem Fall die MsgBox, an.
Hat jemand einen Trick oder evtl. kleines Zusatztool auf Lager, dass mir weiterhelfen könnte?
Viele Grüße
Für alle hier die Lösung des Problems:
[autoit]$ret = StringRegExp("123.45.", "^([0-9]+\.)+$")
MsgBox(0, "return", $ret)
gibt True zurück
[autoit]$ret = StringRegExp("123.45", "^([0-9]+\.)+$")
MsgBox(0, "return", $ret)
gibt False zurück
Durch ^ und $ wird Anfang und Ende des Strings markiert, sodass der gesamte String mit dem Pattern übereinstimmen muss.
ZitatOriginal von BugFix
Dass das nicht funzt scheint wohl eine Eigenheit der Autoit-Regex-Engine zu sein.
Da bin ich ja beruhigt, dass es bei andern auch nicht funktioniert.
Da werd ich es wohl mit StringSplit anhand des Punktes lösen.
Danke für die Hilfe.