Hallole,
ich führe in der FA eine Db in der Computerdaten erfasst werden. Um unsere Testrechner mit einem Label zu versehen packe ich die dazu notwendigen Daten aus der Db in den
Zwischenspeicher und übergebe sie per Autoitscript an den Editor des LabelDruckers (Brother PTouch -> PTouch-Editor). Im Editor formatiert mein Script das Label und öffnet den Druckdialog.
Das initiieren des Drucks habe ich nicht automatisiert, da je nach Label ein anderes Label-Band zuerst eingesetzt werden muss. Das funzt bei mir tadellos...
Nach meiner Erfahrung kommt es auf den Label-Drucker und dessen Soft.-/Firmware an, ob und wie Daten übernommen werden können...
Beiträge von hipfzwirgel
-
-
Hallo Moombas,
vielen lieben dank für deinen Denkanstoß. Ich muss sagen ich stand mir hier mal wieder selbst im Weg.
Natürlich könnte man eine Bios-Option mit AutoIt setzen. Habe ich selbst ja schon in Einsatz
Aber dieses Vorhaben hier setze ich auf erledigt, da es viel zu umfangreich werden würde und dazu fehlt mir die Zeit und die Muse:
Die BIOS-Optionen sind nämlich nicht alle über einen Namespace, z.B. \root\HP\InstrumentedBIOS zu setzen sondern über mehrere. So benötigen z.B. TPM-Optionen
den Namespace \root\cimv2\Security\MicrosoftTpm. Daraus folgernd, müsste ich für jede Option erstmal eruieren über welchen Namespace
die jeweilige Option zu setzen ist.
Abschließend möchte ich allen die geantwortet haben noch meinen herzlichsten Dank aussprechen... -
Hallo an die Antworter,
die Hersteller Tools sind mir Bekannt. Ich wollte aber ein kleines Tool schreiben, mit dem ich einige wenige BiosOptionen
auf fabrikneue Rechner setzen kann die dann in etwa der Firmenvorgabe entsprechen.
Kann ich dann davon ausgehen das sich mit Autoit per WMI BIOS-optionen nicht ändern lassen? -
Hallo Gemeinde,
hat schon mal jemand mit Autoit eine Bios Option z.B. bei HP Fast Boot, Disable via wmi gesetzt? Das Auslesen ist mir klar aber
um den Eintrag auf Enable zu ändern möchte finde ich nichts...
Geht das überhaupt -
Hallo Aspirinjunkie,
blöd wenn man den Wald vor lauter Bäumen nicht mehr sieht. Klar, das hatte ich nicht im Focus. Danke für den Tipp. Funzt prima
@ Numeric: Danke für die Idee... -
Hallo Gemeinde,
ich teile die Zeilen einer Textdatei mit StringSplit. Diese enthalten je die BiosOption und deren Wert mit (z.B. System Management Command, Enable)CodeWhile True Local $line = FileReadLine($file) If @error <> 0 Then MsgBox($MB_ICONERROR, "@Error", @error, 5) ExitLoop EndIf Local $a_split = StringSplit($line, ", ", 3) WEnd
Ergebnis einer Zeile:
Row|Col 0
# 0|System Management Command
# 1|Enable
Wie schreibe ich am elegantesten die beiden Werte in ein 2D Array? Ich dachte an:Codelocal $nCount 0 . While True . _ArrayAdd($optionsArray[$nCount][0], $a_split[0]) _ArrayAdd($optionsArray[$nCount][1], $a_split[1]) $nCount += 1 WEnd
Da bringt er dann aber immer ein "Array variable has incorrect number of subscripts or subscript dimension range exceeded"
-
Hallo Kanashius und Racer,
zunächst möchte ich mich bei euch für eure Beiträge bedanken.
Ich glaube fast, das meine Frage etwas missverstanden wurde. ich will noch mal erklären:
Der Kopiervorgang läuft und die Progressbar wird auch angezeigt. Sobald ich aber i-ein anderes Fenster, manuell bewege, öffne, schließe oder das Progressbar-Fenster selber mit der Maus
anfasse, wird die Progressbar gestoppt (FehlerMeldung beim Anklicken des PB-Fensters: Not Responding). Der Kopiervorgang indes geht weiter.Code
Alles anzeigenIf FileExists($sSourceD) Then Local $hProgressProc = DllCallbackRegister('_ProgressProc', 'bool', 'uint64;uint64;uint64;uint64;dword;dword;handle;handle;ptr') ProgressOn('Kopieren', 'Copying' & @CRLF & "..." , '0%', -1, -1, $DLG_MOVEABLE) If Not _WinAPI_CopyFileEx($sSourceD, $sDestinationD, 0, DllCallbackGetPtr($hProgressProc)) Then _WinAPI_ShowLastError('Error copying' & $sSourceD) EndIf DllCallbackFree($hProgressProc) ProgressOff() Else MsgBox($MB_ICONERROR, "Fehler", "Die Quelldatei wurde nicht gefunden.") Exit EndIf ; Schritt 2: Entpacke die ISO-Datei $sValue1 = ShellExecuteWait("C:\Program Files\7-Zip\7z.exe", "x -aoa -y" & $sDestinationD & " -o" & $sDestinationExD) If @error Then MsgBox($MB_ICONERROR, "Fehler", "Fehler beim Entpacken der Datei. - " & $sValue1 & " - " & @error) Exit EndIf MsgBox($MB_ICONINFORMATION, "Erfolg", "Die ISO-Datei wurde erfolgreich kopiert und entpackt. - " & $sValue1 & " - " & @error) ;############################################################################################################################## Func _ProgressProc($iTotalFileSize, $iTotalBytesTransferred, $iStreamSize, $iStreamBytesTransferred, $iStreamNumber, $iCallbackReason, $hSourceFile, $hDestinationFile, $pData) #forceref $iStreamSize, $iStreamBytesTransferred, $iStreamNumber, $iCallbackReason, $hSourceFile, $hDestinationFile, $pData Local $iPercent = Round($iTotalBytesTransferred / $iTotalFileSize * 100) If $iPercent = 100 Then ProgressSet($iPercent, '', 'Complete') Sleep(1500) Else ProgressSet($iPercent, $iPercent & '%') EndIf Sleep(10) ; to slow down to see the progress bar If _IsPressed('1B') Then ;Abbruch wenn EXC-Taste gedrückt wird Return $PROGRESS_CANCEL Else Return $PROGRESS_CONTINUE EndIf EndFunc ;==>_ProgressProc
-
So, mit _WinAPI_CopyFileEx funktioniert das kopieren...
eine Frage noch an die Gemeinde:
Warum wird die Progressbar gestoppt sowie i-eine andere Fenster-Aktion durchgeführt wird? -
Eine Frage Noch:
ist es richtig das Der Code nur verschiebt?
Der Flag 2 und oder 3 hat keine Auswirkung darauf. Meine Testdatei wird immer nur verschoben...
Weiss jemand wie ich damit kopiere könnte?Habe gerade in der Hilfe gesehen das es auch ein _WinAPI_CopyFileEx gibt. Das wird die Lösung sein...
-
Hallo,
es steht fest: es liegt tatsächlich an den Dateiberechtigungen. Ich wollte eine andere Testdatei auf dem Share ablegen, das ging ebenfalls nicht.
Offenbar habe ich nur Zugriff ohne Schreibberechtigung. Daher kommt dort die Fehlermeldung "Kein Zugriff", während sie auf meinem Home-LW nicht kommt.
Projekt eingestampft - Thema Erledigt!!! -
Hallo Velted,
es scheint als das die Fehlermeldung doch am Share liegt. Ich habe in der Zwischenzeit nämlich den Vorgang mit meiner "Datensicherung" getestet(die Datei vom dortigen Share auf den lokalen Rechner kopieren)
und der Vorgang hat funktioniert. Ich suche jetzt zuerst mal warum es beim anderen Share nicht geht... Am Code liegt es wie es aussieht eher nicht. -
Hallo Velted,
vielen lieben Dank für dein Input.
Ich hatte ursprünglich die 3 als Flag drinstehen aber nachdem diese Fehlermeldung erschien habe ich die Flags durchgetestet. Leider
ohne Erfolg. Bin dann bei 5 "stehen" geblieben. Also auch mit der 3 kommt "Kein Zugriff". Die Datei führe ich als lokaler Admin aus
und Zugriff auf das Share besteht.
Weiß jemand wie ich feststellen kann, welcher Zugriff da gemeint sein könnte? -
Hallo Water,
ich habe den Code tatsächlich aus dem Forum und nutze ihn schon lange im Rahmen einer kleinen Datensicherung.
Dort aber erstelle ich ein ca. 15GB großes zip-Archiv und kopiere es auf ein Netzlaufwerk. Funkioniert auch super.
@ Musashi: vielen lieben Dank für den Tipp. Schau ich mir an... -
Hallo Gemeinde,
ich möchte regelmäßig eine größere Datei(ca. 600MB) von einem Netzlaufwerk auf die Festplatte kopieren.
Dies hatte ich mit folgendem Code versucht:AutoIt
Alles anzeigen#RequireAdmin #include <FileConstants.au3> #include <Misc.au3> #include <MsgBoxConstants.au3> #include <WinAPIEx.au3> #include <WinAPIDiag.au3> #include <WinAPIFiles.au3> #include <APIFilesConstants.au3> Global $sSourceD = "\\Netzlaufwerk\Test.iso" ; Pfad zur Quell-ISO-Datei Global $sDestinationP = "C:\Daten\Test.iso" ; Zielordner für das Entpacken Local $hProgressProc = DllCallbackRegister('_ProgressProc', 'bool', 'uint64;uint64;uint64;uint64;dword;dword;handle;handle;ptr') ProgressOn('Kopieren', 'Copying...', '0%', -1, -1, BitOR("", $DLG_MOVEABLE)) If Not _WinAPI_MoveFileEx($sSourceD, $sDestinationD, 5, DllCallbackGetPtr($hProgressProc)) Then _WinAPI_ShowLastError('Error copying ' & $sSourceD) EndIf DllCallbackFree($hProgressProc) ProgressOff() Func _ProgressProc($iTotalFileSize, $iTotalBytesTransferred, $iStreamSize, $iStreamBytesTransferred, $iStreamNumber, $iCallbackReason, $hSourceFile, $hDestinationFile, $pData) #forceref $iStreamSize, $iStreamBytesTransferred, $iStreamNumber, $iCallbackReason, $hSourceFile, $hDestinationFile, $pData Local $iPercent = Round($iTotalBytesTransferred / $iTotalFileSize * 100) If $iPercent = 100 Then ProgressSet($iPercent, '', 'Complete') Sleep(1500) Else ProgressSet($iPercent, $iPercent & '%') EndIf Sleep(10) ; to slow down to see the progress bar If _IsPressed('1B') Then ;Abbruch wenn EXC-Taste gedrückt wird Return $PROGRESS_CANCEL Else Return $PROGRESS_CONTINUE EndIf EndFunc ;==>_ProgressProc
Leider wird immer eine Fehlermeldung ausgegeben die aussagt: Zugriff verweigert. Zugriff auf das Share existiert. Mit Filecopy würde es funktionieren, da habe ich aber keine Progressbar.
Könnte mir bitte jemand auf die Sprünge helfen was ich da übersehe -
So, mit dem folgenden Code geht es:
Code$Homepage = "https://IP-Adresse If Not ProcessExists("firefox.exe") Then ; Wenn Firefox nicht gestartet ist, starte eine Instanz ShellExecute($Homepage) Else ; Wenn Firefox bereits gestartet ist, starte eine neue Instanz Run("C:\Program Files\Mozilla Firefox\firefox.exe -new-window " & $Homepage) EndIf
Thema erledigt. Vielen Lieben Dank für deine Unterstützung Aspirinjunkie
oh ich sah erst jetzt das Moombas etwas beigesteuert hat. Vielen lieben Dank auch dir dafür
Aber eine Frage: Was ist HKEY_LOCAL_USER ? Hast du dir eine eigene Registry geschrieben? -
Hallo Aspirinjunkie,
genau das ist Problem. Das hatte ich versucht aber er öffnet immer einen neuen Tab
anstatt ein neues Fensters.
Laut Firefoxhilfe müsste es so aussehen: firefox -new-window http://IPAdresse. Offenbar
setzt Shellexecute den Parameter hinten dran -
Hallo Gemeinde,
ich öffne mit
$Homepage = "https://ip-Adresse"
ShellExecute($Homepage)
eine Homepage mit dem Standardbrowser. Hier Firefox.
Nun möchte ich aber, dass das immer in einer neuen Instanz des Browsers geschieht und nicht wie
bisher als neuer Tab.CodeIf Not ProcessExists("firefox.exe") Then ; Wenn Firefox nicht gestartet ist, starte eine Instanz $Homepage = "https://ip-Adresse" ShellExecute($Homepage) Else ; Wenn Firefox bereits gestartet ist, starte eine neue Instanz ????????? EndIf
Was müsste bei den ? stehen.
-
Hallo Moombas,
ich habe dein "Codeschnipsel" erfolgreich getestet. Vielen lieben Dank dafür.
Thread ist somit erledigt. -
Hallo Moombas und SOLVE-SMART,
vielen Dank für eure Unterstützung. ich teste die Vorschläge und erstatte Bericht.
Falls ich heute nicht mehr dazu komme schon Mal ein Schönes WE und gutes Wetter -
Hallo Moombas,
vielen lieben Dank für deine Denkanstöße. Also ich bin überzeugt, das ich das richtige Handle habe. Zumindest stimmen die Angaben von
Taskmanager, Winlist und Autoitinfo überein, was die Handlenummer betrifft.
Ich habe es heute mit Winmove("Class:[TeamsWebView]") versucht. Leider nicht erfolgreich. Ich versuche es nochmal mit WinGetClassList
ob ich überhaupt den richtigen Classenname habe...