Schau Dir in der Hilfe mal AdlibEnable() an.
Damit kannst Du eine Funktion alle xxx Millisekunden ausführen lassen.
Beiträge von Oscar
-
-
@mehrsolala: Ja, wenn man die URL kennt, kann man auch _INetGetSource nutzen.
Observer: Naja, Firefox kann das eigentlich besser (per Kontextmenü auf dem Frame).
Ich wollte aber mal ein bißchen mit den IE-Funktionen rumspielen. Von daher war es eine gute Übung. -
Ich denke nicht, dass das so funktioniert, denn dazu müßtest Du ja die URL der Seite kennen, die in dem Frame angezeigt wird. Die ändert sich aber mit jedem Klick auf einen der Links.
Man müßte also die Seite anzeigen lassen und dann die gerade aktive Seite auslesen.
Ich habe mal ein Beispielscript erstellt, bei dem man per Hotkey (ALT+s) den Quelltext des Frames angezeigt bekommt.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include<WindowsConstants.au3>
#include<EditConstants.au3>
#include <IE.au3>
Opt('WinTitleMatchMode', 2)
$oIE = _IECreate('www.elektronik-kurs.de') ; <-- hier die Frame-Url eintragen
$oFrame = _IEFrameGetObjByName($oIE, 'inhalt') ; <-- hier den Namen des Frames eintragen
$Gui = GUICreate('', 800, 600, 0, 0)
$Edit = GUICtrlCreateEdit('', 5, 5, 790, 590)
GUICtrlSetFont(-1, 10, 400, 0, 'Courier New')
GUISetState()
HotKeySet('!s', '_ReadSource') ; Hotkey: [Alt] + [s]
Do
If Not WinExists('Microsoft Internet Explorer') Then Exit
Until GUIGetMsg() = -3
WinClose('Microsoft Internet Explorer')Func _ReadSource()
[/autoit]
$sHTML = _IEDocReadHTML($oFrame)
GUICtrlSetData($Edit, $sHTML)
EndFunc -
Ich bin mir nicht so sicher, ob das die langsamste Möglichkeit ist.
Mit der Funktion, zu der ich damals den Link gepostet habe, müßtest Du die Datei erst einlesen und dann den String an die Funktion übergeben.
Eine externe md5.exe oder dll ist möglicherweise in C oder so geschrieben und wäre dadurch deutlich schneller, gerade beim erstellen von Checksummen von größeren Dateien.Ich habe aber noch keinen Vergleichstest gemacht...
-
Wir hatten ja in "Hilfe & Unterstützung" bereits das Thema mit dem erweiterten Tooltip.
Jetzt habe ich mir gedacht, dass es doch ganz nett wäre, wenn man dort auch ein HTML-Dokument anzeigen lassen könnte. Das hätte den Vorteil, dass man nicht auf die eingeschränkte Ausgabe per Editfeld angewiesen ist. Außerdem kann man dann auch Hyperlinks dort anzeigen lassen.
Naja, lange Rede...ich habe das Script noch etwas verbessert.
Und es gibt jetzt eine Funktion: "_Txt2HTML", mit der man eine Textdatei nach HTML wandeln lassen kann.
Diese Funktion bietet außerdem die Möglichkeit bestimmte Schlüsselwörter automatisch als Hyperlinks erstellen zu lassen. Dazu muss man in der Funktion das Array "$aReplace" entsprechend anpassen.Noch nicht behobene Fehler:
-das Fenster kann nur mit Klick auf den oberen Rand verschoben werden.
Ich kriege den "embedded IE" nicht in den Vordergrund, also vor das transparente Label, deshalb ist das Label jetzt nur 10 Pixel hoch.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#NoTrayIcon ; Trayicon erstmal verstecken
#include<WindowsConstants.au3>
#include<GUIConstantsEx.au3>
#include<IE.au3>Opt('GUIOnEventMode', 1) ; OnEventMode für die GUI
[/autoit] [autoit][/autoit] [autoit]
Opt('TrayOnEventMode', 1) ; OnEventMode für das Traymenü
Opt('TrayMenuMode', 1) ; Standard-Traymenü entfernen$sTitle = 'HTML Tooltip'
[/autoit] [autoit][/autoit] [autoit]
$BgColor = 0xFFFFDF ; Hintergrundfarbe
$ShColor = 0x666666 ; Schattenfarbe
$Width = 500 ; Breite des Fensters
$Height = 300 ; Höhe des Fensters
$Left = Int(@DesktopWidth/2-$Width/2) ; Horizontale Position (zentriert)
$Top = Int(@DesktopHeight/2-$Height/2) ; Vertikale Position (zentriert)$sSourceFile = @ScriptDir & '\beispieltext.txt'
[/autoit] [autoit][/autoit] [autoit]
$sDestFile = @ScriptDir & '\beispieltext.html'$sHTML = _Txt2HTML($sSourceFile) ; Den Text aus der Txt-Datei in HTML umwandeln
[/autoit] [autoit][/autoit] [autoit]$hFile = FileOpen($sDestFile, 2) ; Zieldatei zum schreiben öffnen
[/autoit] [autoit][/autoit] [autoit]
FileWrite($hFile, $sHTML) ; HTML in Datei schreiben
FileClose($hFile) ; Datei schließenGlobal Const $WS_EX_COMPOSITED = 0x2000000 ; Windows XP: Paints all descendants of a window in bottom-to-top painting order using double-buffering.
[/autoit] [autoit][/autoit] [autoit]$oIE = _IECreateEmbedded() ; Einen "eingebetteten" IE erstellen
[/autoit] [autoit][/autoit] [autoit]
If @error Then Exit MsgBox(16+262144, $sTitle, 'Objekt konnte nicht erstellt werden!') ; Falls dabei ein Fehler auftrat, Programm beenden$hGui = GUICreate($sTitle, $Width, $Height, $Left, $Top, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED)) ; Anzeigefenster erstellen
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor($BgColor) ; Hintergrundfarbe setzen
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_PrimeDown') ; zum bewegen des FenstersGUICtrlCreateObj($oIE, 10, 15, $Width-20, $Height-25) ; IE in die GUI integrieren
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
_IENavigate($oIE, $sDestFile) ; die HTML-Seite aufrufen$hContextMenu = GUICtrlCreateContextMenu() ; Kontextmenü erstellen
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateMenuItem('Minimieren', $hContextMenu) ; Minimieren-Eintrag erstellen
GUICtrlSetOnEvent(-1, '_Minimize') ; dem Eintrag eine Funktion zuweisen
GUICtrlCreateMenuItem('Beenden', $hContextMenu) ; Beenden-Eintrag erstellen
GUICtrlSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisenTrayCreateItem('Wiederherstellen') ; Traymenüeintrag erstellen
[/autoit] [autoit][/autoit] [autoit]
TrayItemSetOnEvent(-1, '_Restore') ; dem Eintrag eine Funktion zuweisen
TrayCreateItem('Beenden') ; Traymenüeintrag erstellen
TrayItemSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisen$hShadow = GUICreate('Shadow', $Width, $Height, $Left, $Top, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TRANSPARENT)) ; Schattenfenster erzeugen
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor($ShColor) ; Farbe des Schattens setzen
WinSetTrans($hShadow, '', 128) ; Transparenz des Schattens einstellen
_ShadowSize() ; Position und Größe des Schatten-Fensters setzenGUISetState(@SW_SHOW, $hShadow) ; Schatten anzeigen
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $hGui) ; GUI anzeigen
WinSetOnTop($hShadow, '', 1) ; Schatten immer im Vordergrund
WinSetOnTop($hGui, '', 1) ; GUI immer im VordergrundGUIRegisterMsg($WM_MOVE, '_ShadowMove') ; Funktion zum "Schatten verschieben" registrieren
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_SIZE, '_ShadowSize') ; Funktion zum "Schatten anpassen" registrierenWhile True ; Endlosschleife
[/autoit] [autoit][/autoit] [autoit]
Sleep(10) ; Prozessor entlasten
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _PrimeDown() ; Funktion von AspirinJunkie (http://www.autoit.de)
[/autoit] [autoit][/autoit] [autoit]
Local $DifX, $DifY, $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
Local $WinPos = WinGetPos(@GUI_WinHandle)
Local $MPos = MouseGetPos()
$DifX = $MPos[0] - $WinPos[0]
$DifY = $MPos[1] - $WinPos[1]
While $MouseData[2]
$MPos = MouseGetPos()
$WinPos = WinGetPos(@GUI_WinHandle)
If ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Then
WinMove(@GUI_WinHandle, '', $MPos[0] - $DifX, $MPos[1] - $DifY)
EndIf
Sleep(15)
$MouseData = GUIGetCursorInfo(@GUI_WinHandle)
WEnd
EndFuncFunc _Minimize()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $hShadow) ; Schatten verstecken
GUISetState(@SW_HIDE, $hGui) ; GUI verstecken
TraySetState(1) ; Trayicon anzeigen
EndFuncFunc _Restore()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $hShadow) ; Schatten wiederherstellen
GUISetState(@SW_SHOW, $hGui) ; GUI wiederherstellen
TraySetState(2) ; Trayicon verstecken
EndFuncFunc _ShadowMove()
[/autoit] [autoit][/autoit] [autoit]
Local $pos = WinGetPos($hGui) ; Fensterposition der GUI holen
WinMove($hShadow, '', $pos[0]+6, $pos[1]+6) ; das Schatten-Fenster entsprechend verschieben
EndFuncFunc _ShadowSize()
[/autoit] [autoit][/autoit] [autoit]
Local $pos = WinGetPos($hGui) ; Fensterposition der GUI holen
WinMove($hShadow, '', $pos[0]+6, $pos[1]+6, $pos[2], $pos[3]) ; das Schatten-Fenster entsprechend verschieben
EndFuncFunc _Txt2HTML($sFilename)
[/autoit]
If Not FileExists($sFilename) Then Return SetError(1,0,0)
Local $aSource = StringSplit(FileRead($sFilename), @CRLF, 1)
If Not IsArray($aSource) Then Return SetError(2,0,0)
; Das Array $aReplace enthält die Schlüsselwörter und die dazugehörigen URLs
; Diese Schlüsselwörter werden im generierten HTML-Dokument als Links erstellt
Local $aReplace[5][2] = [ _
['AutoIt v3','www.autoitscript.com'], _
['Windows','de.wikipedia.org/wiki/Microsoft_Windows'], _
['Skriptsprache','de.wikipedia.org/wiki/Skriptsprache'], _
['PCs','de.wikipedia.org/wiki/Personal_Computer'], _
['VBScript','de.wikipedia.org/wiki/Visual_Basic_Script'] _
]
Local $HTMLTitle = StringMid($sFilename, StringInStr($sFilename, '\', 0, -1)+1)
Local $sDest = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' & @CRLF & '<html>' & @CRLF
$sDest &= '<head>' & @CRLF & '<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">' & @CRLF
$sDest &= '<title>' & $HTMLTitle & '</title>' & @CRLF & '</head>' & @CRLF & '<body bgcolor="#FFFFEE">' & @CRLF
; In der folgenden Schleife werden die einzelnen Zeilen entweder als normaler Absatz
; oder als Überschrift erstellt.
; Wenn eine Zeile als Überschrift erstellt werden soll, darf die Zeile am Ende
; keines der folgenden Zeichen enthalten: ",.:!?" oder horizontales "Whitespace"
For $i = 1 To $aSource[0]
If $aSource[$i] = '' Then
ContinueLoop
ElseIf StringRegExp($aSource[$i], ',|\.|\:|!|\?|\h+\z') Then
$sDest &= '<p align="justify">' & $aSource[$i] & '</p>' & @CRLF
Else
If $i = 1 Then
$sDest &= '<h1>' & $aSource[$i] & '</h1>' & @CRLF
Else
$sDest &= '<h3>' & $aSource[$i] & '</h3>' & @CRLF
EndIf
EndIf
Next
$sDest &= '</body>' & @CRLF & '</html>' & @CRLF
For $i = 0 To UBound($aReplace)-1
$sDest = StringReplace($sDest, $aReplace[$i][0], '<a href="http://' & $aReplace[$i][1] & '" target="_blank">' & $aReplace[$i][0] & '</a>')
Next
Return $sDest
EndFuncZum ausprobieren habe ich zusätzlich zum Script noch einen Beispieltext angehängt. So könnt ihr sehen, wie der Text vorher und nachher aussieht.
Der Beispieltext muss sich dabei im gleichen Verzeichnis wie das Script befinden!Edit: Achso, ja...Screenshot:
FACEbotv1.au3Edit2: Fenster kann jetzt auf der gesamten Fläche mit der gedrückten linken Maustaste verschoben werden. Außerdem gibt es nun ein Resizing, das heißt: man kann das Fenster beliebig in der Größe verändern/ziehen.
-
Bugfix hat völlig Recht!
Wir haben hier täglich User, die die Forenregeln nicht lesen und irgendwelche Botfragen posten.
Deine Frage ist ebenso unverständlich. Lies Dir Deine Ursprungsnachricht nochmal durch und denk mal darüber nach, was ein anderer davon halten soll.
Wir können keine Gedanken lesen!
Poste Dein Script und formuliere Deine Frage(n) allgemeinverständlich und ausführlich, dann werden wir weitersehen... -
das gibt mir ja nen array zurück, aber ich weiss nicht, wie groß der ist?
Wozu gibt's UBound()?
-
Weißt Du, den Botvorwurf könntest Du ganz einfach dadurch entkräften, indem Du uns mitteilst, wozu Du das brauchst. Vielleicht findet sich auf diesem Weg auch eine ganz andere (bessere) Lösung für Dein Problem?!
Mit dem, was Du bisher gepostet hast, muss man davon ausgehen, dass Du eine Art Dauerfeuer für irgendein Game programmieren willst, was dann einem Bot schon verdammt nahe kommt.
Also...es liegt an Dir...
-
Mit einer MessageLoop-Schleife sieht es dann so aus:
[autoit]
[/autoit][autoit][/autoit][autoit]
GUICreate("TEST", 300, 100)$label = GUICtrlCreateLabel("test", 20, 20, 100, 20)
[/autoit][autoit][/autoit][autoit]
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetFont(-1, 14, 600, 4, 'Arial')
GUISetState()Do
[/autoit]
$msg = GUIGetMsg()
If $msg = $label Then ShellExecute("http://www.google.de")
Until $msg = -3 -
Nun, vielleicht hat keiner geantwortet, weil wir gemerkt haben, dass das sowieso wieder nur ein Bot (bitte Forenregeln beachten!) werden soll.
-
IniWrite schreibt den neuen Wert in die Inidatei, ändert aber doch nicht den Wert der Variablen $autostart.
-
Ich weiß ja nicht, was die unter "Schlafmodus" verstehen, aber wenn da noch ein Task läuft, dann kann der Rechner nicht aus sein.

-
und wie erklärst du dir dann diese programme?
Ein Shutdown oder Restart ist ja auch kein Problem.
Wenn Du allerdings ein Programm findest, mit dem man den Rechner zu einer bestimmten Zeit einschalten kann, dann sag mir bitte Bescheid. Sowas suche ich auch noch.
-
Ich hatte das bei dem _exToolTip.au3 nicht geändert, weil progandy ja das Script mit den Änderungen gepostet hat.
Das mit dem Font: Du meinst wahrscheinlich einen Nicht-proportionalen (Monospaced) Font, oder?
Weil 'Arial' ist ja proportional.Ok, hier dann das aktuelle Script:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#NoTrayIcon ; Trayicon erstmal verstecken
#include<EditConstants.au3>
#include<StaticConstants.au3>
#include<GUIConstantsEx.au3>
#include<WindowsConstants.au3>Opt('GUIOnEventMode', 1) ; OnEventMode für die GUI
[/autoit] [autoit][/autoit] [autoit]
Opt('TrayOnEventMode', 1) ; OnEventMode für das Traymenü
Opt('TrayMenuMode', 1) ; Standard-Traymenü entfernen$sTitle = 'Extended Tooltip'
[/autoit] [autoit][/autoit] [autoit]
$BgColor = 0xFFFFDF ; Hintergrundfarbe
$ShColor = 0x666666 ; Schattenfarbe
$Width = 320 ; Breite des Fensters
$Height = 200 ; Höhe des Fensters
$Left = Int(@DesktopWidth/2-$Width/2) ; Horizontale Position (zentriert)
$Top = Int(@DesktopHeight/2-$Height/2) ; Vertikale Position (zentriert)$hGui = GUICreate($sTitle, $Width, $Height, $Left, $Top, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) ; keine Titelleiste, kein Button in der Taskleiste
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor($BgColor) ; Hintergrundfarbe setzen
GUISetOnEvent($GUI_EVENT_CLOSE, '_End') ; [ESC] beendet das Programm$hLabel = GUICtrlCreateLabel('', 0, 0, $Width, $Height, Default, $GUI_WS_EX_PARENTDRAG) ; Transparentes Label zum verschieben des Fensters
[/autoit] [autoit][/autoit] [autoit]$hHead = GUICtrlCreateLabel('', 10, 10, $Width-20, 30, $SS_CENTER, $GUI_WS_EX_PARENTDRAG) ; Ein Label für die Überschrift
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 16, 600, 0, 'Arial') ; Größe und Zeichensatz der Überschrift setzen$hText = GUICtrlCreateEdit('', 10, 45, $Width-15, $Height-60, BitOr($WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), $WS_EX_TRANSPARENT) ; ein scrollbares Editfeld erstellen
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 10, 400, 0, 'Courier New') ; Größe und Zeichensatz vom Editfeld setzen
GUICtrlSetBkColor(-1, $BgColor) ; Hintergrundfarbe setzen
GUICtrlSetState(-1, $GUI_ONTOP) ; Das Editfeld nach vorne holen, damit man scrollen kann$hContextMenu = GUICtrlCreateContextMenu($hLabel) ; Kontextmenü erstellen
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateMenuItem('Minimieren', $hContextMenu) ; Minimieren-Eintrag erstellen
GUICtrlSetOnEvent(-1, '_Minimize') ; dem Eintrag eine Funktion zuweisen
GUICtrlCreateMenuItem('Beenden', $hContextMenu) ; Beenden-Eintrag erstellen
GUICtrlSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisenTrayCreateItem('Wiederherstellen') ; Traymenüeintrag erstellen
[/autoit] [autoit][/autoit] [autoit]
TrayItemSetOnEvent(-1, '_Restore') ; dem Eintrag eine Funktion zuweisen
TrayCreateItem('Beenden') ; Traymenüeintrag erstellen
TrayItemSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisen$hShadow = GUICreate('Shadow', $Width, $Height, $Left+6, $Top+6, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TRANSPARENT)) ; Schattenfenster erzeugen
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor($ShColor) ; Farbe des Schattens setzen
WinSetTrans($hShadow, '', 128) ; Transparenz des Schattens einstellenGUISetState(@SW_SHOW, $hShadow) ; Schatten anzeigen
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $hGui) ; GUI anzeigen
WinSetOnTop($hShadow, '', 1) ; Schatten immer im Vordergrund
WinSetOnTop($sTitle, '', 1) ; GUI immer im VordergrundGUIRegisterMsg($WM_MOVE, '_ShadowMove') ; Funktion zum "Schatten verschieben" registrieren
[/autoit] [autoit][/autoit] [autoit]$msg = 'In der großen Koalition sorgt der Zank um die Novelle des Gesetzes für das Bundeskriminalamt (BKA) weiter für Unmut. Vor allem Bundesinnenminister Wolfgang Schäuble ist nach wie vor erzürnt über den Widerstand auch aus SPD-regierten Ländern gegen die vom Bundestag abgesegnete Ausweitung der BKA-Befugnisse einschließlich einer Lizenz für heimliche Online-Durchsuchungen.'
[/autoit] [autoit][/autoit] [autoit]
$msg &= '"Die Führung der Partei kann ihre Entscheidungen derzeit nicht durchsetzen", klagte der CDU-Minister dem "Focus" sein Leid. Der Koalitionspartner befinde sich in einer "akuten Krise". Eine "Handvoll Jusos" in Sachsen könne das Inkrafttreten eines jahrelang beratenen Gesetzes verzögern, schimpfte Schäuble gegen das erste Nein eines Landes gegen das Vorhaben, in dem die Sozialdemokraten mit an der Macht sind.'GUICtrlSetData($hHead, 'Streit um BKA-Gesetz') ; Überschrift anzeigen
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($hText, $msg) ; denText anzeigenWhile True ; Endlosschleife
[/autoit] [autoit][/autoit] [autoit]
Sleep(10) ; Prozessor entlasten
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _Minimize()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $hShadow) ; Schatten verstecken
GUISetState(@SW_HIDE, $hGui) ; GUI verstecken
TraySetState(1) ; Trayicon anzeigen
EndFuncFunc _Restore()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $hShadow) ; Schatten wiederherstellen
GUISetState(@SW_SHOW, $hGui) ; GUI wiederherstellen
TraySetState(2) ; Trayicon verstecken
EndFuncFunc _ShadowMove()
[/autoit]
Local $pos = WinGetPos($hGui) ; Fensterposition der GUI holen
WinMove($hShadow, '', $pos[0]+6, $pos[1]+6) ; das Schatten-Fenster entsprechend verschieben
EndFunc -
Nein, das Flag dient dazu zu bestimmen, ob Du nur die Dateien, nur Verzeichnisse oder beides in dem Array zurückbekommen möchtest.
In jedem Fall wird aber nicht der gesamte Pfad zurückgegeben. Wenn Du den anschließend benötigst, musst Du ihn noch hinzufügen. -
Raupi : Ja, ich weiß! Das war auch eher ironisch gemeint, weil er das ja per AutoIt einstellen will.
Bei den meisten BIOS'en kann man ja auch ein Hochfahren zu einer bestimmten Uhrzeit einstellen. Ich glaube aber nicht, dass man den Wert von Windows (AutoIt) aus ändern kann. -
da gibt es bestimmt eine hardwarelösung.
Ja, diese Hardware nennt sich: Zeitschaltuhr

-
Schau Dir mal GUICtrlSetResizing() an.
-
Du fragst die Variable doch bei jedem Klick auf das TrayItem ab: If $autostart = 4 Then...
Wenn Du sie dann nicht änderst, dann behält die Variable den Wert, den Du ihr am Anfang per IniRead zugewiesen hast. -
Du musst auch die Variable anpassen, wenn Du den Status änderst:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <Constants.au3>;Ini
[/autoit] [autoit][/autoit] [autoit]
$ini = @ScriptDir & "\autostart.ini"
$autostart = IniRead($ini, "Konfiguration", "Autostart", 4)Opt("TrayMenuMode", 1)
[/autoit] [autoit][/autoit] [autoit];GUI
[/autoit] [autoit][/autoit] [autoit]
GUICreate("Autostart", 300, 80, -1, -1)$button_suche = GUICtrlCreateButton("OK", 100, 40, 100, 25)
[/autoit] [autoit][/autoit] [autoit];Tray
[/autoit] [autoit][/autoit] [autoit]
$tray_autostart = TrayCreateItem("Mit Windows starten")
$tray_Info = TrayCreateItem("Info")
TrayCreateItem("")
$tray_exit = TrayCreateItem("Beenden")
TraySetClick(8);Ini Überprüfung
[/autoit] [autoit][/autoit] [autoit]
If $autostart <> 4 Then
TrayItemSetState($tray_autostart, 1)
Else
TrayItemSetState($tray_autostart, 4)
EndIfGUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg() ;GUI
$msg_tray = TrayGetMsg() ;Tray;GUI
[/autoit] [autoit][/autoit] [autoit]
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_MINIMIZE
GUISetState(@SW_HIDE)
EndSwitch;Tray
[/autoit]
Switch $msg_tray
Case $TRAY_EVENT_PRIMARYDOUBLE
GUISetState(@SW_SHOW)
Case $tray_autostart
If $autostart = 4 Then
TrayItemSetState($tray_autostart, 1)
IniWrite($ini, "Konfiguration", "Autostart", 1)
$autostart = 1 ; <- Eingefügt
Else
TrayItemSetState($tray_autostart, 4)
IniWrite($ini, "Konfiguration", "Autostart", 4)
$autostart = 4 ; <- Eingefügt
EndIf
Case $tray_Info
MsgBox(64, "Info", "By Mehmex")
Case $tray_exit
Exit
EndSwitch
WEnd