Ich hoffe es weiss doch noch jemand rat
Beiträge von Surfy
-
-
Hallo zusammen
Ich würde gerne alle Registry Einträge die mit MyPrint anfangen dynamisch löschen. Hier liegen diese Einträge, aber auch andere Drucker die erhalten bleiben sollen.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\MyPrintxx001
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\MyPrintxx00n
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\Microsoft XPS Document WriterWie kann ich sozusagen ein Wildcard löschen absetzen auf MyPrint? Ich habe einiges zum Thema gefunden, bin aber an der Adaption der Scripts gescheitert...
AutoIt
Alles anzeigen$sRegPath = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\' $sSearch = 'MyPrint' _RegDelSearch($sRegPath,$sSearch,'') Func _RegDelSearch($sRegPath,$sSearch,$Key) Local $i = 0 ,$sKey, $RegRead While True $i += 1 $sKey = RegEnumKey($sRegPath, $i) If $sKey = '' Then ExitLoop $RegRead = RegRead($sRegPath & $sKey, $Key) If $RegRead = '' Then ContinueLoop If $RegRead = $sSearch Then MsgBox(4096, "Test", $sSearch, 10) RUNWAIT (@COMSPEC & ' /c eventcreate /t error /so My_SCRIPT /id 100 /l application /d "Deleted Items: ' & $sRegPath & $sKey & ' ..."',"",@SW_HIDE) RegDelete($sRegPath & $sKey) EndIf WEnd EndFunc
Bin wohl etwas eingerostet..
Danke euch,
Surfy
-
Aaaaargh, ich Horst
Danke für den Hinweis - HKLM64 sollte es richten
-
Noch immer liebe ich diese Function von Oskar
Nur habe ich das Problem, dass ich von einer X86 kompilierten Exe aus - auch die x64 Bereiche durchsuchen möchte.
Gibt es da eine Lösung, ausser unterschiedlich kompilierte Exefiles zu nehmen und aufzurufen?
Oder gibt es im 2014 generell eine bessere Methode so einer Registry-Suche?
Surfy
-
Dein Tip mit:
ZitatLösung: Statt If $regvar = '' Then folgendes schreiben: If @error > 0 Then
Funktioniert bestens!
Das Wochenende kann kommen
Herzlichen Dank!!
Surfy
-
[autoit]
[/autoit]
Local $regvar = RegEnumVal('HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip', 1); - nur Beispiel Key
If $regvar = '' Then
MsgBox(4096, "Testbox", "Der Reg-Key ist nicht vorhanden !!!")
Else
MsgBox(4096, "Testbox", "Der Reg-Key: '" & $regvar & "' ist vorhanden")
EndIfUnter Win7 x64 geht dieses Beispiel mit 7Zip nicht mehr..
Auch nicht wenn der Registry-Key sowohl im 32 Bit
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\7-Zip
und auch 64 Bit vorhanden ist
HKEY_LOCAL_MACHINE\SOFTWARE\7-ZipWie kann ich abfragen dass dieser Key existiert?
Danke für eure Hilfe!
Surfy
-
Je nach Installation stimmt das. Aber es gibt mehrere Installationen die die runtimes nur während der Installation da ablegen - und nicht während den Dialog-Fenstern.
Das ist besonders bei verschachtelten MSI Installationen zu beobachten.
Da hilft nur "schnell sein"
Surfy
-
Die Setup löschen die daten meist nach dem Setup. Auf einem schnellen PC mit SSD hat man da oft kaum mehr die Zeit die Daten wegzukopieren, bevor die Installation zu ende ist.
Daher würde auch das verbiegen des Tempverzeichnisses nichts ändern können.
Daher ja auch meine Idee mit einen Script.
Surfy
-
Hallo zusammen
Ich würde gerne mein %temp% überwachen, und alle files die da erscheinen im inkl Unterverzeichnisse ins c:\temp kopieren.
Mein %tempt% liegt unter Windows7 hier: c:\Users\USERNAME\AppData\Local\Temp\
Hintergrund ist der, dass Installationen des öfteren middleware installieren, die sie vorher im Tempverzeichniss abgelegt haben, wie Beispielsweise die VCredist Installationen.
Bis anhin muss ich immer schnell genug sein, um diese während der Installation angreifen zu können. Gleichzeitig müssten die nicht kopierbaren Files (geöffnete temporäre Dateien übersprungen werden. Da der Script auch begreifen müsste, dass nur noch nicht kopierte Dateien kopiert werden müssten - übersteigt dass mein Scripting know how erheblich.
Aber vielleicht hat jemand dazu schonmal was geschrieben, oder kann die entsprechenden Zeilen aus dem ärmel schütteln. Mir fällt aus dem stehgreif nur ein Griff zu robocopy ein, das komandozeilen tool würde das gewünschte bieten...
Danke euch, Surfy
-
Wieder etwas gelernt, mich haben die hohen Zeilennummern auch immer irritiert
Surfy
-
Danke für eure Hilfe!
Ich habe ein Verzeichniss welches dynamisch weiter Unterverzeichnisse und Dateien enthält. Füge ich über eine Applikation weiter Inhalte dazu, werden diese dynamisch angelegt - auf jedem Client kann so eine anderer Namen verwendet sein
C:\MyFolder\
C:\MyFolder\n\xxxx
Leider haben die Verzeichnisse noch Sonderzeichen im Namen.
c:\MyFolder\D\[_B_]Misc1[_E_]\MyDB\
Ich suche also Beispielsweise nach MyDB und erhalte dann c:\MyFolder\D\[_B_]Misc1[_E_]\ zurück
Ich suche einen Weg um Verzeichnisse oder Dateien zu suchen - bzw dann den Pfad dahin anzuzeigen, den ich für die weitere Verarbeitung brauche. Mein Beispiel im ersten Posting ist noch zu klobig, ich bekomme nur den ersten Fall - wo das Verzeichniss vorkam - nach Dateien alleine konnte ich denke ich gar nicht suchen.
Leider steigt bei den Sonderzeichen die von Dir gespostete Function aus, Oskar Gibt es da noch einen Workarround?
x0r leider bin ich mit dem adaptieren deines Scriptes noch nicht zu einem durchbruch gekommen,
[autoit]Dim $FILES
[/autoit]
Dim $DIR="C:\Programme\autoit3" ; specify the directory to search
Dim $FILEMASK="n" ; specify the filemask ("n" for GetDirOnly)
$FILES = _GetFileList($DIR, $FILEMASK, 1) ; _GetFileList($DIR, $FILEMASK [, Flag]) Flag GetFile(Default) = 0 , GetDirOnly = 1
For $X = 0 To UBound($FILES)-1
MsgBox(0,'test:' & $X,$FILES[$X])
Next
ExitDa versuche ich immer noch zu verstehen, wo denn da der Suchparameter verborgen ist, bzw wie ich die Suche anstossen könnte
Surfy
-
Eine Function - die ist auch im Script
Surfy
-
Hallo zusammen
Ich kämpfe gerade mit folgendem Script:
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <Array.au3>
$STARTPFAD="c:\MyFolder"
$SUCHORDNER="GesuchtesVerzeichniss"
$DATEN=_GETFILELIST($STARTPFAD,"n",1)
$RET=_ARRAYSEARCH($DATEN,$SUCHORDNER,1,0,0,TRUE )If $ret > 0 Then MsgBox(0, '', $Daten[$ret]) ; gibt den kpl.Pfad zurück
[/autoit]
If $ret <= 0 Then
MsgBox(4096, "Test", $ret)
Exit
EndIf
Func _GetFileList($T_DIR,$T_MASK,$DIR_ONLY=0)
Dim $N_DIRNAMES[200000] ; max number of directories that can be scanned
Local $N_DIRCOUNT = 0
Local $N_FILE
Local $N_SEARCH
Local $N_TFILE
Local $N_OFILE
Local $T_FILENAMES
Local $T_FILECOUNT
Local $T_DIRCOUNT = 1
Local $FILEMASK
; check Filemask \ for empty File-Array by GetDirOnly
If $FILEMASK = "n" Then $FILEMASK = "*.no"
; remove the end \ If specified
If StringRight($T_DIR,1) = "" Then $T_DIR = StringTrimRight($T_DIR,1)
$N_DIRNAMES[$T_DIRCOUNT] = $T_DIR
; Exit if base dir doesn't exists
If Not FileExists($T_DIR) Then Return 0
; keep on looping until all directories are scanned
While $T_DIRCOUNT > $N_DIRCOUNT
$N_DIRCOUNT = $N_DIRCOUNT + 1
; find all subdirs in this directory and save them in a array
$N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\*.*")
While 1
$N_FILE = FileFindNextFile($N_SEARCH)
If @error Then ExitLoop
; skip these references
If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
$N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "" & $N_FILE
; if Directory than add to the list of directories to be processed
If StringInStr(FileGetAttrib( $N_TFILE ),"D") > 0 Or _
StringInStr(FileGetAttrib( $N_TFILE ),"D,H,S") > 0 Then
$T_DIRCOUNT = $T_DIRCOUNT + 1
$N_DIRNAMES[$T_DIRCOUNT] = $N_TFILE
EndIf
Wend
FileClose($N_SEARCH) ; find all Files that mtach the MASK
$N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "" & $T_MASK )
If $N_SEARCH = -1 Then ContinueLoop
While 1
$N_FILE = FileFindNextFile($N_SEARCH)
If @error Then ExitLoop
; skip these references
If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
$N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "" & $N_FILE
; if Directory than add to the list of directories to be processed
If StringInStr(FileGetAttrib( $N_TFILE ),"D") = 0 Or _
StringInStr(FileGetAttrib( $N_TFILE ),"D,H,S") = 0 Then
$T_FILENAMES = $T_FILENAMES & $N_TFILE & @CR
$T_FILECOUNT = $T_FILECOUNT + 1
;MsgBox(0,'filecount ' & $T_FILECOUNT ,$N_TFILE)
EndIf
Wend
FileClose($N_SEARCH)
Wend
If $DIR_ONLY = 0 Then
$T_FILENAMES = StringTrimRight($T_FILENAMES,1)
$N_OFILE = StringSplit($T_FILENAMES,@CR)
Return( $N_OFILE )
Else
ReDim $N_DIRNAMES[$N_DIRCOUNT+1]
$N_DIRNAMES[0] = $N_DIRCOUNT
Return $N_DIRNAMES
EndIf
EndFunc ;==>_GetFileListBei mir führt dieser zu "-1" auch wenn das Verzeichniss existiert
Irgendwie finde ich den Fehler nicht - ich hoffe ihr entdeckt den bei der durchsicht
Surfy
-
Danke Dir schelle, dass ist doch ein besserer Ansatz
Surfy
-
Danke für den Tip! Leider war mein Test damit nicht erfolgreich, mit -1 oder einer höheren Zahl.
Die Installation dauert so seine 10min - was für eine Möglichkeit habe ich dann - für längere Zeit eine Traymeldung einzublenden?
[autoit]Systemsteuerung\Alle Systemsteuerungselemente\Infobereichsymbole
[/autoit]Kann ich die automatisiert konfigurieren? Ich habe es händisch probiert, aber auch da flackert die Anzeige und bleibt nicht konstant angezeigt
Surfy
-
Hallo zusammen
Ich möchte einen User (sofern er eingeloggt ist) darüber informieren dass gerade etwas abläuft. Dafür würde ich gerne eine Systray Meldung einblenden - solange der Vorgang läuft:
Unter WinXP läuft folgendes Beispiel problemlos:
[autoit]TrayTip("I'm a title", "I'm the message", 5, 1)
[/autoit]
Sleep(999000)Unter Windows 7 verschwindet das ganze leider nach kurzer Zeit. Wie kann ich erreichen dass das Trayicon und die Nachricht permanent eingeblendet wird
Danke für eure Hilfe!
Surfy
-
Hallo zusammen
Kann man Scriptgesteuert einen Treiber wechseln - gegen einen Treiber der Windows schon unter "kompatible Treiber" auflistet?
Hier ein paar Screenshots was im Script nachgestellt werden müsste:
http://graphics.kodak.com/docimaging/upl…wireCard_de.pdf
Einen neuen Treiber installieren - dass würde gehen. Aber das wechseln auf einen schon vorhandenen nicht neueren Treiber, der darüber hinaus nicht als File vorliegt (aber vielleicht extrahierbar ist) - austsch
Vielleicht hat hier ja jemand schon mal.... Hier beschäftigten sich so einige mit dem Thema, aber nie um eine "silent" Umsetzung via Script. Wie ich an die Files kommen könnte, habe ich zwischenzeitlich herausgefunden.
Surfy
-
-
Danke Dir minx!
Da hab ich Lesestoff für ein paar Stunden
Surfy
-
Danke Dir!
Surfy