Hallo zusammen,
hat jemand die 4-er Version?
War in der Ausgabe PC Magazin DVD 01/2008 dabei.
Hallo zusammen,
hat jemand die 4-er Version?
War in der Ausgabe PC Magazin DVD 01/2008 dabei.
Hallo zusammen,
ich bin auf diesen interessanten Beitrag gestossen.
Gibt es dazu schon eine konkrete Lösung?
Ich habe mir IOM schonmal angeschaut - finde ich ganz interessant, aber solch eine
Prüfung auf bereits installierte Versionen wäre schon sehr hilfreich.
Ich bin auch auf einen recht interessanten Ansatz gestoßen den ich hier
mal reinstelle - hier fehlt halt noch die Prüfroutine.
$Form = GUICreate("Bitte auswaehlen", 350, 360) ; will create a dialog box that when displayed is centered
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Programme:", 10, 10, 120, 20)
$check1 = GUICtrlCreateCheckbox("Firefox 2.0", 10, 30, 120, 20)
$check2 = GUICtrlCreateCheckbox("7 Zip", 10, 50, 120, 20)
$check3 = GUICtrlCreateCheckbox("CCleaner", 10, 70, 120, 20)
$check4 = GUICtrlCreateCheckbox("FreePDF", 10, 90, 120, 20)
$check5 = GUICtrlCreateCheckbox("Acrobat Reader 7.0.8", 10, 110, 120, 20)
$check6 = GUICtrlCreateCheckbox("FreeUndelete", 10, 130, 120, 20)
$check7 = GUICtrlCreateCheckbox("Open Office 2.0.4", 10, 150, 120, 20)
$check8 = GUICtrlCreateCheckbox("Ad-Aware", 10, 170, 120, 20)
$check9 = GUICtrlCreateCheckbox("WinRAR", 10, 190, 120, 20)
$check10 = GUICtrlCreateCheckbox("RegCleaner", 10, 210, 120, 20)
$check11 = GUICtrlCreateCheckbox("Total Commander 6.0", 10, 230, 120, 20)
$check12 = GUICtrlCreateCheckbox("BurnerXP Pro 3", 10, 250, 120, 20)
GUICtrlCreateLabel("Installierte Version:", 200, 10)
[/autoit] [autoit][/autoit] [autoit];~ $msgbutton = GUICtrlCreateButton("msgbox", 10, 330)
[/autoit] [autoit][/autoit] [autoit]GUISetState() ; will display an dialog box with checkbox
[/autoit] [autoit][/autoit] [autoit]$file = GUICtrlCreateInput(@ProgramFilesDir, 10, 270, 170, 20)
[/autoit] [autoit][/autoit] [autoit]$ok = GUICtrlCreateButton("Installieren", 10, 300)
[/autoit] [autoit][/autoit] [autoit]$checkver = GUICtrlCreateButton("Installierte Versionen prüfen", 200, 300)
[/autoit] [autoit][/autoit] [autoit]; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
Switch $msg
[/autoit] [autoit][/autoit] [autoit]Case $ok
[/autoit] [autoit][/autoit] [autoit]$pfad = GUICtrlRead($file)
[/autoit] [autoit][/autoit] [autoit]FileDelete(@StartupCommonDir & "\installmenue.exe")
[/autoit] [autoit][/autoit] [autoit]If GUICtrlRead($check1) = $GUI_CHECKED Then
BlockInput(1)
$ID = Run("Firefox20.exe")
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 30, 50) ; first cell 50 width
GUICtrlCreateLabel("C:\Programme", 200, 30, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check2) = $GUI_CHECKED Then
$ID = RunWait($_path &"\" & $_soft & "\" & "Tools\Packer\7-Zip\" & "7z457.exe /S")
;Installationsscript
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 50, 50) ; first cell 50 width
GUICtrlCreateLabel(FileGetVersion (@ProgramFilesDir & "\7-zip\7z.exe"), 200, 50, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check3) = $GUI_CHECKED Then
$ID = ShellExecuteWait($_soft & "\" & "CCleaner.cmd")
;Installationsscript
EndIf
If GUICtrlRead($check4) = $GUI_CHECKED Then
$ID = Run("gs853w32.exe")
BlockInput(1)
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID2)
GUICtrlCreateLabel("Done", 150, 90, 50) ; first cell 50 width
GUICtrlCreateLabel("C:\ghostskript", 200, 90, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check5) = $GUI_CHECKED Then
BlockInput(1)
$ID = Run("Ar708de.exe /S /v/qb")
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 110, 50) ; first cell 50 width
GUICtrlCreateLabel("C:\Programme", 200, 110, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check6) = $GUI_CHECKED Then
$ID = Run("freeundelete.exe")
BlockInput(1)
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 130, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 130, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check7) = $GUI_CHECKED Then
BlockInput(1)
$ID = RunWait("OO204.exe /S /D=" $pfad & "\Open Office""")
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 150, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 150, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check8) = $GUI_CHECKED Then
BlockInput(1)
$ID = Run("aawsepersonal.exe")
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 170, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 170, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check9) = $GUI_CHECKED Then
BlockInput(1)
$ID = Run("wrar361.exe")
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 190, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 190, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check10) = $GUI_CHECKED Then
BlockInput(1)
$ID = Run("RegCleaner.exe")
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 210, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 210, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check11) = $GUI_CHECKED Then
BlockInput(1)
$ID = Run("totalcommander60.exe")
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 230, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 230, 150) ; first cell 50 width
EndIf
If GUICtrlRead($check12) = $GUI_CHECKED Then
$ID = Run("xpburner.exe")
BlockInput(1)
;Installationsscript
BlockInput(0)
ProcessWaitClose($ID)
GUICtrlCreateLabel("Done", 150, 250, 50) ; first cell 50 width
GUICtrlCreateLabel($pfad, 200, 250, 150) ; first cell 50 width
EndIf
Case $GUI_EVENT_CLOSE
ExitLoop
;~ Case $msgbutton
$output = ''
For $x = 1 To 11 Step 1
If GUICtrlRead(Eval("check" & $x)) = $GUI_CHECKED Then $output = $output & ControlGetText($Form, '', Eval("check" & $x)) & @CRLF
Next
msgbox(0,"",$output)
EndSwitch
WEnd
ich werde das jetzt ganz anders lösen;
im Prinzip ändert sich meist nur die Route und die kann ich grundsätzlich
ja abfragen.
Ich denke wahrscheinlich noch zu sehr in Batch
Wenn ein Pfad hinzukommt, compiliere ich halt neu.
VG und vielen Dank an Alle!
Jörg
...dazu muß aber AutoIt installiert sein
die Idee mit der ini stammt nicht von mir - das wurde halt hier genannt.
na OK - wenn es nicht geht, dann geht es halt nicht;
das ist zumindest mal 'ne klare Aussage.
ZitatOriginal von peethebee
Meine Frage, was und warum du machen willst, hast du immer noch nicht beantwortet.
peethebee
hm - ich weiß jetzt echt nicht was ich darauf sagen soll...
ich definiere Variablen - das sind in aller Regel Verzeichnisstrukturen.
Diese lese ich per #include in mein(e) Script(e) ein;
Das Script kopiert Dateien, führt kleine Installationen und Updates durch.
Die Verzeichnisstruktur der Sourcedaten kann sich aber ändern.
Vorteile:
ich definiere die Variablen einmal und nicht in jedem Script.
bei Änderungen/Erweiterungen ändere ich nur an einer Stelle
kleiner Nachteil und Grund dieses Threads:
- bei Änderungen/Erweiterungen an der var.au3 muß das Script, welches den
#include Befehl enthält, neu compiliert werden.
Ich habe das bisher halt mit einer Batchdatei gemacht und möchte dies in
AutoIt übertragen, weil ich da mehr Möglichkeiten sehe.
ja schon, aber ich kann doch die Variable nicht mehr direkt ansprechen;
ich brauche immer die Zeilennummer.
warum klappt das dann, wenn ich im Script direkt die Variablen definiere?
Es ist sogar recht wahrscheinlich, daß ich Programmabläufe (noch) nicht
verstanden habe - deswegen stelle ich hier ja meine Fragen, die mir bis jetzt
auch absolut klasse beantwortet wurden.
Warum sich dieser Thread zu solch einem Fiasko entwickelt, ist mir schleierhaft.
Im Script direkt definiere ich:
$_pro="Projekte"
$_war="Wartung"
$_tool="Tools"
$_brow="Browser"
$_back="Backup"
$_graf="Grafik"
$_save="Sicherheit"
$_opt="Optimierung"
$_desk="WinDesktop"
$_short=$_war & "\" & $_pro & "\Copy_Shortcuts"
$_temp=$_war & "\" & $_pro & "\Tempfolder"
ein simpler Test mit MsgBox(0, "", $_temp) ergibt Wartung\Projekte\Tempfolder
Mit der ini klappt das nicht und das verstehe ich nicht.
brauchst Dich ja nicht mit diesem Thread zu beschäftigen, wenn Dir mein
Ton nicht passt.
Ich hab auch mit keiner Silbe erwähnt, eine ini zu compilieren.
Es geht um ein Script, welches bei Deiner "Lösung" neben dem Neucompilieren
zusätzlich bei jeder Änderung der ini auch noch mit Daten versorgt werden
müsste.
sehr sinnig
ich suche nach einer Möglichkeit, mir das compilieren zu ersparen und
Du schlägst mir sowas vor...
Na vielleicht hat ja jemand noch die zündende Idee!?
dann muß ich ja jede Variable doppelt anlegen!
Das ist doch totaler Quatsch.
das wird glaub ich uferlos;
peethebee : ich schlage natürlich die Hilfe nach, kann aber "Assign" nicht als
meinen Problemlöser erkennen;
@Vollnoob: auch bei "Dim" kann ich nicht erkennen, wie ich es für mein
"Problem" einsetzen sollte;
also nochmal:
ich habe eine Datei "var.au3" mit folgendem Inhalt:
$_pro="Projekte"
$_war="Wartung"
$_tool="Tools"
$_brow="Browser"
Diese wird per #include "var.au3"
integriert;
wenn sich nun am Inhalt dieser "var.au3" etwas ändert, dann muß ich neu
compilieren;
wie kann ich das verhindern?
In einer Batchdatei sage ich an der Stelle einfach: call var.bat - und gut.
VG
Jörg
hm peethebee - was willst Du mir damit sagen?
ich hab ja nichts gegen kurze und prägnante Aussagen, aber einfach so
'ne Funktion hier reinzuwerfen...
anscheinend gibt's nicht das was ich suche, oder ich drücke mich zu undeutlich aus...
VG
Jörg
na gut, aber für meinen Zweck ist das doch gar nicht brauchbar:
ich definiere einerseits Variablen, die (für mich) einen logischen Namen haben
(z.B. $_save für "Sicherheit")
Mit diesen Arrays muß ich nun aber die Zeilennummer abfragen:
$var[1][1]
das führt aber den Sinn einer Variable ad absurdum - was nun, wenn ich zwischen zwei Variablen eine weitere einfüge?
Dann stimmt gar nix mehr;
ich spiel das mal weiter:
[var]
$_pro="Projekte"
$_war="Wartung"
$_tool="Tools"
$_brow="Browser"
$_back="Backup"
$_graf="Grafik"
$_save="Sicherheit"
$_opt="Optimierung"
$_desk="WinDesktop"
$_short=$_war & "\" & $_pro & "\Copy_Shortcuts"
$_temp=$_war & "\" & $_pro & "\Tempfolder"
$var[11][1] ergibt nun den für mich nicht brauchbaren String
$_war & "\" & $_pro & "\Tempfolder"
Arbeite ich hingegen mit #include, dann kommt hier richtig
Wartung\Projekte\Tempfolder heraus.
Das Beispiel hab ich natürlich gesehen und ausprobiert;
sorry, aber mir hilft dieses Beispiel nicht, weil ich es überhaupt nicht verstehe.
hm - nur so einfach isses wohl nicht:
IniReadSection("var.ini", "var")
wobei die var.ini so aussieht:
[var]
$_save="Sicherheit"
$_opt="Optimierung"
die Hilfe sagt dazu:
Gibt ein 2-dimensionales Array zurück, in dem element[n][0] der Schlüssel und element[n][1] der Wert ist.
Was um alles in der Welt ist nun ein Array und wie gehe ich damit um?
Gibt's nicht was einfaches wie #include, nur soll es halt jedesmal eingelesen werden?
VG
Jörg
Eigentlich ganz einfach - filechangedir hatte ich irgendwie total übersehen.
Vielen Dank!
Hallo zusammen,
bis jetzt habe ich Variablen in einer Datei "Var.au3", die ich mit #include fest
einbinde;
wenn nun eine Variable hinzukommt, dann muß ich ja jedesmal neu compilieren;
welche Möglichkeit bietet mir AutoIt bei diesem Problem(chen)?
Habe schon iniread und fileread probiert, klappt aber leider net.
VG
Jörg
wie .. ?
@workingdir&".." geht nicht
@workingdir.. geht nicht
".."&@workingdir geht nicht
..@workingdir geht nicht
Hallo zusammen,
wie kann man in ein übergeordnetes Verzeichnis wechseln - siehe "cd.." ?
Mein Script läuft z.B. im Ordner E:\Software\Scripts\ (=@workingdir);
habe ich das nun auf einem USB Stick, könnte sich der Pfad wie folgt ändern:
G:\Projekte\Software\Scripts\ - das ergibt eine neue @workingdir;
nun will ich aus dem Script z.B auf eine Datei in der Ebene \Software\ zugreifen.
Wie mache ich das?
VG
Jörg