Gibts oft weil das Setup z.b. in Flash ist. Bestes Beispiel alle Setups der aktuellen Adobe-Produkte.
War mir bisher nichtbekannt (hab ich bisher auch noch nicht gebraucht) Aber okay, dank dir
Gibts oft weil das Setup z.b. in Flash ist. Bestes Beispiel alle Setups der aktuellen Adobe-Produkte.
War mir bisher nichtbekannt (hab ich bisher auch noch nicht gebraucht) Aber okay, dank dir
Vielleicht kannst du den Code ja mal posten, dann könnte man einfacher helfen.
Spontan frage ich mich wieso dein Feld keine ID oder sonstiges hat. Ich würd dem ein Handle zuweisen und dann sollte das problem gelöst sein denke ich ...
Run("C:\Users\Nico\Desktop\Start\FO.exe")
[/autoit]
Grüße
Es ist nur eine Vermutung, aber ich glaub da muss "runas" stehen bleiben. Das heisst dann so viel wie: der Benutzer der grad das AutoIt Script ausführt muss der Admin sein. Wenn das nicht der Fall sein sollte müsstest du da glaub ich noch vorher Abfragen machen ...
Dann vielleicht folgendes Anschauen:
Du könntest es so machen:
Spoiler anzeigen
[autoit]Func ShellExecuteAs($username, $domain, $password,$logon_flags, $filename, $Param = '', $Workdir = '', $Verb = '', $Showflag = '')
[/autoit] [autoit][/autoit] [autoit][/autoit]
RunAs($username, $domain, $password, $logon_flags, @AutoItExe & ' /AutoIt3ExecuteLine "ShellExecute(''' & $filename & ''',''' & $Param & ''',''' & $Workdir & ''',''' & $Verb & ''',' & $Showflag &')"')
EndFunc ;==>ShellExecuteAsGefunden im französchischen Forum
Nicht getestet!
Quelle: [gelöst] ShellExecuteAs??
Suchst du vielleicht
[autoit]ShellExecute("\\ipdeslaufwerks\download\flashupdate\installer.msi","/quiet","","runas")
[/autoit]Hab das hier gefunden: Skript mit Administrator-Privilegien neu starten
Grüße
Ich hab da was gefunden was dich interessieren könnte: [gelöst] Scripte parallel bzw. gleichzeitig starten
Ich möchte dir nicht falsches erzählen, aber ich glaube AutoIt kann nicht mehr als 1 Script zur gleichen zeit laufen lassen.
Falls ich da nicht ganz falsch liege wäre die Frage ob die Möglichkeit besteht beide Script in ein programm zu kriegen wobei ich mir das nur schwer vorstellen kann wie das parallel ablaufen soll
Dir wird bestimmt noch jemand mit mehr Erfahrung ein Statement liefern
Grüße
autoBert ahh ich sehe ... ja ich habe SetStyle bei mir mal genutzt und war im Glauben es war auch ein exStyle ... nun ist es offensichtlich
Ich versteh nicht ganz worauf du hinaus magst, was damit zusammen hängen könnte das ich nicht ganz verstehe was dieser Style tun soll, aber wenn ich
[autoit]GUISetStyle($WS_EX_COMPOSITED)
[/autoit]nutze, dann wird der GUI Rahmenlos. Controls und Tabs bleiben unberührt ...
hmmm ?
Grüße YaeroxXO
Habs hinbekommen zwar etwas anders, aber nunja
@ECHO OFF
CLS
REM ------------------------------------------------------------
REM Name: create_txt_x10.BAT
REM Autor: YaeroxXO
REM Datum: 15 November 2012
REM ------------------------------------------------------------
ECHO Die Dateierstellung der txt-Dokumete wird gestartet ..
ECHO.
for /L %%i IN (1 1 10) do (
echo >> "H:\AutoIt\Automatische Ablaufsteuerung\Testszenario\neue_Dateien\%date%_at_%time:~0,2%%time:~3,2%%time:~6,2%-Datei_%%i.txt"
echo ... Datei_%%i.txt wurde erfolgreich erstellt!
)
ECHO.
ECHO Die Dateierstellung wurde abgeschlossen ...
REM -------------------------- E O F ---------------------------
@ECHO OFF
CLS
REM ------------------------------------------------------------
REM Name: create_txt_x10.BAT
REM Autor: YaeroxXO
REM Datum: 15 November 2012
REM ------------------------------------------------------------
ECHO Die Dateierstellung der txt-Dokumete wird gestartet ..
ECHO.
for /L %%i IN (1 1 10) do (
Set /a Zufall=%random%%38
echo >> "H:\AutoIt\Automatische Ablaufsteuerung\Testszenario\neue_Dateien\Datei_%Zufall%.txt"
)
ECHO.
ECHO Die Dateierstellung wurde abgeschlossen ...
REM -------------------------- E O F ---------------------------
wenn ich als Dateiname statt %Zufall% %%i nehme erstellt er 10 Dateien mit den namen Datei_1, Datei_2 ... Datei_10 ... wenn ich dort die Variable Zufall hinschreibe und vor und nach dem erstellen der Datei ein echo mache schreibt er mit 10x beide echos, erstellt aber nur eine Datei ...
Edit: habe in den beiden Testechos mal %Zufall% genommen ... der überschreibt die Variable nicht ... daher erstellt er 10x die Datei aber da es ein gleicher Name ist ist nur eine da...
Hallo liebe Com,
ich bau mir derzeit ein kleines testszenario für ein .au3 Script von mir wozu ich mir einige Batch "Programme" schreiben wollte.
Es sollen 10 Textdateien in einem Ordner /pfad/zum/ordner/textdateien/ mit zufällig generierten namen erstellt werden.
Es wird eine Datei erstellt, allerdings kann ich diese irgendwie nur im Verzeichnis der Batch Datei erstellen und es wird nur eine statt 10 erstellt.
Batch
@ECHO OFF
CLS
REM ------------------------------------------------------------
REM Name: create_txt.BAT
REM Autor: YaeroxXO
REM Datum: 15 November 2012
REM ------------------------------------------------------------
ECHO Die Dateierstellung der txt-Dokumete wird gestartet ..
ECHO.
for /L %%a IN (1 1 10) DO (
Set /a Zufall=%random%%38
echo Die Zufallszahl in dieser Datei ist: %Zufall% > txt_%Zufall%.txt
)
ECHO.
ECHO Die Dateierstellung wurde abgeschlossen ...
REM -------------------------- E O F ---------------------------
Alles anzeigen
Kann mir jemand helfen?
Das Klingt als ob ich hier auch mal helfen könnte *g* natürlich wie erwähnt bräuchten wir deinen Code
Habe in den vergangenen 6 Wochen sehr viel mit Tabs gearbeitet bis ich mich dann entschieden habe sie von 6 auf 2 zu reduzieren
Alles gute an euch 5en
War gestern nicht on von daher jetzt alles Gute nachträgtlich
Auch Gratulation von mir.
Gilt übrigens auch für „HassanMullah (44)“
Vielen Dank dafür Mega. Ich werd mal schauen was ich zum schluss dann nehme, bzw. was besser in der Handhabung ist. Danke soweit
Hallo Com,
ich arbeite momentan mit der UDF von 'peethebee': RestrictControlRegExp-UDF - Fehleingaben direkt verhindern, Eingabentypen festlegen und habe auch schon mit ihm gesprochen gehabt.
Mein Anliegen: Ich habe einen einzeiligen Input Ctrl indem eine Uhrzeit eingegeben werden soll. D.h. die UDF soll nach 2 Zeichen automatisch ein Zeichen einfügen.
Die Variante einfach 2 InputCtrls zu nehmen ist mir bekannt aber mir wäre wenn möglich die kleine Anpassung der UDF 1000x lieber.
Wahrscheinlich muss in der
[autoit]Func _RegEx_RestrictControl_check($hWnd, $msg, $wParam, $lParam)
[/autoit]etwas hinzugefügt werden.
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include "RestrictControlRegExp.au3"
_RegEx_RestrictControl_setup (1) ; prepare for up to 20 Controls to restrict
[/autoit] [autoit][/autoit] [autoit]Global $hGUI = GUICreate("", 120, 50)
Global $hINPUT = GUICtrlCreateInput("", 10, 5, 100, 20, $ES_WANTRETURN)
_RegEx_RestrictControl_add ($hINPUT, "^[012]{1}[0-9]{1}\:[0-6]{1}[0-9]{1}$", "13:37")
GUISetState(@SW_SHOW, $hGUI)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit", $hGUI)
; Wechsle in den OnEvent Modus
Opt("GUIOnEventMode", 1)
; Schleife
While 1
Sleep(100) ; beschäftigen, damit die CPU-Auslastung nicht zu hoch geht
WEnd
Func _exit()
Exit
EndFunc ;==>_exit
Mache ich aus:
; ===============================================================================
;
; UDF Name: RestrictControlRegExp.au3
; Description: This UDF can restrict the text typed into input controls live
; while typing based on a given Regular Expression.
; Requirement: AutoIt 3.2.0.1 or higher
; Author: peethebee ([email='peethebee@gmx.de'][/email], http://www.autoit.de)
; Notice: based on a script by gafrost in this thread:
; http://www.autoitscript.com/forum/index.ph…=guiregistermsg
;
; ===============================================================================
#include-once
[/autoit] [autoit][/autoit] [autoit]#include <EditConstants.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
;Global Const $WM_COMMAND = 0x0111
;Global Const $EN_CHANGE = 0x300
Global $array__RegEx_RestrictControl[1][4]
Global $array__RegEx_RestrictControl_id_count = 0
;===============================================================================
;
; Function Name: _RegEx_RestrictControl_setup
; Description: Sets up the features of this UDF.
; Parameter(s): $_re_rc_max_controls (opotional, default 10)
; defines how many controls gan be controlled at maximum
; Requirement(s): This UDF included
; Return Value(s): None.
; Author(s): peethebee
;
;===============================================================================
Func _RegEx_RestrictControl_setup($_re_rc_max_controls = 10)
GUIRegisterMsg($WM_COMMAND, "_RegEx_RestrictControl_check")
ReDim $array__RegEx_RestrictControl[$_re_rc_max_controls][4]
$array__RegEx_RestrictControl_id_count = 0
EndFunc ;==>_RegEx_RestrictControl_setup
;===============================================================================
;
; Function Name: _RegEx_RestrictControl_add
; Description: Sets up the controlling for a control.
; Parameter(s): $_re_rc_ctrlid
; ID of the control to be monitored
; $_re_rc_regex_pattern
; RegExp which has to be fullfilled or fullfillable
; $_re_rc_valid_string (optional, default "")
; Valid string for testing if RegExp can still be fullfilled.
; Requirement(s): This UDF included
; Return Value(s): None.
; Author(s): peethebee
;
;===============================================================================
Func _RegEx_RestrictControl_add($_re_rc_ctrlid, $_re_rc_regex_pattern, $_re_rc_valid_string = "")
$array__RegEx_RestrictControl[$array__RegEx_RestrictControl_id_count][0] = $_re_rc_ctrlid
$array__RegEx_RestrictControl[$array__RegEx_RestrictControl_id_count][1] = $_re_rc_regex_pattern
$array__RegEx_RestrictControl[$array__RegEx_RestrictControl_id_count][2] = $_re_rc_valid_string
$array__RegEx_RestrictControl[$array__RegEx_RestrictControl_id_count][3] = ""
$array__RegEx_RestrictControl_id_count += 1
EndFunc ;==>_RegEx_RestrictControl_add
;===============================================================================
;
; Function Name: _RegEx_RestrictControl_check
; Description: Internal processing function - not to be called from outside!
; Parameter(s): [...]
; Requirement(s): This UDF included
; Return Value(s): None.
; Author(s): peethebee (using gafrost's work as a basis)
;
;===============================================================================
Func _RegEx_RestrictControl_check($hWnd, $msg, $wParam, $lParam)
Local $nNotifyCode = _HiWord($wParam)
Local $nID = _LoWord($wParam)
Local $hCtrl = $lParam
;~ MsgBox(0, "", UBound($array__RegEx_RestrictControl, 1))
For $_re_rc_i = 0 To UBound($array__RegEx_RestrictControl, 1) - 1
If $nID = $array__RegEx_RestrictControl[$_re_rc_i][0] Then
If $nNotifyCode = $EN_CHANGE Then
; Check RegEx and set text
For $_re_rc_j = 0 To StringLen($array__RegEx_RestrictControl[$_re_rc_i][2])
$_re_rc_regex_res = 1
;~ MsgBox(0, "regexp string", GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0]) & StringTrimLeft($array__RegEx_RestrictControl[$_re_rc_i][2], $_re_rc_j))
If StringRegExp (GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0]) & StringTrimLeft($array__RegEx_RestrictControl[$_re_rc_i][2], $_re_rc_j), $array__RegEx_RestrictControl[$_re_rc_i][1]) Then ExitLoop
$_re_rc_regex_res = 0
Next
If $_re_rc_regex_res = 1 Then
; save string as "good" value for later resettability
$array__RegEx_RestrictControl[$_re_rc_i][3] = GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0])
Else
; reset Text to last known good value
GUICtrlSetData($array__RegEx_RestrictControl[$_re_rc_i][0], $array__RegEx_RestrictControl[$_re_rc_i][3])
EndIf
EndIf
EndIf
Next
; Proceed the default Autoit3 internal message commands.
; You also can complete let the line out.
; !!! But only 'Return' (without any value) will not proceed
; the default Autoit3-message in the future !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>_RegEx_RestrictControl_check
; helping function by gafrost
Func _HiWord($x)
Return BitShift($x, 16)
EndFunc ;==>_HiWord
; helping function by gafrost
Func _LoWord($x)
Return BitAND($x, 0xFFFF)
EndFunc ;==>_LoWord
folgendes:
Func _RegEx_RestrictControl_check($hWnd, $msg, $wParam, $lParam)
Local $nNotifyCode = _HiWord($wParam)
Local $nID = _LoWord($wParam)
Local $hCtrl = $lParam
;~ MsgBox(0, "", UBound($array__RegEx_RestrictControl, 1))
For $_re_rc_i = 0 To UBound($array__RegEx_RestrictControl, 1) - 1
If $nID = $array__RegEx_RestrictControl[$_re_rc_i][0] Then
If $nNotifyCode = $EN_CHANGE Then
; Check RegEx and set text
For $_re_rc_j = 0 To StringLen($array__RegEx_RestrictControl[$_re_rc_i][2])
$_re_rc_regex_res = 1
;~ MsgBox(0, "regexp string", GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0]) & StringTrimLeft($array__RegEx_RestrictControl[$_re_rc_i][2], $_re_rc_j))
If StringRegExp (GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0]) & StringTrimLeft($array__RegEx_RestrictControl[$_re_rc_i][2], $_re_rc_j), $array__RegEx_RestrictControl[$_re_rc_i][1]) Then ExitLoop
$_re_rc_regex_res = 0
Next
If $_re_rc_regex_res = 1 Then
; save string as "good" value for later resettability
$array__RegEx_RestrictControl[$_re_rc_i][3] = StringMid(GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0]), 1, 2) & ":" & StringMid(GUICtrlRead($array__RegEx_RestrictControl[$_re_rc_i][0]), 4, 2)
Else
; reset Text to last known good value
GUICtrlSetData($array__RegEx_RestrictControl[$_re_rc_i][0], $array__RegEx_RestrictControl[$_re_rc_i][3])
EndIf
EndIf
EndIf
Next
; Proceed the default Autoit3 internal message commands.
; You also can complete let the line out.
; !!! But only 'Return' (without any value) will not proceed
; the default Autoit3-message in the future !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>_RegEx_RestrictControl_check
So wird aus der Eingabe '1234' -> 12:4, aus '12345' -> 12:45 ... Der Doppelpunkt benötigt immernoch eine Eingabe, aber es ist egal welche.
Könnt ihr mir vll. helfen dies wie oben erwähnt zu verbessern?
'peethebee' meinte noch:
ZitatHab den Code gerade nicht da, aber auch keine Zeit im Moment. Der Reset-Part ist vermutlich die falsche Stelle für die Änderung. Mach das außerhalb der Fallunterscheidung (danach denke ich).[...]
Grüße und schonmal Danke im voraus
Erstmal danke für die UDF, ist nun zwar schon eine ganze Weile her, aber ich habe genau solch eien UDF grad gebraucht.
Eine kleine Idee meiner Seits wäre es vielleicht noch bei falscher Eingabe ein Infofenster hinzuzufügen wie es bei GUICtrlCreateInput mit $ES_NUMBER kommt.
Ich bin noch ein Anfänger daher weiss ich nicht ob dies einfach zu realisieren ist aber vll. liest es ja noch jemand und hätte Spaß daran
Grüße