Cool, das war genau das was ich gebraucht hatte, funktioniert super, danke noch mal
Beiträge von casi4712
-
-
okidoki, das probier ich mal aus, denkeschönn
-
hehe Danke vielmals, aber wie kommt es dass es fürs Entpacken keinen Befehl gibt;) Sehr positiv ist mir aufgefallen, dass der Download nur ein Bruchteil dauert, wie der PS Befehl. Ok dann bin ich erst mal wieder gebrieft und bedanke mich recht herzlich
eine schöne Woche noch
PS: achso: Wie bereits erwähnt in C oder Programme kann er nicht speichern, trotz admin Rechten, dat ist leider blöd (also die Autoit DL Variante)
-
oh irgendwie haben wir uns überschnitten, danke noch mal Bitnugger
-
ein Problem was sich mit dieser Methode ergibt, ist, dass ich hiermit nicht in c oder c:\programme speichern kann, und zwar trotz #RequireAdmin
-
okidoki, das klappt und ist auch sehr elegant, Hut ab. Wieder was dazu gelernt. Trotzdem bleibt bei mir die Frage zurück, warum der Befehl mit Powershell moniert wird, als nächtes würde dann nämlich kommen, wie entpacke ich das, da häte ich auch nen einfachen PS Befehl. Wollte mein Script eigentlich nicht so aufblähen.
danke noch mal und lg
-
Hallo liebe Forengemeinde,
mal ne kurze Frage, ich versuche mit einem Powershellbefehl eine Datei ziehen zu lassen, was ist an diesem ausdruck auszusetzen, der Befehl selber funktioniert in CMD allein.
AutoIt$command = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -command Invoke-WebRequest -Uri "https://download.teamviewer.com/download/TeamViewerPortable.zip" -OutFile "teamviewer.zip"" RunWait($command, "", @SW_Show)
vielen Dank schon mal und eine schöne Woche noch
-
Hallo Concara,
cool das klappt wunderbar, recht herzlichen Dank
und eine schöne Woche noch
-
Hallo noch mal,
eine Frage noch, aber wie sieht es aus mit Inputfeldern, also, ZB dieses hier
Da scheint es nicht so einfach zu funktionieren, brauch ich da noch zwingend ein SubmitButton?
lg und ein wunderschönes Wochenende
-
ok dann habe ich da wohl zu kompliziert gedacht und er schreibt automatisch mit IniWrite die neu gesetzten Werte, zumindest bei RadioButtons.
Vielen Dank und schönen Abend
-
Hallo allerseits, ich versuche für ein kleines Formatierungstool, eine Settings GUI zu schreiben, diese liesst zunächst aus einer vorhandenen INI Datei die Werte, das klappt auch. Bei setzen von Haacken bei trayitem Einträgen hatte ich dass schon gemacht, aber hier funktioniert es irgendwie nicht. Er läuft irgendwie in eine Art Dauerschleife. Hier mal der wesentliche Teil des Scrips: Vielleicht sieht ja einer was ich falsch gemacht habe. Wahrscheinlich nur wieder den falschen Befehl verwendet:(
C
Alles anzeigen#include <Array.au3> #include <Constants.au3> #include <ScreenCapture.au3> #include <File.au3> #include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <WinAPIError.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiEdit.au3> Opt("TrayMenuMode",1) ; Hide default tray menu items Opt("TrayAutoPause", 0); This will allow you to click on the TrayIcon without pause the script TraySetIcon("Shell32.dll",-27) TraySetClick(8) ;only show the menu when right clicking #Tray Tip TraySetToolTip ("TrayTool") global $idButton_200, $Formatartset, $editradio global $checkPathF = _PathFull("usf.ini", @ScriptDir) $autostartitem = TrayCreateItem("mit Windows starten") $Settings= TrayCreateItem("Einstellungen") $exititem = TrayCreateItem("Exit") Firststartcheck() startcheck() ;CHECKS------------------------------------------------------------------------------------------------------ ;------------------------------------------------------------------------------------------------------------ Func Firststartcheck() If FileExists ($checkPathF) = 1 Then ;Checkdatei auf Existenz prüfen ; Nichts tun Else _FileCreate($checkPathF);ini Datei erstellen ;Standard Settings setzen $formatart = "1" ;1:Qickformat 0:Longformat $formattyp = "FAT32" $ILWprev = "1" IniWrite("USF.ini","settings","Formatart", $formatart); StandardSetting LangFormat IniWrite("USF.ini","settings","Formatyp", $formattyp); StandardSetting LangFormat IniWrite("USF.ini","settings","Preview", $ILWprev); StandardSetting LangFormat FileCreateShortcut(@ScriptFullPath, @StartupDir & "\USB-Formatter.lnk", @ScriptDir, "", "AutoIT Script Description") ;TrayItem Stati Grundeinstellung setzen TrayItemSetState($autostartitem, $TRAY_CHECKED) ; TrayItemSetState($ILWprevItem, $TRAY_CHECKED) SplashTextOn("Achtung", "Das Tool befindet sich im Traymenu ⇲ ! ", 1000, 100, 900, 950, 1, "Verdana") sleep(5000) SplashOff() EndIf EndFunc ;------------------------------------------------------------------------------------------------------------ ;------------------------------------------------------------------------------------------------------------ Func startcheck();Auslesen Ini Datei If FileExists(@StartupDir & "\USB-Formatter.lnk") Then TrayItemSetState($autostartitem, $TRAY_CHECKED) Else TrayItemSetState($autostartitem, $TRAY_UNCHECKED) EndIf ;Einlesen der Parameter aus IniDatei Global $Formatart = IniRead("USF.ini","settings","Formatart", "") Global $Formattyp = IniRead("USF.ini","settings","Formatyp", "") Global $ILWprev = IniRead("USF.ini","settings","Preview", "") ;TrayItemStati neu setzen EndFunc ;------------------------------------------------------------------------------------------------------------ ;MAIN LOOP--------------------------------------------------------------------------------------------------- While 1 Switch TrayGetMsg() ;switch seems nicer in this case Case 0 ContinueLoop Case $TRAY_EVENT_PRIMARYDOWN ;reaction to left clicking Case $settings TrayItemSetState($settings,$TRAY_UNCHECKED) ;stop the automated (un)checking when clicked Settings() Case $autostartitem If BitAND(TrayItemGetState($autostartitem), $TRAY_CHECKED) Then FileCreateShortcut(@ScriptFullPath, @StartupDir & "\USB-Formatter.lnk", @ScriptDir, "", "AutoIT Script Description") Else FileDelete(@StartupDir & "\USB-Formatter.lnk") EndIf Case $exititem ExitLoop EndSwitch WEnd Exit ;------------------------------------------------------------------------------------------------------------ Func Settings() ;Create a GUI with various controls. Local $hGUI = GUICreate("SETTINGS", 400, 200) Local $idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25) Local $aWindow_Size = WinGetPos($hGUI) Local $aWindowClientArea_Size = WinGetClientSize($hGUI) AutoItSetOption ( "option" ) ; Display the GUI. GUISetState(@SW_SHOW, $hGUI) GUIStartGroup() $hRadio_1 = GUICtrlCreateRadio("FAT32", 20, 30, 200, 20) $hRadio_2 = GUICtrlCreateRadio("ExtFAT", 20, 50, 200, 20) $hRadio_3 = GUICtrlCreateRadio("NTFS", 20, 70, 200, 20) GUIStartGroup() $hRadio_4 = GUICtrlCreateRadio("Qick Format", 20, 130, 200, 20) $hRadio_5 = GUICtrlCreateRadio("Long Format", 20, 150, 200, 20) GUIStartGroup() $hGroup_1 = GUICtrlCreateGroup("Group 1", 10, 10, 120, 90) $hGroup_2 = GUICtrlCreateGroup("Group 2", 10, 110, 120, 70) Local $idInputName = GUICtrlCreateInput("Ihr Name", 170, 20, 150, 20) Local $idInputStickName = GUICtrlCreateInput("Stickname", 170, 40, 150, 20) ;Einlesen aus Ini If $Formattyp = "FAT32" Then GUICtrlSetState ($hRadio_1, $GUI_CHECKED) EndIf If $Formattyp = "ExtFat" Then GUICtrlSetState ($hRadio_2, $GUI_CHECKED) EndiF If $Formattyp = "NTFS" Then GUICtrlSetState ($hRadio_3, $GUI_CHECKED) ENDIF If $Formatart = "1" Then GUICtrlSetState ($hRadio_4, $GUI_CHECKED) ENDIF If $Formatart = "0" Then GUICtrlSetState ($hRadio_5, $GUI_CHECKED) ENDIF ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idOK ExitLoop ; Select ; Case BitAND(GUICtrlRead($hRadio_3), $GUI_CHECKED) ; MsgBox(4096, "$hRadio3", GUICtrlRead($hRadio_3, 1)) ; Case BitAND(GUICtrlRead($hRadio_2), $GUI_CHECKED) = $GUI_CHECKED ; MsgBox(4096, "$hRadio2", GUICtrlRead($hRadio_2, 1)) Case BitAND(GUICtrlRead($hRadio_3), $GUI_CHECKED) = $GUI_CHECKED MsgBox(4096, "$hRadio3", GUICtrlRead($hRadio_3, 1)) EndSwitch WEnd GUIDelete($hGUI) EndFunc ;==>Example
Liebe Dank schon mal und eine schöne Woche noch
-
Jo danke sehr, das Problem ist halt, sobald kein Stick angeschlossen ist, wird nur lapidar geschrieben, es ist ein Fehler aufgetrten, dass ist für mein MInitool natütlich sehr unschön, wie kann ich da abfangen?
lg und Danke noch mal
-
ich muss mich wohl korrigieren, der Formataufruf funktionierte doch parallel, aber einer meiner Sticks hatte ioffenbar einen Fehler. Das bringt mich zu dern Frage @ Musashi, Du hattest doch da eine Fehlerkorrektur in deinem Scriptvorschlag, hätte die noin diesem Falle nicht anspringen müssen? Ok mit DT_All geht jetzt auch:)
@Nugger, ja dass ist mir schon klar mit den Arays;)
Vielen Dank noch mal an alle
schönen Sonntah noch
-
jo, bins noch mal kurz, dass ist eine super elegante Lösung.
AutoIt
Alles anzeigen#include <Array.au3> Local $aArray = DriveGetDrive($DT_REMOVABLE) ; ($DT_REMOVABLE) , ($DT_ALL) If @error Then Exit MsgBox(BitOR(4096, 16), "Message : ", "Es ist ein Fehler aufgetreten") Else _ArrayColInsert($aArray, 1) For $i = 1 To $aArray[0][0] $aArray[$i][1] = "DRIVETYP=" & DriveGetType($aArray[$i][0], $DT_DRIVETYPE) Next _ArrayColInsert($aArray, 2) For $i = 1 To $aArray[0][0] $aArray[$i][2] = "BUSTYPE=" & DriveGetType($aArray[$i][0], $DT_BUSTYPE) Next _ArrayColInsert($aArray, 3) For $i = 1 To $aArray[0][0] $aArray[$i][3] = "DRIVELABEL=" & DriveGetLabel($aArray[$i][0]) Next _ArrayDisplay($aArray) EndIf For $i = 1 To $aArray[0][0] Run(@ComSpec & " /c " & "format " & $aArray[$i][0] & " /FS:FAT32 /y", "", @SW_SHOW) ConsoleWrite($aArray[$i][0] & @CRLF) ; *** nur zur Testanzeige Next
Nur das Grundproblem bleibt bestehen, er öffnet zwar noch 2 Fenster, aber wird immer noch nacheinander abgearbeitet, so dass die erhoffte Zeitersparnis für den Kollegen, der mitunter etliche Sticks formatieren muss, nicht unbedingt gegeben ist, aber dass wird wahrscheinlich mit dem Format Befehl selber zusammenhängen, denke ich mal.
$DT_ALL für alle anzeigen kunktioniert im Übrigen nicht, da zeigt er immer noch nur alle Removables an, btw
-
cool, jetzt kommt langsam Licht ins Dunkel, aber wie gesagt ich mach nen Infofenster an den Anfang, zur Sicherheit:)
recht herzlichen Dank erstmal für Deine Mühe, wie gesagt das mit den Arrys in Autoit werde ich noch vertiefen müssen
lg und schönes WE noch
-
Hallo nochmal,
zunächst noch mal zu AspirinJunkie
das mit Run stimmt zumindest halb, er öffnet zwar bei SHOW beide CMD Fenster, aber er wartet mit dem formatieren schön ab bis das erste fertig ist.
Run(@ComSpec & " /c " & "format " & $line & " /FS:FAT32 /y", "", @SW_SHOW)
ich gehe davon aus dass nur an diedem Ausdruck noch was falsch ist
Musashi: So jetzt kommt ein Fenster, dort zeig ter an 2 gefundene und die beiden Buchstaben der gefundenen Sticks. Wo müsste ich denn in deinem Script die Formatanweisung einfügen und wie binde ich da das Array richtig ein?
-
Also ich habe das script jetzt mal getestet, ich seh schon Thema Autoit und Arays muss ich mich nich mit beschäftigen, nichtsdestotrotz, das Script erkennt bei mir keine Usb Sticks, eugentlich passiertt gar nichts.
lg
chris
-
okidoki, vielen Dank für die Antworten, werd edass jetzt erst mal testen, danke auch Racer, ich denke das Script kann man auch noch auf USB Sticks anpassen, vielleicht Ernennungsmerkmal Kapazität..
lg und schönes Wochenende
-
hm aber nicht wenn ich die sticks nacheiander formatieren, bei meinem Script wartet er ja erst ab bis ein Vorgang fertig ist, dass kann man wohl nicht mit dem 10 maligen Starten von Notepad vergleichen;)
lg und schönen Abend noch
-
Jo danke erst mal, also ich habe das eigentlich ausgiebig gestestet, auch mit anderen Datenträgern, ich habe nur Driveletters von USB Sticks bekommen. Ok laut MS ist 2 generell Rmovable Drive, da kommt eh aber noch ne Arnmeldung vorher rein. Aber für bessere Vorschläge, die Driveletter zu ermitteln, bin ich gern zu haben.
Warum das parallel laufen soll, weil es bei meheren eingesteckten Sticks Zeit spart. Ein Kollege hat viele USB Sticks zu formatieren, das ist der Hintergund. Aber diese Formatprozesse parallel anzustarten geht wahrscheinlich nicht aus der Schleife raus.:( Und Autoit ist doch zum automatisieren, da lässt zumindest de Name drauf schliessen...:)
lg
Chris