1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Racer

Beiträge von Racer

  • Fenster ziehen

    • Racer
    • 2. Februar 2016 um 11:22

    Hallo!

    Ich habe ein kleines Problem bei dem Design vom einer eigene GUI. Ich möchte ein Fenster erstellen das sich "ziehen" läßt. So weit, so gut.
    Es ist jetzt aber so das sich alle Child Objekte dynamisch mitwandern. Das sieht weder gut aus noch ist es sehr praktisch.

    Gibt es eine Möglichkeit das z.B. Buttons fix bleiben?

    Demoscript

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 566, 410, 192, 124, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP), 0)
    $Button1 = GUICtrlCreateButton("Button1", 16, 24, 75, 25)
    $Button2 = GUICtrlCreateButton("Button2", 96, 24, 75, 25)
    $Button3 = GUICtrlCreateButton("Button3", 176, 24, 75, 25)
    $ListView1 = GUICtrlCreateListView("", 16, 64, 538, 334)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    	EndSwitch
    WEnd
    Alles anzeigen

    lg
    Racer

  • txt Datei einlesen und verarbeiten

    • Racer
    • 21. Januar 2016 um 08:47

    Hallo Ram3000!

    Mein Tipp für das Projekt: Erstelle Dir mit Hilfe des Koda die GUI. Das hast zwei Vorteile: 1.) Du kann zumindest einen groben Entwurf von Deiner GUI machen inkl. aller Button/Menues (laden, speichern,...) und 2.) Es spart viel Zeit :)

    Danach schreibe eine Funktion nach der anderen: für das Laden der Daten, für Anzeige, Bearbeiten,.... So kannst Du sehr modular die Sache angehen und bei späteren Änderungen leicht darauf reagieren.

    Durch die modularen Aufbau lernst Du auch gleich viele Befehle besser einzusetzten. Beispiel: FileReadLine oder doch besser fileopen ?
    Lese ich jetzt Zeile einzelen ein oder doch das gesammte Textfile in einem rutsch und bearbeite es dann nur mehr im Speicher??

    Und vergiss nicht alles mit Bemerkungen zu versehen, hilft in 6 Monaten ungemein.......

    lg
    Racer

  • run funktioniert nicht immer....

    • Racer
    • 21. Januar 2016 um 08:33

    Guten Morgen!

    Danke für Euer Antworten!

    Pfade kann ich 110% ausschließen. Um zu überprüfen ob die Pfade passen lese ich die übergeben Daten aus dem Logfile aus (das macht die Funktion "runme") und füge sie mit copy&paste in die Konsole ein um Tipfehler zu verhindern. Da passt immer alles.
    Abgesehen davon funktioniert ja ein x:\windows\system32\cmd.exe !
    Wie gesagt, das Programm mit AutoIT 3.3.14.0

    Fehlermeldung gibt es in dem Sinn nicht, nur das ich keine ProzessD sehe (nur 0) und dass das Programm nicht gestartet wird.

    Ich kan hier leider keine lauffähiges Scipt erstellen, da es auf eine ganz bestimmtes Unternehmensnetzwerk abgestimmt ist!

    lg
    Racer

    PS: Sobald ich etwas Luft habe werde ich ein Mini Script mit dem Problem erstellen um den Fehler weiter einzugrenzen. Vielleicht titt der Fehler nur unter WinPE auf aber nicht unter ein Windows 7 / 10 ....

  • run funktioniert nicht immer....

    • Racer
    • 20. Januar 2016 um 15:12

    Hallo!

    Ich habe ein sehr delikates Problem: Das "Run ( "program" [, "workingdir" [, show_flag [, opt_flag]]] )" funktioniert nicht immer.

    Kurze Erklärung dazu: Ich habe für WinPE (4) das ich mit dem WinBuilder erstelle einen Loader gebastelt der via HTTP ein Konfigfile ladet und die darin enthaltenen Befehle abarbeitet. Hört sich jetzt kompliziert an als es ist!
    Unter anderem habe ich das Kommand "RUN" geschaffen das Programme starten soll:

    run "x:\firefoxportable\firefoxporable.exe"|"x:\firefoxportable"

    Im AutoITscript wird nichts anderes als $ret = run ("x:\firefoxportable\firefoxporable.exe", "x:\firefoxportable", @SW_SHOW,$RUN_CREATE_NEW_CONSOLE) aufgerufen. Natürlich ist das Ganze vor mir Variablen zugestopt...


    Die Funktion selbst (das Script ist sehr viel länger)


    Code
    func lauf ($anzahl, $hide=0)
    local $full, $programm, $arbeit
    local $proc
    if $anzahl > 2 then
    	for $i = 2 to $anzahl
    		$full = $full & $kommand[$i] & " "
    	next
    else
    	$full = $kommand[2]
    endif
    $full = pathset ($full)
    $tmp = StringSplit ($full, "|")
    ;Wenn das Arbeitsverzeichnis nicht angegeben wird ein Defaultwert gesetzt
    if $tmp[0] = 1 then
    	redim $tmp[3]
    	$tmp[2] = @ScriptDir
    	runme ("Es wurde kein Arbeitsverzeichnis angegeben! - Arbeitsverzeichnis auf " & $tmp[2] & " gesetzt")
    endif
    runme ('Ausführen von Run: ' & $tmp[1] & ' im Arbeitsverzeichnis: ' & $tmp[2])
    ;Für einen neuen "Befehl" - hier kann entschieden werden ob der Prozess sichtbar oder nicht sichtbar ist
    if $hide = 0 then
    	$proc = run ($tmp[1], $tmp[2], @SW_SHOW,$RUN_CREATE_NEW_CONSOLE)
    	runme ("Task mit der Prozess-ID " & $proc & " ist gestartet worden")
    else
    	$proc = ShellExecute ($tmp[1],"", $tmp[2],"", @SW_SHOW)			;Umgestellt da run unter PE ein Problem hat
    	runme ("Task mit der Prozess-ID " & $proc & " ist versteckt gestartet worden")
    endif
    status1 ("Programm gestartet: " & $tmp[1])
    status2 ("Task wird gestartet...")
    endfunc
    Alles anzeigen


    Und jetzt kommt's: So lange ich mit Version 3.3.14 gearbeitet habe hat alles gepasst. Ich konnte mit "run" (aus meiner Konfig) ein Dos-Fenster öffnen, FF starten, Consolenprogramme durchlaufen lassen, und auch DOS-Kommandos absetzten (del x:\windows\temp\*.* /S).
    Nachdem ich ein paar Kleinigkeiten geändert habe (aber nicht diese Funktion) passt der Aufruf nicht mehr. Ich bekomme auch immer nur ProzessID 0 zurück. Allerdinge ein cmd.exe funktioniert immer noch !!!!
    Ich wollte auf shellexecute ausweichen, nur das ist etwas "unhandlicher" mit den Parameter in zusammenspiel zwischen meinen Konfigfiles und der Syntax des Befehls

    Ich weiß, es gibt sicher nicht viele die Für WinPE Tool/Programme in AutoIT schreiben, aber ist jemanden so etwas schon aufgefallen???

    lg
    Racer

  • Installdate aus Registry als Label

    • Racer
    • 30. Dezember 2015 um 14:46
    Zitat von stambo

    Supi, jetzt hab ich es hinbekommen.

    hmm....ich habe bei mir nachgesehen und da steht im DWORD: 53a81a0b (oder Dezimal 1403525643)....

    Und eigentlich sollten keine Adminrechte notwendig sein, denn der Benutzer darf dort lesen....

    lg
    Racer

  • Progressbar beim kopieren einer großen Datei

    • Racer
    • 16. Dezember 2015 um 09:56

    Hallo!

    Ich das selbe Problem mit Robocopy und einer GUI gelöst indem ich den Kopiervorgang als Prozess mit robocopy mache und die Prozentanzeige aus dem Prozess abfrage und dann in einer Gui als Fortschrittsbalken darstelle!

    Ist zwar wie sich mit der linken Hand das rechte Ohr kratzen, aber es funktioniert sehr gut.

    Codeschnippsel:

    AutoIt
    local $robo = run(@ComSpec & " /c robocopy  /NDL /NJH /NJS /NS /NC " & $parameter , "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    
    
    
    
    while 1
    	sleep (10)
    
    
    	$line = StdoutRead($robo)
    	if StringInStr ($line, "%") <> 0 then
    		$line = StringStripWS ($line , 1)
    		$line = StringReplace ($line, ".", " ")
    		$tmp =  Stringleft ($line, 3)
    		$tmp = $tmp + 0
    
    
    		GUICtrlSetData ($text, $copytext & $tmp & "%")
    		GUICtrlSetData ($Progress1, $tmp)
    		;consolewrite ($tmp & @crlf)
    	endif
    
    
    	if ProcessExists  ($robo) = 0 then exit
    
    
    Wend
    Alles anzeigen
  • begrenzte Nutzungsdauer am PC: Konzeption technisch umsetzbar? (Kindersicherung)

    • Racer
    • 9. Dezember 2015 um 10:22
    Zitat von Kanashius

    Naja. Ums jetzt mal noch etwas weiter zu treiben:
    Wenn man einen Boot-Stick/CD erstellt und davon Bootet (z.B. Ubuntu) kann man einfach auf die Festplatte zugreifen und die Dateien löschen/bearbeiten, ob durch Benutzerrechte geschützt, oder nicht. Die absolute Sicherheit gibt es einfach nicht.


    Es geht schon, indem man seine Platte verschlüsselt und auch den Bootsector schützt! Dann hast Du auch mit den diversen Boot-CD's (WinPE/Linux) den Schlauch...

    Sicherheit kann man sicher bis an die Spitze treiben, die Frage ist wieviel man davon wirklich braucht und welche Mittel man einsetzt!

  • begrenzte Nutzungsdauer am PC: Konzeption technisch umsetzbar? (Kindersicherung)

    • Racer
    • 8. Dezember 2015 um 19:19

    Unglaublich was das Thema "Kindersicherung" für Emotionen freisetzt :)

    Ich denke wir (ich eingeschlossen) denken viel zu Kompliziert. Das was Mokkaschnitte gemacht hat ist schon ein sehr gute Tool. Ich bin mir sicher er wird es bis "zur Markteinführung" optimieren.

    Die Mythten und Ängste das ein selbstgeschriebens Script den Rechner "dicht" macht, hängt nur vom Scripter ab. Wenn ich schlammpig Programmiere wird auch in die Hose gehen - andersrum laufen bei anderen und bei mir AutoIT Scripts als Serverdienste und die im 7/24 Stunden Betrieb! Und nix hängt und nix verbracht viel Speicher!

    Auch die Aussage das auf einen 64Bit Windows (egal ob Client oder Server) nur 64 Bit-Programme laufen ist falsch - siehe Taskmanager - da gibt es genug Prozesse von MS die noch 32Bit sind (warum auch nicht). Meistens hat man auch das eine oder andere Programm / Applikation installiert und die gibt es oft nur (oder noch) als 32Bit Version.

    Die Belastung einer SSD mit Regkey lesen und schreiben ist egal da es sowieso vom Betriebsystem eine Zeitlang gecachet wird bevor es dann wirklich auf die Disk kommt. Abgesehen davon sind vom BS und Programme so viele permanente Zugriffe in die Registierung da kommt es auf ein paar mehr oder weniger auch nicht an!

    Zum Thema "Prozess beenden": Hat der User nur Userrechte wird er es nicht schaffen einen Systemprozess oder einen Prozess eines anderen Benutzers zu killen.

    Ob das Hauptprogramm als Admin oder System gestartet wird ist geschmacksache. Mein Vorschlag war halt für die Aufgabenplanung (ist ja auch eine Aufgabe). Aber wie heißt es so schön: viele Wege führen nach Rom ;)

    lg
    Racer

  • begrenzte Nutzungsdauer am PC: Konzeption technisch umsetzbar? (Kindersicherung)

    • Racer
    • 4. Dezember 2015 um 11:23

    Hallo!

    Ich gehe davon aus das der PC zu Hause steht, also ohne AD, denn dort wäre so etwas recht einfach zu lösen!
    Um die lieben Kleinen vom PC zu bekommen (ohne Brechstange) ist es notwendig das es eigene Accouts gibt und die sollten/dürfen nur Benutzerrechte haben.
    Damit ist schon eine sehr große Hürde gelegt das sie Systemdienste/sperren aushebeln.

    Im Grunde ist das ganz einfach:

    * Benutzer hat nur Benutzerrechte
    * Einen Task erstellen (Aufgaben) [z.B.: schtasks /create /SC onstart /TN Watchdog /TR "%windir%\meins.exe" /RU SYSTEM /RL highest /F] mit Systemrechte der ein AutoIt-Programm startet das folgende Eingenschaften aufweißt:
    -Es wird vom Benutzer die Anmeldezeit ausgelesen (entweder über die Commandline net user Benutzername -> Letzte Anmeldung [datum Uhrzeit]) oder wie es grebph in seinen Beispiel macht)
    - Dann wird einfach die Zeit gerechte, sagen wir mal 3 Stunden, bis ein Logoff oder Shutdown durchgeführt wird. Erweiterungen wie Benutzeraccount sperren oder den Tag/Zeit merken wann die letzte An/Abmeldung war bleibt der Fantasie überlassen.

    Umd Fertig ist die Kidssicherung :)

    lg
    Racer

    PS: funktioniert auch bei Erwachsenen !!

  • PartyPlayer

    • Racer
    • 2. Dezember 2015 um 08:13

    Guten Morgen!

    Ich verwende (in dem Fall) Windows 7 x64 in einer VMWare!

    Lösche ich die "PP-Headphones.exe" bzw. es reicht wenn ich die Datei umbennen, passiert gar nicht bei einem Doppelklick. Ein neu compilieren bringt keinen Unterschied. Ich verwende AutoIT 3.3.14.0 bzw. 3.3.15.x

    lg
    Racer

  • PartyPlayer

    • Racer
    • 1. Dezember 2015 um 13:59

    Sieht ja super aus - echt cooles Ding! Hut ab!

    Eine Kleinigkeit ist mir aufgefallen: Zieht man ein Lied von der rechte Seite in die Playlist und macht dann einen doppelklick darauf, kommt die Windowsmeldung das das Programm ausgeführt werden soll (!!)

    Sollte das so sein???

    lg
    Racer

    Dateien

    Partyplayer.PNG 62,7 kB – 0 Downloads
  • Jobdatei zur Ausführung einer Batch-Datei

    • Racer
    • 5. November 2015 um 12:50

    Hallo Eagle92!

    Ich habe so etwas ähnlich vor einigen Jahren (noch nicht in AutoIT) geschrieben. Meine Aufgabenstellung war deiner sehr ähnlich!

    Das mit den Task ist leicht: für Windows XP und höher:

    [Blockierte Grafik: data:image/png;base64,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]

    Das Programm "Automat.exe " liest eine INI aus (automat.ini) da steht drin was passiern soll. Auch Änderungen bekommt das Programm zu Laufzeit mit, damit ist ein schelles ändern der Aufgaben möglich!

    Für Systeme die keine schtasks haben verwende den guten alten AT - Job

    * Damit hat dein Steuerungsprogramm genug Rechte (System) um alles durchzuführen: Installationen, löschen vor Logfiles, was auch immer...
    * kein Problem mit dem läßtigen Username/passwort beim Task erstellen
    * Kennwort bzw. Account läuft nicht ab
    * Das INI-File liegt unter %windir% und damit dürfen es nur Admins editiern

    Leider kann ich Dir den Quellcode von meinen Automat nicht geben - er ist noch in RB5 geschrieben, aber ich hoffe das du von meinen Aufbau profidieren kannst!

    lg
    Racer

  • Return Wert bei Programm Ende in DOS Fenster

    • Racer
    • 5. November 2015 um 10:18
    Zitat von Landfloh

    ok, LOL.. ich weiss ned wie man das als Konsolenanwendung kompiliert... bei C++ gabs das, ich weiss ned wo das hier ist... :-(..

    muss grad grinsen. Sorry mein Unvermögen.

    EDIT: Mann bin ich heut blöd. Steht ja in Deinem Beispiel drin... himmel hilf... tut mir echt leid.

    Ich mache das immer auf der Console (DOS-Fenster :-). Da ich oft 32 und 64 Bit Programme benötige habe ich mir ein kleines Batchprogramm dafür geschrieben:

    Bash
    @echo off
    
    
    if "%1" equ "" goto :EOF
    set para=%1
    set para2=%2
    set datei=%para:~0,-4%
    
    
    
    
    if not exist %datei%.au3 (
    	echo Datei %datei%.au3 nicht gefunden
    	goto :EOF
    	)
    if "%para2%" equ "x64" (
    	aut2exe\aut2exe.exe /in %datei%.au3 /out %datei%_x64.exe /comp 4 /console /x64 
    	echo Konsolenprogramm %datei%_x64.exe wurde erstellt!
    	) else (
    	aut2exe\aut2exe.exe /in %datei%.au3 /out %datei%.exe /comp 4 /console 
    	echo Konsolenprogramm %datei%.exe wurde erstellt!
    	)
    Alles anzeigen


    Speicher das Script als Batchjob (z.B.: comp.cmd) und dann rufst du es einfach mit Parameter auf:

    comp.cmd meins.au3 /x64

    und schon compiliert er ein 64Bit Programm....

    lg
    Racer

  • Zeitumrechnung von LastLogonTimeStamp

    • Racer
    • 27. Oktober 2015 um 08:10

    Guten Morgen!

    Oscar : vielen Danke - das ist ganau was ich gesucht habe...werde das Script gleich im laufe des Tages testen!

    water: Naja, so ganz einfach ist das nicht. Das Script verwenden Kollegen von mir und wenn das recht lange braucht kommt der menschliche Faktor (=ungedult) dazu.

    Wie mach ich das bisher? Ganz einfach:

    Bash
    dsquery * "dc=meine,dc=domain,dc=at" -attr "cn" "operatingsystem" "operatingsystemversion" "distinguishedname" "LastLogonTimeStamp" -limit 0 -filter "(&(objectclass=computer)(operatingsystem=windows 7*"))

    Den Output in eine Datei umleiten und das geht sehr sehr schnell! Danach wird die Datei in AutoIT eingelesen - ich habe mir ein Fastload gebastelt das die Datei sehr schnell einlesen kann (möglicherweise gibt es hier schon ein fertiges UDF).

    lg
    Racer

    Ergänzung: Nachdem ich den Code von Osacr in eine Funktion übernommen habe ist die Laufzeit bei der Abfrage von ~30 Minuten auf unter 1 Minute geschrumpft - das nenne ich Optimierung :)

  • Zeitumrechnung von LastLogonTimeStamp

    • Racer
    • 23. Oktober 2015 um 13:59

    Du hast natürlich recht: es sind 100ns!
    Ich weiß das die Daten nicht 100% sind, aber un Altlasten im AD festzustellen gut genug!

    Es hilft mir aber nicht wenn es pro Client nur wenig Zeit ist, aber in Summe recht lange dauert. Insbesonders wenn ich die Daten in 15Sekunden dumpen kann und dann eine Ewigkeit brauche um die Zeit über einen Prozess umzurechnen.

    Daher war meine Frage ob Du/Jemand eine bessere Methode weiß bzw. vielleicht eine Formel oder gar ein UDF dafür hat!

    lg
    Racer

  • Zeitumrechnung von LastLogonTimeStamp

    • Racer
    • 23. Oktober 2015 um 11:37

    Liebe AutoItler!

    Scheinbar bin ich zu doof eine Umrechnung von einem Timestamp aus dem AD korrekt umzurechnen. Ich habe mir die Finger bis jetzt Wundgegoogelt und auch die Forumsuche gequält...leider war für mich nichts verwertbares dabei!

    Folgendes Problem habe ich zu lösen:

    Ich möchte von einem Domaincontroller das letzte Logon eines Client (PC) ermitteln. Dazu lese ich das Attribut "LastLogonTimeStamp" aus. Leider wird das in einem 100ms 64Bit Zahl zurückgegen das die vergangene Zeit seit 1.1.1600 wiedergibt (wer hat sich nur so einen Schwachsinn ausgedacht :S )

    Als Output bekommt man z.B. 130886109585119932. Diese Zahl läßt sch jetzt mit w32tm /ntte 130886109585119932 auf ein sprechndes
    Datum/Zeit-Format umrechnen: 151488 13:15:58.5119932 - 06.10.2015 15:15:58


    Soweit alles ok. Wenn ich das aber über ein Dos (StdoutRead) umrechnen lasse, läuft mein Programm ca. gute 30 Minuten (für rund 20000 Clients) - das ist zulange!

    Ich habe auch diverse Versuche mit dem AD.UDF gemacht - auch nicht schneller!

    Bitte um Hilfe!

    lg
    Racer

  • Automatische Installation von USB Stick unter Win XP

    • Racer
    • 21. Oktober 2015 um 10:47

    Hallo!

    Das geht deutlich einfacher. BugFix hat es eh schon geschrieben: Es gibt Paramter für MSI - Installationen:

    lg
    Racer

    Windows ® Installer. V 5.0.7601.18896


    msiexec /Option <Erforderliche Parameter> [Optionale Parameter]


    Installationsoptionen
    </package | /i> <Produkt.msi>
    Installiert oder konfiguriert ein Produkt.
    /a <Produkt.msi>
    Administrative Installation - Installiert ein Produkt im Netzwerk.
    /j<u|m> <Produkt.msi> [/t <Transformliste] [/g <Sprach-ID>]
    Kündigt ein Produkt an - m für alle Benutzer, u für den aktuellen Benutzer
    </uninstall | /x> <Produkt.msi | Produktcode>
    Deinstalliert das Produkt.
    Anzeigeoptionen
    /quiet
    Hintergrundmodus, keine Benutzerinteraktion
    /passive
    Unbeaufsichtigter Modus - Nur Statusleiste
    /q[n|b|r|f]
    Legt die Benutzeroberfläche fest.
    n - Keine Benutzeroberfläche
    b - Einfache Benutzeroberfläche
    r - Reduzierte Benutzeroberfläche
    f - Vollständige Benutzeroberfläche (Standard)
    /help
    Hilfeinformationen
    Neustartoptionen
    /norestart
    Kein Neustart nach Abschluss der Installation
    /promptrestart
    Benutzereingabe, falls Neustart erforderlich ist
    /forcerestart
    Computer nach Abschluss der Installation immer neu starten
    Protokolllierungsoptionen
    /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <Protokolldatei>
    i - Statusmeldungen
    w - Nicht schwerwiegende Warnungen
    e - Alle Fehlermeldungen
    a - Ausführung von Aktionen
    r - Aktionsspezifische Einträge
    u - Benutzeranforderungen
    c - Ursprüngliche Benutzeroberflächenparameter
    m - Informationen betreffend zuwenig Arbeitsspeicher oder schwerwiegendem Abbruch
    o - Meldungen betreffend zuwenig Speicherplatz
    p - Terminaleigenschaften
    v - Ausführliche Ausgabe
    x - Zusätzliche Debuginformationen
    + - An vorhandene Protokolldatei anhängen
    ! - Jede Zeile ins Protokoll aufnehmen
    * - Alle Informationen mit Ausnahme der Optionen v und x protokollieren
    /log <Protokolldatei>
    Entspricht /l* <Protokolldatei>
    Aktualisierungsoptionen
    /update <Update1.msp>[;Update2.msp]
    Übernimmt Update(s).
    /uninstall <Patchcode-GUID>[;Update2.msp] /package <Produkt.msi | Produktcode>
    Entfernt Update(s) für ein Produkt.
    Reparaturoptionen
    /f[p|e|c|m|s|o|d|a|u|v] <Produkt.msi | Produktcode>
    Repariert ein Produkt.
    p - nur wenn eine Datei fehlt
    o - wenn eine Datei fehlt oder eine ältere Version installiert ist (Standard)
    e - wenn eine Datei fehlt oder eine gleiche bzw. ältere Version installiert ist
    d - wenn eine Datei fehlt oder eine andere Version installiert ist
    c - wenn eine Datei fehlt oder die Prüfsumme nicht mit dem berechneten Wert übereinstimmt
    a - Erzwingt die Neuinstallation aller Dateien
    u - Alle erforderlichen benutzerspezifischen Registrierungseinträge (Standard)
    m - Alle erforderlichen Computerspezifischen Registrierungseinträge (Standard)
    s - Alle vorhandenen Verknüpfungen (Standard)
    v - Führt von der Quelle aus und speichert das lokale Paket zwischen
    Öffentliche Eigenschaften festlegen
    [PROPERTY=Eigenschaftswert]


    Weitere Informationen betreffend der Befehlszeilensyntax erhalten Sie im Windows ® Installer SDK.

  • Taskleiste automatisch ausblenden

    • Racer
    • 29. September 2015 um 10:36

    Hallo!

    Meine Lösung sieht so aus:

    Hidetask:

    AutoIt
    WinSetState("[Class:Shell_TrayWnd]","",@SW_HIDE)
    WinSetState("Start","",@SW_HIDE)

    Showtask:

    AutoIt
    WinSetState("[Class:Shell_TrayWnd]","",@SW_SHOW)
    WinSetState("Start","",@SW_SHOW)


    lg
    Racer

  • Skript als anderer Benutzer starten

    • Racer
    • 29. September 2015 um 10:31

    Steht in de Doku: ...The service runs in the SYSTEM account....

    https://www.autoitscript.com/forum/topic/10…system-account/

    lg
    Racer

  • WaWi in AutoIt - Projekt für AutoIt / SQLite zu groß?

    • Racer
    • 22. September 2015 um 08:19

    Hallo!

    Deine Anforderung sollte für AutoIT kein Problem sein. Ich habe für meine Freundin die Selbstständig ist eine komplettes Kassenbuch inkl. Ausgabe für die Steuerprüfung (als PDF) geschrieben - in zwei Wochen!

    Meine Erfahrung ist das es nicht immer gleich eine Datenbank sein muss, sondern auch mal ein lokales File reicht. Selbst bei grösseren Datenmengen ist das kein Problem. 20000 Einträge kann ich in ca. 1 bis 2 Sekunden (auf einen kleinen i3) durchsuchen. Sollte für den Anfang reichen. Durch geschickte Programmierung kann man sicher auch noch rausholen (Querverweise).

    Die Ausgabe über PDF war ein bißchen "zickig" da in der UDF einige Fehler sind. Diese habe ich ausgebessert und jetzt funkt es echt super!

    lg
    Racer

    PS: ganz wichtig: Das Forum hat mir bei einigen Fragen zu meine Projekt sehr weitergeholfen: Danke nochmals an alle!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™