Um ehrlich zu sein, möchte ich das Programm privat nutzen und erst später in professionell veröffentlichen, was ich jetzt noch nicht machen möchte, kann, darf, was weiß ich... ich bin ja "erst" 14
Ich kann dir aber gerne Screenshots davon schicken.
Beiträge von olfibits
-
-
@BugFix wie könntest du dir das vorstellen wie das gehen soll
-
<p> Sonderbaar meinst du die fertigen projekte oder das gartenprojekt</p>
-
sry, das wusste ich nicht.
Welche Quersummen gehen sonsr noch? CRC? -
Hallo,
falls das noch aktuell ist:
- Vorgehen 1: die Zertifikate sind solange gültig, wie der Kunde es braucht. Richte mal 100 Jahre ein, der wird ja auch nicht das ewige Leben haben.
- Vorgehen 2: Wenn die Programme von dir endgültig stehen, berechne MD5/SHA1 Quersummen. Immer, wenn ein Programm gestartet wird und die MD5 Summe in der Datenbank letztendlich ist, darf das Programm gestartet werden. Auch so was kann man mit AutoIt konstruieren. Dazu musst du allerdings leicht unkonventionelle Systemeingriffe vornehmen. Vergleichbar ist das mit einem Virus/Rootkit, das das Ausführen von bestimmten Programmen (z.B. avscan.exe, updaterGUI.exe) nicht erlaubt. Nur, dass du da eine Whitelist brauchst mit den MD5-Codes und nicht mit den Dateinamen, sonst kann ja jeder einen Virus GtaSpiderExplorer.exe oder sonstwie aus deiner Datenbank nennen. Genau das ist ja die Möglichkeit, wenn Anti-Malware-Tools dann z.B. nicht mehr mbam.exe sondern iexplore.exe heißen. Wenn das dann ein Virus wäre und der zugelassen würde... wie auch immer. Soviel dazu, das wäre in meinen Augen sicherer. Ob das funktioniert, weiß ich nichtLG
olfibits -
Hallo mal wieder.
Erstmal vorab: Ich weiß, dass ich hier - was Anfragen angeht - momentan sehr aktiv bin. Irgendwie ist mir das momentan total peinlich, aber ich weiß nicht, wo ich sonst fragen soll... :o
Nun aber zu meiner Anfrage:
Ich arbeite gerade familienintern an einem Gartenplanungs-Programm.Im Prinzip steht schon fast alles.
Es gibt eine Startseite, in der ich ein Projekt erstellen kann, also mit Garten-Flächen, Gewächshausvorlagen und allem Drum und Dran.
Es gibt Dialogfenster, in denen ich Beete und Beetflächen einstellen kann (also mit / ohne Rand) -> Typen: quadratisch, rechteckig, kreisförmig
Es gibt auch schon eine Vorlage für (unser) Gewächshaus-Modell. Das steht auch schon als autoIt-Grafik.
Ich verwende dazu... besser gesagt, will dazu das Graphic-Objekt in AutoIt 3 nutzen.Der aktuelle Code am Anfang sieht so aus:
AutoIt
Alles anzeigen$MainFrame = GUICreate("Garten Designer 2017 (Ver_1) - Gewächshaus designen", 810, 631, 191, 32, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME,$DS_MODALFRAME)) $PaintArea = GUICtrlCreateGraphic(0, 0, 540, 630) GUICtrlSetColor(-1, 0x000000) GUICtrlSetBkColor(-1, 0xFFFFFF) GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x000000, 0x800000) GUICtrlSetGraphic(-1, $GUI_GR_RECT, 230, 225, 80, 400) $Weg = GUICtrlCreateLabel("WEG", 238, 568, 63, 33) GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFFFF) GUICtrlSetBkColor(-1, 0x800000) ; ... und weiter.
Im oberen Bereich wird u.a. die Grafik erstellt sowie das Label für den Weg.
Manuell einfügen kann man dann per Button auch andere Textfelder, diese mit Text füllen und positionieren, sowie sie in einer ListBox anzeigen lassen. Funktoniert.
Was jetzt aber noch nicht funktioniert, ist dass ich per Knopfdruck ein Rechteck einfüge (in der Grafik).
Man sieht ja in Zeile (6) und (7), wie dort das Rechteck festgelegt wird (das ist hier die Vorlage vom Gewächshaus und der zentriert positionierte Weg).Ich habe also den Code so formuliert:
AutoItCase $NewRectButton ; $Graphic1 = GUICtrlCreateGraphic(0, 0, 540, 630) GUICtrlSetGraphic($Graphic1, $GUI_GR_COLOR, 0x000000, 0x800000) GUICtrlSetGraphic($Graphic1, $GUI_GR_RECT, 10, 10, 40, 40) ; ... und weiter
Funktioniert nicht. Da tut sich rein gar nix.
Habe ich da jetzt irgendwas falsch gemacht??Ach ja, zwischen rein:
- wenn ich das Semikolon in Zeile (2) entferne und den Button zweimal klicke, dann erscheint das Rechteck beim 1. Mal in der Liste und beim 2. Mal im Grafikbereich.
- mit dem Semikolon erscheint das Rechteck mit den Daten (Länge, Breite, Position, Name) in der ListBox, in der Grafik aber nicht.Es wäre nett wenn ihr mir helfen könntet, das Rechteck dorthin zu positionieren, wo es am Anfang sein soll.
-----
Danke,olfibits
-
-
Danke! Hat sich erledigt!
-
Hallo @alpines,
Da du das in Skripte gepostet hast nehme ich mal an das du Feedback von uns erwartest.
Sehr richtig!
Diesmal hatte ich ausnahmsweise kein Problem, haha...Benenne deine Variablen besser. $Label4, $Input2 sind absolut nicht aussagekräftig.
OK. Das lag an den KODA FormDesigner Standards und ich habs der Einfachheit halber dabei gelassen.
Ich weiß nicht ob das Forum jetzt die Formatierung deines Scriptes gefressen hat, aber locker dein Code ein wenig auf und rücke immer korrekt ein.
Hat es nicht wirklich. Inline-Code ging nicht wirklich in der Vorschau und der Code-Button mit dem </> hat mich direkt auf die Startseite geschickt...
Im SciTE funktioniert alles ohne Probleme...Also nochmal:
AutoIt
Alles anzeigen#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form=Form1.kxf $Form1 = GUICreate("Timer", 210, 89, 192, 124) $labelSelectTime = GUICtrlCreateLabel("Select time (format: HH:MM:SS)", 8, 8, 154, 17) $labelDelim1 = GUICtrlCreateLabel(":", 50, 44, 7, 17) $labelDelim2 = GUICtrlCreateLabel(":", 98, 44, 7, 17) $buttonGo = GUICtrlCreateButton("Go", 152, 39, 43, 25) GUICtrlSetColor(-1, 0xFFFFFF) GUICtrlSetBkColor(-1, 0x000080) $hh = GUICtrlCreateInput("00", 8, 40, 41, 21) $mm = GUICtrlCreateInput("00", 56, 40, 41, 21) $ss = GUICtrlCreateInput("00", 104, 40, 41, 21) $statusline = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17) GUICtrlSetBkColor(-1, 0xC0C0C0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $buttonGo $statusline = GUICtrlCreateLabel("Status: Timer running.", 0, 72, 210, 17) GUICtrlSetBkColor(-1, 0xC0C0C0) $h = Int(GUICtrlRead($hh)) $m = Int(GUICtrlRead($mm)) $s = Int(GUICtrlRead($ss)) Sleep(1000*($h*3600+$m*60+$s)) $statusline = GUICtrlCreateLabel("Status: Timeout.", 0, 72, 210, 17) GUICtrlSetBkColor(-1, 0xC0C0C0) Beep(500, 200) Sleep(20) Beep(500, 200) MsgBox(0,"Timeout","TIME OUT!") $statusline = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17) GUICtrlSetBkColor(-1, 0xC0C0C0) Case -3 Exit EndSwitch WEnd
Oder?
Das mit -3 ... meinst du Case -3 anstatt $GUI_EVENT_CLOSE? Hab das mal so übernommen.
LG
Olfibits -
Hallo,
ich bin gerade an der Entwicklung für eine Benutzeroberfläche für den freien Kompressor UPX.
Bis jetzt tut das Skript folgendes beim Klick auf den (De-)Kompressions-Button:
- einen Fileopendialog öffnen:Spoiler anzeigen
$InputCompress = FileOpenDialog("Select INPUT executable file to compress...", "C:\", "Executables (*.exe)|MS-DOS Command (*.com)|Link to MS-DOS-Program (*.pif)|Screensaver (*.scr)|Dynamic Link Libraries (*.dll)|Drivers (*.sys)")
Das sind ja alles ausführbare Dateien, die UPX (de-)komprimieren kann, dasselbe passiert dann bei $InputDecompress auch, halt nur nicht "to compress", sondern "to decompress".Wenn der FileOpenDialog eine existierende Datei liefert, steht im Input Feld "File to compress" die ausführbare Datei. Oder auch bei Decompress.
Der Benutzer soll den Pfad zwar auch ändern können, aber automatisch soll das ganze folgendermaßen sein:Input File to compress: [C:\Users\Public\Downloads\KODA.EXE]
Output File: [C:\Users\Public\Downloads\KODA (UPX-Compressed).EXE]Wie kann ich diese "Ersetzung" vornehmen, dass das ganze auch bei solchen Formaten funktioniert...
Input File to compress: [C:\Users\Public\Downloads\KODA.SYS]
Output File: [C:\Users\Public\Downloads\KODA (UPX-Compressed).SYS]... oder auch bei diesem:
Input File to compress: [C:\Users\Public\Downloads\KODA.DLL.EXE]
Output File: [C:\Users\Public\Downloads\KODA.DLL (UPX-Compressed).EXE]
Teilweise ist gerade das letzte Format ein wenig "ungebräuchlich", aber auch mit solchen muss man da rechnen.
Deshalb meine Frage an euch:
Die Endungen sind ja immer .exe, .com, .pif, .scr, .dll und .sys - also immer 4 Zeichen. Kann ich da irgendwie in AutoIt an der 4. Stelle von hinten den String (UPX-Compressed) einfügen?vielen Dank (mal wieder) im Voraus,
olfibits -
Hallo,
ich habe mit AutoIt einen kleinen Timer programmiert, weiß nicht ob das schon jemand gemacht hat, aber egal.
GUI mit KODA, ist glaube ich selbsterklärend.Der Code funktioniert so:
- Ich berechne die Summe aus den eingegebenen Stunden mal 3600, den Minuten mal 60 und den Sekunden und multipliziere diese mit 1000.
- Diese Zahl bildet das Argument für Sleep( milliseconds )
- Danach kommen im 200-Millisekunden-Abstand zwei kurze Piepser, in der Statuszeile die Nachricht "Status: Timeout" und anschließend eine Message-Box mit dem Inhalt "TIME OUT!!"Gleichzeitiges MessageBox-Öffnen und Piepen habe ich noch nicht gemacht, aber das ist ja vielleicht mal etwas.
Oder etwa nicht...Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=Form1.kxf
$Form1 = GUICreate("Timer", 210, 89, 192, 124)
$Label1 = GUICtrlCreateLabel("Select time (format: HH:MM:SS)", 8, 8, 154, 17)
$Label2 = GUICtrlCreateLabel(":", 50, 44, 7, 17)
$Label3 = GUICtrlCreateLabel(":", 98, 44, 7, 17)
$Button1 = GUICtrlCreateButton("Go", 152, 39, 43, 25)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000080)
$Input1 = GUICtrlCreateInput("00", 8, 40, 41, 21)
$Input2 = GUICtrlCreateInput("00", 56, 40, 41, 21)
$Input3 = GUICtrlCreateInput("00", 104, 40, 41, 21)
$Label4 = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
$Label4 = GUICtrlCreateLabel("Status: Timer running.", 0, 72, 210, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$h = Int(GUICtrlRead($Input1))
$m = Int(GUICtrlRead($Input2))
$s = Int(GUICtrlRead($Input3))
Sleep(1000*($h*3600+$m*60+$s))
$Label4 = GUICtrlCreateLabel("Status: Timeout.", 0, 72, 210, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
Beep(500, 200)
Sleep(20)
Beep(500, 200)
MsgBox(0,"Timeout","TIME OUT!")
$Label4 = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
Case $GUI_EVENT_CLOSE
ExitEndSwitch
WEndMfG
Olfibits -
Zuerst - nein, hier bist du nicht richtig... denn du hast einen fremden Thread gekapert, der mit deiner Frage nichts zu tun hat.
Hier geht es um das Thema "Dateien nach Alter/Bearbeitungszeit/Zugriffszeit auflisten."Du hättest einen eigenen Thread eröffnen müssen... dazu klickst du einfach auf den Button "Neues Thema".
Zu deiner Frage... das kannst du z. B. so machen:
[...]Hallo Bitnugger.
Entschuldige bitte. Da habe ich mich wohl nicht klar genug ausgedrückt.
Ich habe aus dieser Funktion, die hier behandelt wird - deshalb habe ich mich hier "eingemischt" - das o.g. Format erhalten.Dieses eine Beispiel bringt mich leider nicht weiter. Ich habe das Problem gelöst.
Danke & ciao
-
Wie kann ich dieses Format ändern:
C:\Users\***\Desktop\Sia - Never Give Up.mp3|2017/01/15 11:26also vorallem das mit der pipe in:
2017/01/15 11:26 - C:\Users\***\Desktop\Sia - Never Give Up.mp3
hoffe da bin ich hier jetzt richtig
-
-
-
-
-
-
-
Hallo, ich bin's mal wieder, haha.
Wie kann ich in einem AutoIt Script schreiben, dass ich aus bestimmten Verzeichnissen die seit 14 Tagen erstellten Dateien angezeigt haben will.
Das ganze soll dann in etwa so aussehen (weiß nicht ob das stimmt...?)While [...]
FileWrite("listing.txt", $array[...])
WEndaber wie krieg ich das Array gefiltert voll?
Olfibits