_ArrayDisplay sollte immer 1 oder einen Error zurückgeben.
Du kannst die aber ein eigenes _ArrayDisplay basteln, das sollte nicht so schwer sein. Die ganzen Buttons kannst du ja weglassen, wenn es dir nur ums Anklicken geht.
Beiträge von jjj
-
-
Du hast recht, es ist eine Variable, aber damit kann man den Stile Einer GUI festlegen.
[autoit]
Du kannst netürlich auch den Wert der Variable nehmen (0x00000040), der wird in WindowsConstants.au3 definiert.
Der sorgt dafür, dass die GUI innerhalb der Parent Fensters angezeigt wird, $WS_POPUP macht den Rand weg.#include <WindowsConstants.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>Example()
[/autoit][autoit][/autoit][autoit]Func Example()
[/autoit][autoit][/autoit][autoit]$gui = GUICreate("Test", 400,300)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
GUISetBkColor(0xFFFFFF, $gui)
$gui2 = GUICreate("", 169, 68, 20, 20, $WS_POPUP, $WS_EX_MDICHILD, $gui)
GUISetBkColor(0x000000, $gui2)
GUISetState(@SW_SHOW, $gui)
GUISetState(@SW_SHOW, $gui2)Do
[/autoit][autoit][/autoit][autoit]
Local $msg = GUIGetMsg()Until $msg = $GUI_EVENT_CLOSE
[/autoit]
EndFunc -
Stimmt, hast eigentlich recht.
Hatte nur gerade eh nichts besseres zu tun.
-
Hab mal eben was gemacht, was in die richtige Richtung gehen könnte:
[autoit]Func _Input()
[/autoit][autoit][/autoit][autoit]
$Form1_1 = GUICreate("Frage", 389, 213, 527, 211)
$Input1 = GUICtrlCreateInput("", 24, 128, 353, 26)
$lblFrage = GUICtrlCreateLabel("Frage", 24, 24, 49, 22)
$btnOK = GUICtrlCreateButton("ok", 296, 168, 75, 25)
$btnCancel = GUICtrlCreateButton("Cancel", 176, 168, 99, 25)
GUISetState(@SW_SHOW)
$a = TimerInit()
$change = ""
While sleep(50)
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
ExitLoopCase $btnOK
[/autoit]
Case $btnCancel
EndSwitch
If $change <> GUICtrlRead($Input1) Then
$change = GUICtrlRead($Input1)
$a = TimerInit()
EndIf
If TimerDiff($a) > 2000 Then
ExitLoop
EndIf
WEnd
Return GUICtrlRead($Input1)
EndFunc
Das returnt die Eingabe, wenn man 2 sec. nichts mehr eingegeben hat. -
Habe es selber noch nie benutzt, aber vielleicht könnte dir das helfen:
[autoit]GUICreate
[/autoit]
;und als erweiterten Stile:
$WS_EX_MDICHILD
Erstellt ein Child-Fenster innerhalb seines Parent-Fensters (als Simulation, nicht wirklich MDI). -
Verstehe ich das richtig, dass du die einzelnen Programme nicht ändern willst, sondern sie so wie sie sind aufrufen willst und die dann in dem Fenster sind?
-
Danke an euch beide!
Funktioniert super!!!
-
Hallo,
Ich habe mir vor kurzem ein virtuelles Laufwerk angelegt, das muss allerdings bei jedem Start verbunden werden. Das habe ich mit einer .bat gelöst, die im Autostart liegt.
die vht.txt sieht so aus:Jetzt öffnen sich aber bei jedem Start zwei Eingabeaufforderungen.
Kann jemand das in AutoIt so umsetzen, dass alles im Hintergrund abläuft?
(Ich glaube man braucht Adminrechte dafür, die dürfen natürlich erfragt werden.)Schonmal Danke.
-
Ich habe es zwar nicht ausprobiert, würde aber sagen, dass du die erste Endlosschleife entfernen solltest, da das Script sonst gar nicht bis zu der Mausabfrage kommt.
Ansonsten könnte es daran liegen, dass $Button_r immer überschrieben wird, und es somit nur in $rp funktioniert. -
Und wie kann ich das im .jar Format machen?
Da ist ja kein cmd Fenster. -
-
Hallo,
Weiß jemand, wie ich alles Fehlermeldungen, die in der CMD stehen, weil z.B. eine Datei nicht geöffnet werden kann, in einer Datei speichern kann?
Am besten zusammen mit den System.out.println() Ausgaben.
Es sollte auch in der .jar Form funktionieren.Ich hoffe, ihr wisst was ich meine.
Danke schonmal im Vorraus! -
-
Bei GUICtrlCreateButton einfach die länge und die höhe weglassen, also GUICtrlCreateButton( "text", left, top ), das sollte funktionieren.
-
Ich würde sagen, man kann alles um setzten, wo keine zu hohen Zahlen als zwischenergebnis herauskommen, was bei RSA der Fall wäre.
-
Was Hotkeys angeht, ist das in der Hilfe gut beschrieben: http://translation.autoit.de/onlinehilfe/fu…s/HotKeySet.htm
Ich muss dich aber enttäuschen: Win+D ist von Windows reserviert.Statt des Hotkeys kannst du es so versuchen:
[autoit]#include <Misc.au3>
[/autoit][autoit][/autoit][autoit]Local $hDLL = DllOpen("user32.dll")
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
If _IsPressed("44", $hDLL) And (_IsPressed("5B", $hDLL) Or _IsPressed("5C", $hDLL)) Then ; Wenn Win+D gedrückt wurde
WinSetState("[CLASS:Sticky_Notes_Note_Window]", "", @SW_RESTORE)
While _IsPressed("44", $hDLL) And (_IsPressed("5B", $hDLL) Or _IsPressed("5C", $hDLL)); Warten solange Win+D gedrückt ist
sleep(10)
WEnd
EndIf
Sleep(10)
WEndDllClose($hDLL)
[/autoit]
Was das Blockieren des Buttons angeht muss ich passen. -
Du brauchst das Include nicht unbedingt, so weit ich weiß hat $MB_SYSTEMMODAL den Wert 4096.
-
Die Fehlermeldung bekommst du weg, indem du _IsPressed("1B") schreibst, das steht aber auch in der Hilfe dazu.
-
Ok, es würde schon reichen, wenn der exit befehl, und das beenden durch herunterfahren verhindert würden.
-
Ok, hab jetzt im Ohne Gegenleistung Forum eine Anfrage gemacht.
-
Hallo,
ich hatte schon im Hilfe & Unterstützung Forum gefragt, und wurde hierauf hingewiesen.Ich brauche, wie Hier auch schon beschrieben, eine Funktion, die das Schließen des laufenden Scriptes verhindert.
Das ist soweit auch schon fertig:Spoiler anzeigen
[autoit]#include <Security.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>#RequireAdmin
[/autoit] [autoit][/autoit] [autoit];Debug-Privlegien holen...
[/autoit] [autoit][/autoit] [autoit]
Local $hToken = _Security__OpenProcessToken(_WinAPI_GetCurrentProcess(), $TOKEN_ALL_ACCESS)
_Security__SetPrivilege($hToken, $SE_DEBUG_NAME, True)
_WinAPI_CloseHandle($hToken);Escape-Funktion registrieren
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{ESC}", "_Escape");Critical-Flag auf <TRUE> setzen
[/autoit] [autoit][/autoit] [autoit]
_WinAPI_SetProcessIsCritical(True);Hauptschleife
[/autoit] [autoit][/autoit] [autoit]
While True
Sleep(20)
WEndFunc _Escape()
[/autoit] [autoit][/autoit] [autoit]
;Critical-Flag auf <FALSE> setzen
MsgBox(0, "", _WinAPI_SetProcessIsCritical(False))
Exit
EndFuncFunc _WinAPI_SetProcessIsCritical($bState)
[/autoit]
$avReturn = DllCall("ntdll.dll", "int:cdecl", "RtlSetProcessIsCritical", "boolean", $bState, "ptr", 'none', "boolean", False)
Return $avReturn[0]
EndFunc
Die MsgBox, das man nicht die nötigen Berechtigungen hat, soll aber auch beim Admin kommen und der PC soll nicht wie bisher abkratzen.
WICHTIG:
Das Script muss ganz normal weiter laufen!Die Funktion sollte am besten so anzuwenden sein:
_Funktion(1) ; Für Beenden verhindern
_Funktion(0) ; Für Beenden wieder ermöglichenWär gut, wenn jemand Zeit findet, das umzusetzen.
Danke. -
Bei mir kommt der gleiche Fehler, wenn ich da ein Leer reinhaue.
[autoit]
Versuchs mal so:Local $oDiv = _IEGetObjById($IE, "Reports")
[/autoit]
ConsoleWrite(_IEPropertyGet($oDiv, "innertext") & @CRLF)
Exit