Mein Drucker zeigt während des druckens immer das Statusfenster an. Vielleicht hat Dein Drucker ja etwas ähnliches, dann kannst Du warten bis das Fenster geschlossen wird (drucken beendet).
Beiträge von Oscar
-
-
Netzwerk aktivieren/deaktivieren ...
Also deaktivieren mag ja noch gehen, aber wie Du das dann über's Netz wieder aktivieren willst???

SCNR.
-
Schade! Das ist auch nur der "physikalische" Wert. Also die max. mögliche DPI-Zahl.
Bei mir kommt da zum Beispiel "96" raus, was ja soweit auch korrekt ist. Zumindest solange ich mit der nativen Auflösung (1920x1200) meines Monitors arbeite. Schalte ich hingegen in eine geringere Auflösung, so wird dieser Wert nicht angepasst. Damit stimmt dann aber die Berechnung der Strecke in cm nicht mehr, denn 1024 geteilt durch 96 ergibt halt nur 10,67 Zoll oder 27,09 cm. Mein Monitor hat aber eine horizontale Größe von 50,8 cm.
Aber das Thema hatten wir ja schonmal...
-
Das steht alles in der Hilfe unter GUICtrlCreatePic:
"If a picture is set as a background picture, as the other controls will overlap, it's important to disable the pic control : GuiCtrlSetState(-1,$GUI_DISABLE)." -
Das war's von meiner Seite zu diesem Thema!
Ich leiste keinerlei Bot-Support. Weder hier noch als PM. -
Und warum soll das nicht funktionieren?
Sind die Variablen nicht global oder schließt Du das Fenster, bevor Du das Inputfeld ausliest oder...?
Zeig mal mehr (das Ganze) von Deinem Script... -
Ein Inputfeld von Deiner AutoIt-GUI oder von einem fremden Programmfenster?
-
Du musst den String und den Inhalt des Inputfeldes miteinander verbinden:
[autoit]Send(" Diesen Text hast du eingegeben:" & GUICtrlRead($i1))
[/autoit] -
Upps! So ist es natürlich noch besser!
Mache so wenig mit TABs... -
Ich habe das Beispiel aus der Hilfe entsprechend erweitert:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit]
Local $tab, $tab0, $tab0OK, $tab0input
Local $tab1, $tab1combo, $tab1OK
Local $tab2, $tab2OK, $aMsg, $actTab, $oldTab
GUICreate("My GUI Tab") ; will create a dialog box that when displayed is centeredGUISetBkColor(0x00E0FFFF)
[/autoit] [autoit][/autoit] [autoit]
GUISetFont(9, 300)$tab = GUICtrlCreateTab(10, 10, 200, 100)
[/autoit] [autoit][/autoit] [autoit]$tab0 = GUICtrlCreateTabItem("tab0")
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("label0", 30, 80, 50, 20)
$tab0OK = GUICtrlCreateButton("OK0", 20, 50, 50, 20)
$tab0input = GUICtrlCreateInput("default", 80, 50, 70, 20)$tab1 = GUICtrlCreateTabItem("tab----1")
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("label1", 30, 80, 50, 20)
$tab1combo = GUICtrlCreateCombo("", 20, 50, 60, 120)
GUICtrlSetData(-1, "Trids|CyberSlug|Larry|Jon|Tylo", "Jon") ; default Jon
$tab1OK = GUICtrlCreateButton("OK1", 80, 50, 50, 20)$tab2 = GUICtrlCreateTabItem("tab2")
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
GUICtrlCreateLabel("label2", 30, 80, 50, 20)
$tab2OK = GUICtrlCreateButton("OK2", 140, 50, 50)GUICtrlCreateTabItem("") ; end tabitem definition
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("label3", 20, 130, 50, 20)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]; Run the GUI until the dialog is closed
[/autoit]
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_PRIMARYDOWN
$actTab = GUICtrlRead($tab,1)
If $actTab <> $oldTab Then
$oldTab = $actTab
Switch $actTab
Case $tab0
MsgBox(0,0,'0')
Case $tab1
MsgBox(0,0,'1')
Case $tab2
MsgBox(0,0,'2')
EndSwitch
EndIf
EndSwitch
WEnd
EndFunc ;==>Example -
Wie wäre es, wenn Du das Script veröffentlichst?
-
Nur um zu sehen, wo das Script sich gerade befindet, gibst Du alles in Notepad aus?
ConsoleWrite oder Tooltip sollten für solche Aufgaben doch viel besser geeignet sein. Vor allem auch schneller.
-
Ich würde es einfach so machen (ohne die Funktion):
[autoit]
[/autoit]
Global $VA = IniRead('C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\HTPC.ini', "Auflösung", "Vertikal", "720")
Global $HA = IniRead('C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\HTPC.ini', "Auflösung", "Horizontal", "1280")
Dim $DefaultBild = @ScriptDir & "\htpc2.bmp"
Dim $Bild = IniRead('C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\HTPC.ini', "Hintergrundbilder", "HauptGUI", $defaultbild)
Global $HauptGUI = GUICreate("HTPC", $HA, $VA, -1, -1, BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
GUICtrlCreatePic ($Bild,0 ,0, $HA, $VA)
GUICtrlSetState(-1, $GUI_DISABLE)Und die absoluten Pfade lieber gegen @ScriptDir oder @AppDataDir austauschen.
-
Und was macht so ein Script im AutoIt-Forum?
Fremdgehen?
-
Was ist denn das für eine Programmiersprache?
AutoIt jedenfalls nicht.
-
Ich habe meine Desktopsperre mal etwas erweitert/verbessert.
Diese Version hier fragt nicht ständig den USB-Stick ab, sondern wartet auf eine Windowsmessage beim an-/abstecken des Sticks. Außerdem wird beim ersten Start die ID eines USB-Stick "registriert" und in einer Inidatei abgespeichert. Mit diesem registrierten Stick kann man dann den Desktop sperren/entsperren.
Zum beenden des Scripts dient die Tastenkombination [ALT] + [ESC].Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include<MenuConstants.au3>
#include<SendMessage.au3>
#include<WindowsConstants.au3>
#include<Misc.au3>Opt('GUICloseOnESC', 0)
[/autoit] [autoit][/autoit] [autoit]
Opt('TrayIconHide', 1)
Opt('TrayAutoPause', 0)
Opt('WinTitleMatchMode', 4)Global $gui_titel = 'Desktopsperre'
[/autoit] [autoit][/autoit] [autoit]
Global $sIni = @ScriptDir & '\Desktopsperre.ini'
Global Const $WM_DEVICECHANGE = 0x0219
Global Const $Off = 2, $On = -1
Global $hMonitor = WinGetHandle('classname=Progman')
Global $bLock = False, $bOnOff = False
Global $usbstor = 'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\usbstor\Enum'
Global $r = RegRead($usbstor, 'count')
If @error Then
MsgBox(48, 'Desktopsperre', 'Konnte Registryeintrag nicht lesen!' & $r)
Exit
EndIf
Global $sID = IniRead($sIni, 'ID', '1', '')
If $sID = '' Then _RegID()Global $gui = GUICreate($gui_titel)
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_DEVICECHANGE, 'MY_WM_DEVICECHANGE')While 1
[/autoit] [autoit][/autoit] [autoit]
sleep(10)
If $bLock() Then
_ToggleMonitor($hMonitor, $Off)
_MouseTrap(@DesktopWidth - 1, @DesktopHeight - 1, @DesktopWidth - 1, @DesktopHeight - 1); Maus in die untere, rechte Ecke setzen (einfrieren)
HotKeySet('!{Esc}'); Hotkey freigeben, damit das Programm nicht beendet werden kann
If WinExists('Windows Task-Manager') Then WinClose('Windows Task-Manager'); evtl. geöffneten Task-Manager schliessen
BlockInput(1)
Else
_ToggleMonitor($hMonitor, $On)
_MouseTrap(); Maus wieder freigeben
BlockInput(0)
HotKeySet('!{Esc}', '_End'); Hotkey (ALT+{Esc}) zum beenden des Programms einrichten
EndIf
Wend; Schleife fortsetzenFunc MY_WM_DEVICECHANGE($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _Unlock() Then; wenn die Funktion '1' zurückliefert (USB-Stick gesteckt), dann
$bLock = False
Else; wenn die Funktion '0' zurückliefert (USB-Stick abgezogen), dann
$bLock = True
EndIf
EndFuncFunc _Unlock()
[/autoit] [autoit][/autoit] [autoit]
For $count = 0 To RegRead($usbstor, 'count') - 1; Schleife für alle USB-Wechseldatenträger
If $sID = RegRead($usbstor, $count) Then Return 1; Stimmt die id mit der id eines gemounteten USB-Sticks überein, dann Funktion beenden
Next
Return 0; keine Übereinstimmung gefunden, dann '0' zurückgeben
EndFuncFunc _RegID()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, $gui_titel, 'Falls der USB-Stick momentan eingesteckt ist,' & @CRLF & 'bitte entfernen und dann auf [Ok] klicken!')
$count = RegRead($usbstor, 'count')
MsgBox(0, $gui_titel, 'Bitte jetzt den USB-Stick einstecken!' & @CRLF & 'Er wird automatisch erkannt.', 5)
While RegRead($usbstor, 'count') = $count
Sleep(100)
WEnd
$count = RegRead($usbstor, 'count')
$sID = RegRead($usbstor, $count - 1)
IniWrite($sIni, 'ID', '1', $sID)
MsgBox(0, $gui_titel, 'Dieser USB-Stick ist nun zum ent-/sperren des Desktop registriert!', 5)
EndFuncFunc _End()
[/autoit] [autoit][/autoit] [autoit]
If MsgBox(36, 'Desktopsperre', 'Programm beenden?') = 6 then Exit
EndFuncFunc _ToggleMonitor($hwnd, $OnOff)
[/autoit]
Local Const $WM_SYSCOMMAND = 274
Local Const $SC_MONITORPOWER = 61808
_SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $OnOff)
If @error Then
MsgBox(0,"_ToggleMonitor", "_SendMessage Error: " & @error)
Exit
EndIf
EndFunc -
Im Prinzip hast Du Recht. Er fragte aber nur nach dem Datum.
Dein Beispiel hat übrigens einen kleinen Fehler. So funktioniert's:
[autoit]
[/autoit]
#include <Date.au3>
$script_dir = @ScriptDir
If StringRight($script_dir, 1) <> "\" Then $script_dir &= "\"
$log=$script_dir & StringReplace(_NowCalcDate(), "/", "") & "-" & StringReplace(_NowTime(2), ":", "") & ".log"
MsgBox(0,"",$log) -
Du musst den geänderten String auch wieder der Variablen zuweisen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <File.au3>Global $files = "c:\USR\H4a185C\DSK\FLDR\"; Pfad der Dateien
[/autoit] [autoit][/autoit] [autoit]$files = _FileListToArray($files); Dateien einlesen
[/autoit]
_ArrayDisplay($files); Dateien + Anzahl ([0]) werden angezeigt
For $c = 1 To $files[0]
$files[$c] = StringReplace($files[$c], '-', 'replaced'); Fall ein "-" in einem String gefunden wird soll es mit replaced ersetzt werden
Next
_ArrayDisplay($files); Zeigt die Dateien (Sollte doch auch die Änderungen anzeigen, oder nicht?) -
Ich sehe gerade, dass Du FileOpen innerhalb der For...Next-Schleife stehen hast. FileOpen muss oberhalb von "For" stehen und nach "Next" dann das FileClose nicht vergessen!
Vermutlich hat sich AutoIt an den zu zahlreichen FileHandles "verschluckt".
-
Dann geht es so:
[autoit]
[/autoit]
$check = Random(5, 10, 1)
For $i = 0 To 99
MsgBox(0,"",$i )
If $i = $check Then
$check = Random(5, 10, 1) + $i
MsgBox(0,"","Test" )
EndIf
Next