Kannst Du nicht einfach mit "WinMove" die Fenster in der Größe anpassen?
Beiträge von Oscar
-
-
-
Vor allem: bei dem Gewicht und den Abmessungen ist in dem Akku bestimmt nicht nur das Schwermetall "Blei" enthalten.
Wurde vermutlich in Tschernobyl zusammengebaut und dann ist "aus Versehen" etwas anderes mit hineingeraten.
-
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Ja, bei meiner Box kann man das dynamisch ändern.
Das Problem bei $ES_PASSWORD ist, dass es sich nicht per GUICtrlSetStyle ändern lässt. Man muss das Input-Control löschen und neu erstellen (siehe mein Script).
-
Du kannst natürlich auch meine _LogInBox benutzen. [Werbung mach]

-
Antwort auf Dein Edit in Post #5.
Habe noch ein paar Änderungen vorgenommen. Jetzt bleiben die Einträge bestehen, auch wenn man das Explorerfenster schließt und es öffnet sich ein Explorerfenster (wenn keins offen ist) bei einem Klick auf einen Eintrag.Spoiler anzeigen
[autoit]
[/autoit]
#include <WindowsConstants.au3>
#include <ListBoxConstants.au3>
#include <GUIConstantsEx.au3>
Global Const $WS_EX_COMPOSITED = 0x02000000 ; Windows XP: Paints all descendants of a window in bottom-to-top painting order using double-buffering.
$hGui = GUICreate('Liste der zuletzt benutzten Verzeichnisse', 300, 430, @DesktopWidth-306, 0, BitOR($WS_SYSMENU, $WS_SIZEBOX), $WS_EX_COMPOSITED)
$hList = GUICtrlCreateList('', 5, 5, 290, 355, BitOr($GUI_SS_DEFAULT_LIST, $LBS_NOTIFY))
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
$hClear = GUICtrlCreateButton('Liste löschen', 110, 365, 80, 25)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKBOTTOM+$GUI_DOCKSIZE)
GUISetState()
WinSetOnTop($hGui, '', 1)
Global $sPath, $sOldPath = ControlGetText('[CLASS:CabinetWClass]', '', 'Edit1')
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hList
$sPath = GUICtrlRead($hList)
If $sPath <> '' Then
If ControlGetText('[CLASS:CabinetWClass]', '', 'Edit1') = '' Then
ShellExecute('explorer.exe', $sPath)
Else
ControlSetText('[CLASS:CabinetWClass]', '', 'Edit1', $sPath, 1)
ControlSend('[CLASS:CabinetWClass]', '', 'Edit1', '{ENTER}')
EndIf
EndIf
Case $hClear
GUICtrlSetData($hList, '')
EndSwitch
$sPath = ControlGetText('[CLASS:CabinetWClass]', '', 'Edit1')
If $sPath <> $sOldPath Then
$sOldPath = $sPath
If $sPath <> '' Then GUICtrlSetData($hList, $sPath)
EndIf
WEnd -
Grml Oscar war wieder schneller^^... warst es nicht sogar du der diese UDF geschrieben hatte?
Falls Du das hier (Rekursive Datei/Ordner Auflistung per Objekt) meinst, nein, die ist von BugFix.

-
Nur die Unterordner des angegebenen Verzeichnisses oder auch die Unterordner der Unterordner (also rekursiv)?
Beispiel für den ersten Fall:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
Global $size_gb = @CRLFIf $CmdLine[0] > 0 Then
[/autoit] [autoit][/autoit] [autoit]
$dir = $CmdLine[1]
Else
$dir = @ScriptDir
EndIf
If StringRight($dir, 1) <> '\' Then $dir &= '\'
$aFolder = _FileListToArray($dir, '*', 2)
If @error Then Exit MsgBox(16, 'Fehler', 'Verzeichnis existiert nicht!')
If $aFolder[0] = 0 Then Exit MsgBox(16, 'Fehler', 'Keine Unterverzeichnisse gefunden!')
For $i = 1 To $aFolder[0]
$size_gb &= $dir & $aFolder[$i] & '\' & @CRLF & ' Größe: ' & BinGB(DirGetSize($aFolder[$i])) & ' GB' & @CRLF & @CRLF
Next
;~ MsgBox(0, 0, $size_gb)
IniWrite(@YEAR & ".ini", $dir, @MON, $size_gb)Func BinGB($size_b) ;umrechnung von byte in gigabyte und runden
[/autoit]
Return Round($size_b / 1024 / 1024 / 1024, 2)
EndFunc ;==>BinGBIm letzteren Fall müsste man eine rekursive Funktion dafür verwenden.
-
Vermutlich für den Explorer?!
Dafür habe ich mal ein Script erstellt:
Spoiler anzeigen
[autoit]
[/autoit]
#include <WindowsConstants.au3>
#include <ListBoxConstants.au3>
#include <GUIConstantsEx.au3>
Global Const $WS_EX_COMPOSITED = 0x02000000 ; Windows XP: Paints all descendants of a window in bottom-to-top painting order using double-buffering.
$hGui = GUICreate('Liste der zuletzt benutzten Verzeichnisse', 300, 430, @DesktopWidth-306, 0, BitOR($WS_SYSMENU, $WS_SIZEBOX), $WS_EX_COMPOSITED)
$hList = GUICtrlCreateList('', 5, 5, 290, 355, BitOr($GUI_SS_DEFAULT_LIST, $LBS_NOTIFY))
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
$hClear = GUICtrlCreateButton('Liste löschen', 110, 365, 80, 25)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKBOTTOM+$GUI_DOCKSIZE)
GUISetState()
WinSetOnTop($hGui, '', 1)
Global $sPath, $sOldPath = ControlGetText('[CLASS:CabinetWClass]', '', 'Edit1')
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hList
$sPath = GUICtrlRead($hList)
If $sPath <> '' Then
ControlSetText('[CLASS:CabinetWClass]', '', 'Edit1', $sPath, 1)
ControlSend('[CLASS:CabinetWClass]', '', 'Edit1', '{ENTER}')
EndIf
Case $hClear
GUICtrlSetData($hList, '')
EndSwitch
$sPath = ControlGetText('[CLASS:CabinetWClass]', '', 'Edit1')
If $sPath <> $sOldPath Then
$sOldPath = $sPath
GUICtrlSetData($hList, $sPath)
EndIf
WEndEdit: Noch ein bißchen angepasst, sodass man es auch in der Größe verändern kann.
-
"Eine Exe in eine DLL einbinden"
Wozu soll das gut sein?Du kannst die Exe per FileInstall in Deine ScriptExe einbinden. Das reicht doch.
-
Nein, einfach mit einer DLL geht es nicht!
Und wenn es nicht viel Arbeit wäre, hättest Du ja gar kein Erfolgsgefühl, wenn Du es geschafft hast.
-
progandy hat da mal was erstellt: Progressbar mit GDIplus
Du darfst die Suche übrigens auch gern selbst mal benutzen.

-
Kleine Starthilfe:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
$hGui = GUICreate('Test', 320, 480, -1, -1)Global $ahButton[8], $ahDescription[8]
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 7
$ahButton[$i] = GUICtrlCreateButton('', 20 + Mod($i, 3) * 100, 10 + Int($i/3) * 100, 64, 64, $BS_ICON)
GUICtrlSetImage(-1, 'shell32.dll', -44)
$ahDescription[$i] = GUICtrlCreateLabel('Titel', 20 + Mod($i, 3) * 100, 80 + Int($i/3) * 100, 64, 16, $SS_CENTER)
Next
GUISetState()Do
[/autoit]
Until GUIGetMsg() = -3 -
Müsste das nicht eher so aussehen?
[autoit]
[/autoit][autoit][/autoit][autoit]
$count = 1550000Run("C:\Programme\Mozilla Firefox\firefox.exe")
[/autoit][autoit][/autoit][autoit]WinWaitActive("Mozilla Firefox")
[/autoit][autoit][/autoit][autoit]Sleep(5000)
[/autoit]
Do
$count = $count +1
ShellExecute("http://test.com/test.php?&thid=" & $count)
Sleep(0001)
Until $count > 1550999 -
Funktionen, die Du über einen Event (z.B. Buttonklick) aufrufst, musst Du so schnell wie möglich wieder verlassen, weil sonst keine weiteren Events abgearbeitet werden können.
Dein Problem könnte man so lösen:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>Global $startN = 500
[/autoit] [autoit][/autoit] [autoit]
Global $startH = 300
Global $startS = 200#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Vorräte", 747, 600, 190, 122)
$Button1 = GUICtrlCreateButton("Nahrung abbauen", 16, 40, 99, 25, 0)
$Button2 = GUICtrlCreateButton("Stein abbauen", 136, 40, 99, 25, 0)
$Button3 = GUICtrlCreateButton("Holz abbauen", 256, 40, 99, 25, 0)
$Label1 = GUICtrlCreateLabel("Nahrung", 16, 8, 45, 17)
$Label2 = GUICtrlCreateLabel("Stein", 136, 8, 28, 17)
$Label3 = GUICtrlCreateLabel("Holz", 256, 8, 25, 17)
$Label4 = GUICtrlCreateLabel("500", 16, 100, 50, 20)
$Label5 = GUICtrlCreateLabel("200", 136, 100, 50, 20)
$Label6 = GUICtrlCreateLabel("300", 256, 100, 50, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###$vorkommenN1 = Random(200, 1000, 1)
[/autoit] [autoit][/autoit] [autoit]
$vorkommenH1 = Random(100, 500, 1)
$vorkommenS1 = Random(50, 250, 1)$abbauN = 0
[/autoit] [autoit][/autoit] [autoit]
$abbauS = 0
$abbauH = 0
AdlibEnable('abbau', 1000)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
abbauenN()
Case $Button2
abbauenS()
Case $Button3
abbauenH()
EndSwitch
WEndFunc abbau()
[/autoit] [autoit][/autoit] [autoit]
If $abbauN > 0 Then
$abbauN -= 10
GUICtrlSetData($Label4, GUICtrlRead($Label4) + 10)
If $abbauN <= 0 Then GUICtrlSetData($Button1, "Leer")
EndIf
If $abbauS > 0 Then
$abbauS -= 10
GUICtrlSetData($Label5, GUICtrlRead($Label5) + 10)
If $abbauS <= 0 Then GUICtrlSetData($Button2, "Leer")
EndIf
If $abbauH > 0 Then
$abbauH -= 10
GUICtrlSetData($Label6, GUICtrlRead($Label6) + 10)
If $abbauH <= 0 Then GUICtrlSetData($Button3, "Leer")
EndIf
EndFuncFunc abbauenN()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Button1, "wird abgebaut...")
$abbauN = $vorkommenN1
EndFunc ;==>abbauenNFunc abbauenS()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Button2, "wird abgebaut...")
$abbauS = $vorkommenS1
EndFunc ;==>abbauenSFunc abbauenH()
[/autoit]
GUICtrlSetData($Button3, "wird abgebaut...")
$abbauH = $vorkommenH1
EndFunc ;==>abbauenH -
P.S. Oscar .... Danke für das Bsp., probierst Du sowas einfach aus oder macht das die Erfahrung??
Kann ich gar nicht mehr so genau sagen. Hab ich wahrscheinlich mal beim Studium anderer Quellcodes gesehen und dann einfach ausprobiert.
Man kann die Befehle eigentlich beliebig verschachteln. Man muss nur darauf achten, dass der vorherige Befehl mit dem Returnwert des Nachfolgers zurechtkommt.
Wenn ich mich recht erinnere, gab/gibt es aber bestimmte Kombinationen die, obwohl die Parameter stimmen, nicht funktionieren. Mir fällt aber momentan kein Beispiel ein. -
-
Achso!
Nee, auch wenn ich AutoIt mag, aber an Sex denke ich dabei nicht.
Aber falls das jemanden antörnt, hier noch ein paar: StringStripCR und StringStripWS

-
ps: is das absicht mit "Strip" Comment.....
Äh...was? Absicht?
Verstehe ich jetzt nicht. Was meinst Du?