Beiträge von Micha_he
-
-
Lösung
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("Was habe ich für ein Betriebssystem?", 350, 40, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Input1 = GUICtrlCreateInput(@AutoItX64 , 8, 8, 233, 21)
$Label1 = GUICtrlCreateLabel("0=x32", 248, 8, 33, 17)
$Label2 = GUICtrlCreateLabel("1=x64", 288, 8, 33, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;_test() ; hier werden die Funktionen gestartet
;_test1()
_test2()
Sleep(20) ; wegen der Prozessorauslastung !
WEnd; am Ende die Funktionen. Sie müssen im Hauptprogramm aufgerufen werden.
[/autoit] [autoit][/autoit] [autoit]
func _test()
If @AutoITX64=1 Then
GUICtrlSetData($Input1, "x64")
EndIf
endfuncfunc _test1()
[/autoit] [autoit][/autoit] [autoit]
If @AutoITX64=0 Then
GUICtrlSetData($Input1, "x32")
EndIf
endfunc; ich würde die Funktionen in eine schreiben !
[/autoit]
func _test2()
If @AutoITX64=1 Then
GUICtrlSetData($Input1, "x64")
Else
GUICtrlSetData($Input1, "x32")
EndIf
endfunc -
Die Lösung heißt GUICtrlSetData() ! Steht in der Hilfe zu GUICtrlCreateProgress().
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]$BOLTEST = False
[/autoit] [autoit][/autoit] [autoit]
$FORM1 = GUICreate("Tool - by TuttiFrutti", 198, 20, -1, -1, $WS_POPUP, 0)
GUISetBkColor(16777215)$PROGRESS1 = GUICtrlCreateProgress(-1, -1, 198, 17)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit]
For $i = 0 to 100 step 5
sleep(60)
GUICtrlSetData($Progress1,$i)
Next
ProgressOff() -
Einige Punkte habe ich abgeändert. Schau mal ob Du damit weiterkommst:
Spoiler anzeigen
[autoit]#include <GuiConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <AVIConstants.au3>
#include <TreeViewConstants.au3>Global $user[5],$Telenr[5]
[/autoit] [autoit][/autoit] [autoit]; GUI
[/autoit] [autoit][/autoit] [autoit]
GuiCreate("Sample GUI", 400, 400); TAB
[/autoit] [autoit][/autoit] [autoit]
GuiCtrlCreateTab(10, 0, 380, 380)
GuiCtrlCreateTabItem("User"); COMBO
[/autoit] [autoit][/autoit] [autoit]
$Users = GuiCtrlCreatecombo("", 30, 50, 100, 25)
For $i= 1 to 4
$User[$i]= IniRead("user.ini", "User", $i, "Nicht gefunden")
GUICtrlSetData(-1,$User[$i],"")
$Telenr[$i] = IniRead("user.ini", "Telefon", $i, "Nicht gefunden")
Next;Label
[/autoit] [autoit][/autoit] [autoit]
$Telefon = GUICtrlCreateLabel($Telenr,140, 50, 50,25); INPUT
[/autoit] [autoit][/autoit] [autoit]
$Telefonedit = GuiCtrlCreateInput("Input", 200, 50, 50, 25); BUTTON
[/autoit] [autoit][/autoit] [autoit]
GuiCtrlCreateButton("Hinzufügen", 260, 50, 60, 25)
GuiCtrlCreateTabItem("2")
GuiCtrlCreateTabItem("3")
GuiCtrlCreateTabItem("")
GuiSetState()While 1
[/autoit]
Switch GuiGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Users
For $i = 1 To 4
If $User[$i] = GuiCtrlRead($Users) Then GuiCtrlSetData($Telefon,$Telenr[$i])
Next
EndSwitch
WEnd -
So geht's:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <string.au3>
#include <Array.au3>Global $ad ; "Lokal" gibt es nur in Funktionen
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 162, 108, 193, 125)
$Button1 = GUICtrlCreateButton("Txt in Asci", 25, 75, 57, 25, 0)
$Button2 = GUICtrlCreateButton("Asci in Txt", 85, 75, 57, 25, 0)
$Input1 = GUICtrlCreateInput("Dein Namen :", 8, 8, 145, 21)
$Input2 = GUICtrlCreateInput("text", 8, 40, 145, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
;GUICtrlSetData($Input2, "") ; unnötig wird sowieso gleich gefüllt
$read = StringSplit(GUICtrlRead($Input1), "")
For $i = 1 To $read[0]
$ad &= Asc($read[$i]) & " - "
Next
$ad = StringTrimRight(String($ad), 3)
GUICtrlSetData($Input2, $ad)
$ad = ""Case $Button2
[/autoit] [autoit][/autoit] [autoit]
$Split = StringSplit(GUICtrlRead($Input2)," - ",1) ; Trennen muss am kompletten Zeichen " - " erfolgen
$s = StringFromASCIIArray($Split,1) ; Array muss nach StringSplit bei 1 starten
GUICtrlSetData($Input1,$s)
$s = ""EndSwitch
[/autoit]
WEnd -
Ich habe Dein Script jetzt nicht getestet, aber die Funktion heißt "StringFromASCIIArray()" !
Als Eingabe nutzt Du aber GUICtrlRead(), welche einen String zurückgibt und kein ARRAY.
-
[autoit]
$string = "SP-ID : 0000012345.678901"
[/autoit]
$zahl = StringRegExp($string,"SP-ID : (.{17})",1)
msgbox(0,"",$zahl[0]) -
Mit der FTP_Ex.au3, die Prog@ndy um einige Funktionen erweitert hat, ist es einfach möglich:
[autoit]#include <FTP_Ex.au3>
[/autoit][autoit][/autoit][autoit]$server = 'ftp.server'
[/autoit][autoit][/autoit][autoit]
$username = 'ftpuser'
$pass = 'ftppass'$sSub = 'Test2' ; Unterordner in dem gelistet werden soll
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$iIndex = 2 ; welche Ordner-Nr. soll im Unterordner gezeigt werden$hOpen = _FTPOpen('FTPCtrl')
[/autoit][autoit][/autoit][autoit]
$hConn = _FTPConnect($hOpen, $server, $username, $pass)
_FtpSetCurrentDir($hConn,$sSub) ; in den betreffenden Unterordner wechseln
$aDirs = _FTPFilesListToArray($hConn,1) ; nur die darin befindlichen Ordner in ein Array speichernIf $aDirs[0] >= $iIndex Then ; wenn genug Unterordner zurückgeliefert wurden
[/autoit][autoit][/autoit][autoit]
Msgbox(0,"","Der " & $iIndex & ". Ordner im Unterordner '" & $sSub & "' lautet : " & @CRLF & @CRLF & $aDirs[$iIndex])
EndIf_FTPClose($hOpen)
[/autoit]Hier noch die FTP_Ex.au3, da ich sie im Forum nicht finden konnte:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Der Befehl heißt ja Run([Programm]).
Wenn Du nun ein Programm namens XYZ starten willst, schreibst Du Run("XYZ").
Da aber dein Pfad Leerzeichen enthält (wovon man als Programmierer lieber ausgehen sollte), muss Du den Pfad bzw. Pfad + Programm in Anführungszeichen schreiben. Dies kann auf folgende Weise geschehen:
1. """C:\Dokumente und Einstellungen\Admin\Eigene Dateien\..."""
2. '"C:\Dokumente und Einstellungen\Admin\Eigene Dateien\..."'
3. Chr(34) & "C:\Dokumente und Einstellungen\Admin\Eigene Dateien\.." & Chr(34)Der Run Befehl lautet dann z.B.: Run('"C:\Dokumente und Einstellungen\Admin\Eigene Dateien\..."')
-
Muss ich das Rad wirklich neu erfinden ?
Hat bei uns im Forum noch niemand eine Oberfläche für CDRecord oder ähnliches in der Hinterhand ??
Gruß
micha_he -
Ich glaube, so große Sicherheits-Löcher hat nicht einmal Windows !
-
Ist zwar schon tausendmal hier im Forum als Beispiel, aber vom Prinzip her so:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Constants.au3>GuiCreate("CMD Test")
[/autoit] [autoit][/autoit] [autoit]
$InID = GUICtrlCreateEdit("",20,20,200,20)
$start = GUICtrlCreateButton(" Start ",20,50)
$OutID = GUICtrlCreateEdit("",20,80,300,200)
GUISetState(@SW_SHOW)While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $start
$befehl = GuiCtrlRead($InID)
$ausgabe = ""
$prozessID = Run(@ComSpec & ' /c "' & $befehl & '"',@ScriptDir,@SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While 1
$ausgabe &= StdoutRead($prozessID)
If @error Then ExitLoop
Wend
GUICtrlSetData($OutID,$ausgabe)
EndSwitch
WEndDie Feinheiten kannst Du jetzt selber ausbauen....

-
Ich möchte ein Tool erstellen, welches Passwortverschlüsselt ein Archiv erstellt.
Hierzu benötige ich ein TreeView, in welches ich per Drag 'n Drop Dateien und Ordner legen kann, sowie einen neuen Ordner (z.B. auf Knopfdruck oder Kontextmenü) erstellen kann. Also im Prinzip wie bei jedem CD-Brennprogramm, wo man meist im linken Fenster sich eine neue CD-Struktur erstellen kann.
Hat jemand so etwas (oder einen Teil) schon fertig liegen ?
Kann ja sein das so etwas schonmal jemand gebraucht hat.... -
Das würde ja heißen, Du musst die Mail in die Postfachdatei (Outlock = PST, Thunderbird wahrscheinlich MBX) einfügen.
Ob es bei Outlock geht kann ich nicht sagen, aber beim MBX-Format (ist ja Klartext) sollte es gehen. Ist aber viel Aufwand.
Du musst den Anhang "kodieren" (MIME64) und mit passendem Mail-Header und dem Header des MBX-Formates an die (Eingangs-)Postfachdatei Deines Thunderbird-Profiles anhängen. Anschließend muss die zur Maildatei gehörende Index-Datei neu indiziert werden. Ob Thunderbird dafür einen Kommandozeilen-Befehl hat, glaube ich zu bezweifeln. Also musst Du mal nach einem Freewaretool schauen oder wieder in die Tiefen der Indexdatei schauen und selber programmieren. Manchmal hilft es auch die Indexdatei zu löschen. Dann dauert der erste Start zwar einen Moment länger, aber meist bauen die Mailprogramme die Indexdatei alleine neu auf, wenn sie fehlt.
Wenn beides erfolgt ist, öffnest Du den Posteingang im Mailprogramm und die Mail sollte erscheinen.Viel Arbeit ! Einfacher ist es ganz sicher, die Mail mit Anhang an einen SMTP-Server schicken (das habe ich fertig als Script liegen) und das Mailprogramm öffnen und neue Mails abrufen lassen.
-
Such mal nach: StdOutRead() bzw. StdErrRead() !
Die Beispiele sind meist ziemlich aussagekräftig.
-
Und wenn Du "BinaryToString" weglässt ?
Du liest und schreibst doch direkt binär !
Edit: Aber auf Deine Frage zurückzukommen: Suche mal "_TCPSendFile".
-
Child nun beweglich !
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
GLOBAL $posX = @DesktopWidth / 2 - 300
GLOBAL $posY = @DesktopHeight / 2 - 200
GLOBAL $diffx = 606
GLOBAL $diffy = 0
$hMainGui = GUICreate('Main', 600, 400, $posX, $posY)
GUISetState()
$hChildGui = GUICreate('Child', 300, 200, $posX + $diffx, $posY + $diffy)
GUISetState()
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSEFunc WM_MOVE($hWnd, $Msg, $wParam, $lParam)
[/autoit]
If $hWnd = WinGetHandle($hMainGui) Then
Local $pos = WinGetPos($hMainGui)
WinMove($hChildGui, '', $pos[0] + $diffx, $pos[1] + $diffy)
EndIf
If $hWnd = WinGetHandle($hChildGui) Then
Local $mpos = WinGetPos($hMainGui)
Local $cpos = WinGetPos($hChildGui)
$diffx = $cpos[0] - $mpos[0]
$diffy = $cpos[1] - $mpos[1]
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOVEDanke Oscar für die Grundidee

-
Ist bei mir ROT, wie er programmiert wurde ! Unter WinXP !
-
oder der Pfad ein Leerzeichen enthält !
Siehe Edit2, Post #4 !Es gibt so viele Probleme....
-
Also die Zeile funktioniert so ! Wenn Du weiterhin eine Fehler in Deinem Script bekommst, muss Du schon mal dein Script preisgeben.
Beim Raten sind wir nun wohl am Ende angekommen
