dann stell bitte in deinem ersten Beitrag den gesamten Thread auf gelöst.
Danke Dir
dann stell bitte in deinem ersten Beitrag den gesamten Thread auf gelöst.
Danke Dir
meinst Du das begrenzen des Desktop's für darstellbare Fenster?
Wenn ja:
#include <winapi.au3>
[/autoit][autoit][/autoit][autoit]Const $SPI_SETWORKAREA = 47
Const $SPIF_SENDCHANGE = 2
$tRECT = DllStructCreate('int;int;int;int')
DllStructSetData($tRECT, 1, 0) ; left
DllStructSetData($tRECT, 2, 0) ; top
DllStructSetData($tRECT, 3, 1680) ; right
DllStructSetData($tRECT, 4, 1050) ; buttom
_WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
Hi lwl2011Bochum,
ZitatEs geht darum, wenn ich eine Anwendung baue und ein Update ermöglichen möchte. Und es sollen so z.B. durch ein Update neue Funktionen Frei geschalten werden bzw. um neue Funktionen erweitert werden. Und damit ich nicht immer gleich die exe Datei austauschen muss dachte ich, es gibt vll Art DLL Dateien.
Dll-Dateien kannst Du mit AutoIt wirklich nicht erstellen. Aber für Dein Vorhaben gibt es sicher auch andere Wege.
Vielleicht fragst Du einfach mal, wie andere das lösen.
Wird bestimmt ein interessanter Thread ![]()
$Computer_standbyeen wurde 3x deklariert ...
ich habe in einem ca.240 Zeilen Script noch nie so viele include's gesehen.
Allein dafür mal mein Kompliment... ![]()
Ob die wirklich alle nötig sind will ich jetzt aber nicht überprüfen ![]()
GUICtrlSetData($Input1,$i)
[/autoit]![]()
ich hätte mich vielleicht genauer ausdrücken sollen.
Aber genau das meinte ich ![]()
ZitatDiesen Vorgang kann man messen und auch im Ladebalken anzeigen.
um das mal alles abzukürzen ...
Dein Script/exe wird erst in dem Moment etwas tun (auch einen Ladebalken anzeigen),
wenn das gesamte Script auf dem Rechner geladen ist.
D.h. die Einzige Möglichkeit ist:
ein kleines Boot-Script für den Ladebalken.
Wenn dieses geladen ist wird damit der Ladebalken generiert und angezeigt.
Dieses lädt dann die eigentliche Exe lokal auf den Rechner.
Diesen Vorgang kann man messen und auch im Ladebalken anzeigen.
Das Gap des ersten Aufruf's musst Du mit Geduld ausgleichen ![]()
Na ich denke genau daran wird es liegen. ![]()
du musst den Pattern in '' setzen ![]()
$TestString = "User1|User2|User3|"
$Result = StringRegExp($TestString, '(.*?)(?=\|)', 1)
ConsoleWrite($Result[0])
deinem Forscherdrang folgend würde ich sagen:
_GUICtrlToolbar_SetButtonInfo
und der $iStyle: $BTNS_DROPDOWN
alles Gute auch von mir. ![]()
also bei mir funzt das einwandfrei mit Outlook 2010 ![]()
#include <INet.au3>
$rueckgabe = " "
$fehler = ""
GUICreate("Systeminfo",500,500)
$edit = GUICtrlCreateEdit("Systeminformationen laden",0,0,500,500)
GUISetState()
$pid = run(@comspec & " /k systeminfo","", @SW_HIDE,6)
While 1
$rueckgabe &= StdOutRead($pid)
If @error Then ExitLoop
$fehler &= StdErrRead($pid)
sleep(10)
Wend
GUICtrlSetData($edit, $rueckgabe)
$Addr = "name@domain.de"
$Subj = "Systeminformationen von " & @UserName & " an Administrator senden"
$Body = $rueckgabe
_INetMail($Addr, $Subj, $Body)
WinClose("Systeminfo")
dazu bitte einen neuen Thread eröffnen (anderes Thema)
oder erstmal die Hilfe durchsuchen ![]()
wenn das Thema für Dich damit gelöst ist,
dann bitte den Thread in deinem ersten Post auf "gelöst" setzen.
Ebenfalls Danke ![]()
büdde schön:
[autoit]$Label1 = GUICtrlCreateLabel("Minuten", 72, 202, 42, 17)
$Label2 = GUICtrlCreateLabel("Sekunden", 195, 202, 53, 17)
$Label3 = GUICtrlCreateLabel("Shutdown Programm by Nimmervoll Thomas", 8, 8, 214, 17)
$Sofort = GUICtrlCreateRadio("Sofort", 16, 168, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Spaeter = GUICtrlCreateRadio("Später", 130, 168, 113, 17)
GUISetState(@SW_SHOW)
GUISetState()
GUICtrlSetState($Sekunden, $GUI_DISABLE)
GUICtrlSetState($Minuten, $GUI_DISABLE)
; Run the GUI until the dialog is closed
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Spaeter
GUICtrlSetState($Sekunden, $GUI_ENABLE)
GUICtrlSetState($Minuten, $GUI_ENABLE)
Case $Sofort
GUICtrlSetState($Sekunden, $GUI_DISABLE)
GUICtrlSetState($Minuten, $GUI_DISABLE)
Case $Restart
If GUICtrlRead($Sofort) =
@SEC ist ein sogenanntes Makro.
Funktioniert in AutoIt eigentlich wie eine Variable,
nur das der Inhalt vom System reingeschrieben wird und nicht von Deinem Script.
D.h. Dein PC aktualisiert das Makro @SEC und schreibt immer die aktuelle Systemzeit da rein (in dem Fall die Sekunde)
Durch abspeichern der aktuellen Zeit (Sekunde) und dem darauf folgenden Vergleich
der von uns gespeicherten Variable ($sek) und der realen Zeit (@SEC) kannst Du festlegen,
dass nur bei einem Unterschied der beiden Werte eine Aktion ausgelöst werden soll.
Da diese Scripte im Millisekunden Bereich abgearbeitet werden beginnt mit einer vernachlässigbaren Verzögerung (zumindest in deinem Fall)
die erwünschte Aktion zu jeder "neuen" Sekunde.
Um diese Prüfung jede Sekunde zu wiederholen wird bei Unterschied und erfolgter Aktion einfach unsere Variable ($sek) mit dem aktuellen Wert aktualisiert(@SEC)
Damit stellst Du sicher, dass
1. Deine Aktion jede Sekunde nur einmal ausgeführt wird (verhindert auch das flackern bei der Aktualisierung eines Labels)
2. Deine Aktion mehr oder weniger genau (im Millisekunden Bereich) immer nach einer Sekunde ausgeführt wird.
puhh, so viel aktualisiert ... ![]()
Ich hoffe, dass war jetzt verständlich ![]()
so long
Schnuffel
ja, er gibt als Array einen Wert zurück in $StringSplit[1].
Mach mal einen MsgBox('','',UBound($$StringSplit))
dann wirst Du sehen ![]()