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. Surfy

Beiträge von Surfy

  • Splashscreen mit Countdown (schlaufe) - wie andere Abfragen einbauen?

    • Surfy
    • 29. Januar 2010 um 18:42

    Hallo zusammen

    Ich würde gerne während einer installation, den User daran hindern etwas zu machen, bzw einzugreifen.

    Daher würde ich gerne einen Splash-Screen einblenden, der nach ca 10 min verschwindet, und mit Countdown.

    [autoit]


    $countdowntime = 600000 ; also 10 min
    For $i = $countdowntime To 0 Step -60000
    SplashTextOn("", @lf & @lf & "Estimated time to wait " & $i/60000 & " min" & @LF & @LF & "Installing Toad for DB2." & @LF & @LF & "Please wait 10 Minutes. The Mouse and Keyboard are now Locked." ,@DesktopWidth,@DesktopHeight,-1,-1,0+1,"",36)
    BlockInput(1)
    Sleep(60000)
    Next
    SplashOff()
    BlockInput(0)

    [/autoit][autoit][/autoit][autoit][/autoit]

    Das funktioniert soweit auch :huh:

    Nun würde ich aber gerne noch abfragen, ob ein Process namens NGenWrapper.exe eröffnet wird, und solange warten bis er da ist. Dann kann der Splashscreen verschwinden. Nur wie bekomme ich nun die beiden Zeilen, in eine laufende schleife, die ja weiterlaufen soll?

    ProcessWait ( "NGenWrapper.exe")
    ProcessWaitClose("NGenWrapper.exe")


    Danke für eure Hilfe..

  • Regkey (Excel Addin) bei Remove wieder entfernen

    • Surfy
    • 14. Dezember 2009 um 13:20

    Danke Dir GTASpider!

    Es läuft, allerdings löscht die Exe pro Aufruf nur eine Zeile :rolleyes:

    Aber mit Code copy&paste, rennt es wunderbar!

  • Regkey (Excel Addin) bei Remove wieder entfernen

    • Surfy
    • 14. Dezember 2009 um 10:26

    Hallo zusammen

    Mit eurer Hilfe entstand ja der Script, der die Registry ausliest, und je nach zustand die entsprechenden Einträge schreibt:

    Bitte nicht zu doll den kopf schütteln, bin ja ein relativer Neueinsteiger ;(

    Einziger Wermutstropfen dabei: Hat ein User das Excel noch nie gestartet, überschreibt Excel beim ersten start dann das erste open= aber kann kann nicht alles haben ;)

    [autoit]

    #include<Array.au3>
    #include <File.au3>
    $openflag=-1
    $wrapperflag=-1
    $filename = @ProgramFilesDir & "\MyaddIn\RegKey.reg"

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 To 100
    $var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\", $i)
    If @error <> 0 Then ExitLoop
    If StringInStr(RegRead ("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", $var), "ExcelWrapper") <> 0 Then
    $wrapperflag=1
    ; MsgBox(4096, "Schon installiert #" & $i & " mit dem genannten Port", $var)
    RunWait(@COMSPEC & " /c eventcreate /t information /so Custominstaller /id 100 /l application /d ""Addin schon vorhanden""")
    EndIf
    Next
    For $i = 0 to 100 ;alle einträge prüfen
    If $i=0 then $i=""
    If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN"&$i)="" then
    if $openflag=-1 then $openflag=$i ;die erste "Fundstelle" merken
    endif
    next

    [/autoit][autoit][/autoit][autoit]

    if $wrapperflag=-1 then ;kei Wrapper vorhanden, dann Addin installieren an die erste gefundene "Lücke"
    ; msgbox(0,"Installiere Addin nach:","OPEN"&$openflag)
    $find = "Zkey1"
    $replace = "OPEN" & $openflag
    $retval = _ReplaceStringInFile($filename,$find,$replace)
    $find = "Zkey2"
    $plus1=1
    $replace = "OPEN" & $openflag + $plus1
    $retval = _ReplaceStringInFile($filename,$find,$replace)
    RunWait(@COMSPEC & " /c eventcreate /t information /so Custominstaller /id 100 /l application /d ""Add-in installation, Regkey modifiziert""")
    RunWait(@COMSPEC & " /c regedit /s " & Chr (34) & "C:\Program Files\Volmaster\RegKey.reg" & Chr (34))
    RunWait(@COMSPEC & " /c eventcreate /t information /so Custominstaller /id 100 /l application /d ""Add-in installation, Regkey geladen""")
    Else
    endif

    [/autoit]

    Jetzt müsste ich bei der deinstallation wieder alles löschen, was ExcelWrapper enthält.

    Leider bin ich da mal wieder planlos, wie ich das aufschlüsseln kann, das ganze var kann ich ja nicht löschen ?(

    [autoit]

    For $i = 1 To 100
    $var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\", $i)
    If @error <> 0 Then ExitLoop
    If StringInStr(RegRead ("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", $var), "ExcelWrapper") <> 0 Then
    $wrapperflag=1
    RegDelete
    EndIf
    Next

    [/autoit]

    Danke für eure Hilfe!

    Surfy

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Surfy
    • 14. Dezember 2009 um 10:13

    Sehr spannendes Projekt :)

    Leider habe ich auch keinen Schreibzugriff :S

  • Registry auslesen, und schreiben

    • Surfy
    • 3. Dezember 2009 um 17:01

    Wow, dass wars, vielen vielen Dank!

  • Registry auslesen, und schreiben

    • Surfy
    • 3. Dezember 2009 um 16:56
    Spoiler anzeigen
    [autoit]

    For $i = 1 To 100
    $var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\", "OPEN"&$i)
    ; If @error <> 0 Then ExitLoop
    If StringInStr(RegRead ("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", $var), "ExcelWrapper") <> 0 Then
    MsgBox(4096, "Value Name #" & $i & " under in AutoIt3 key", $var)
    EndIf
    Next

    $freierwert=0
    For $i = 0 to 100
    If $i=0 then $i=""
    If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN"&$i)="" then
    msgbox(0,0,"Open"&$i&" ist frei für den nächsten Wert!") ;auskommentieren wenn es funktioniert
    $freierwert="Open"&$i
    ;hier das plugin installieren
    endif
    next

    [/autoit]


    Leider geht es so noch nicht :pinch:

  • Registry auslesen, und schreiben

    • Surfy
    • 3. Dezember 2009 um 14:48
    Zitat von Andy

    Hab aktuell kein Excel, aber lt deiner Beschreibung sollte das so funktionieren

    [autoit]

    For $i = 0 to 100
    If $i=0 then $i=""
    If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN"&$i)="" then
    msgbox(0,0,"Open"&$i&" ist frei für den nächsten Wert!") ;auskommentieren wenn es funktioniert
    ;hier das plugin installieren
    endif
    next

    [/autoit]
    Alles anzeigen

    Herzlichen Dank euch beiden, diese Zeilen hab ich übernommen :)

    Wie könnte ich noch einbauen, dass er abbricht wenn ExcelWrapper in diesen Keys schon vorkommt?

    [autoit]

    For $i = 1 To 100
    $var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\", $i)
    If @error <> 0 Then ExitLoop
    If StringInStr($var, "ExcelWrapper ") <> 0 Then
    MsgBox(4096, "Wert gefunden #" & $i & " auskommentieren solbalds läuft", $var)
    EndIf
    Next

    [/autoit]

    Ist irgendwie falsch, weil nur die Keys, aber nicht die Werte rauskommen 8| ?(

  • Registry auslesen, und schreiben

    • Surfy
    • 3. Dezember 2009 um 13:18

    Hallo zusammen

    Ich muss in Excel ein Addin hinzufügen, auf mehreren PCs, und versuche das mit Auto-IT zu lösen. Das problem ist, das auf den PCs eine unterschiedliche Anzahl von Addins installiert ist, so dass ich mal mit OPEN bis zu OPEN12 rechnen muss.

    Anbei der Registry-Ausschnitt

    Registryauslesen,

    [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options]
    "OPEN"="/R \"C:\\Program Files\\Microsoft Office\\OFFICE11\\Library\\Analysis\\ANALYS32.XLL\""
    "OPEN1"="/A \"addIn.ExcelWrapper.DataFunctions\""
    "OPEN2"="/A \"AddIn.ExcelWrapper.MathFunctions\""

    In diesem Beispiel wäre es OPEN1 und OPEN2, welches ich schreiben muss, weil es schon ein OPEN gibt.

    Ganz stumpfsinnig könnte ich nun mit

    If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN")
    Then
    If If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options", "OPEN1")
    Then


    oder so ähnlich vorgehen, aber elegant sieht anders aus :huh:

    Ich hoffe jemand findet schnell Zeit für ein paar Zeilen.

  • Alle DDLs einen Verzeichnisses einlesen, und Registrieren mit regsvr32 /s

    • Surfy
    • 2. Dezember 2009 um 15:52

    :huh:

    Danke für eure Hilfe!

    Ziel ist es, ein paar DLLs zu regristrieren und mit Gacutil und regasm zu behandeln.

    Wenn ich in meinem Beispiel /k verwende, kommt immer ein leeres Konsolenfenster.

    @ UEZ:


    Wie wende ich dein Beispiel an, wenn ich die regasm und gacutil verwenden will, die auch im Verzeichniss (Programfiles\folder.net) liegen, um auch diese beiden tools mit allen DLLS aus dem Verzeichniss zu behandeln? In einem Dos-Fenster ist dies ein dreizeiler ;(

    c:

    cd Program Files\folder.net

    for %m in (*.dll) do regasm %m

    for %m in (*.dll) do gacutil /i %m

    for %m in (*.dll) do regsvr32 /s %m


    ;(

  • Alle DDLs einen Verzeichnisses einlesen, und Registrieren mit regsvr32 /s

    • Surfy
    • 2. Dezember 2009 um 13:49

    Ich doofie

    gacutil und regasm liegen natürlich in %ProgramFiles%\Folder.net

    [autoit]


    $Pfad="C:\Program Files\Folder.net\"
    $FileList=_FileListToArray("C:\Program Files\Folder.net", "*.dll")
    If @Error=1 Then
    MsgBox (0,"","No Files\Folders Found.")
    Exit
    EndIf
    ; _ArrayDisplay($FileList,"$FileList")
    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & " /c regsvr32 /s " & Chr (34) & $Pfad & $FileList[$i] & Chr (34) , "", @SW_HIDE)
    Next
    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & " /c " & Chr (34) & $Pfad & "regasm.exe" & Chr (34) & " " & Chr (34) & $Pfad & $FileList[$i] & Chr (34) , "", @SW_HIDE)
    Next
    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & " /c " & Chr (34) & $Pfad & "gacutil.exe" & Chr (34) & " /i " & Chr (34) & $Pfad & $FileList[$i] & Chr (34) , "", @SW_HIDE)
    Next

    [/autoit]

    Aber noch immer will das ganze nicht :-/

  • Alle DDLs einen Verzeichnisses einlesen, und Registrieren mit regsvr32 /s

    • Surfy
    • 2. Dezember 2009 um 13:27

    Hui, leider habe ich Deine Antwort erst jetzt gesehen ;(

    Ich habe es so probiert, was sich zwar auch compilieren lässt, aber die Dateien nicht registriert ?(

    [autoit]

    #Include <File.au3>
    #Include <Array.au3>
    $Pfad="C:\Program Files\folder.net\"
    $FileList=_FileListToArray("C:\Program Files\folder.net", "*.dll")
    If @Error=1 Then
    MsgBox (0,"","No Files\Folders Found.")
    Exit
    EndIf
    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & " /c regsvr32 /s " & Chr (34) & $Pfad & $FileList[$i] & Chr (34) , "", @SW_HIDE)
    Next
    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & " /c regasm " & Chr (34) & $Pfad & $FileList[$i] & Chr (34) , "", @SW_HIDE)
    Next
    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & " /c gacutil /i" & Chr (34) & $Pfad & $FileList[$i] & Chr (34) , "", @SW_HIDE)
    Next

    [/autoit]


    Sieht jemand, wieso das nicht will?

  • Alle DDLs einen Verzeichnisses einlesen, und Registrieren mit regsvr32 /s

    • Surfy
    • 2. Dezember 2009 um 09:55

    Hallo zusammen

    Ich versuche alle DLLs eine Verzeichnisses auszulesen, und will dann jedes einzelne mit regsvr32.dll /s registrieren

    [autoit]


    #Include <File.au3>
    #Include <Array.au3>
    $FileList=_FileListToArray("C:\Program Files\Folder.net", "*.dll")
    If @Error=1 Then
    MsgBox (0,"","No Files\Folders Found.")
    Exit
    EndIf

    [/autoit]

    Wie müsste nun der Teil mit der Registrierung der DLL aussehen?


    So klappt es ja leider nicht :cursing:

    For $i = 1 To $FileList[0] ; zeilenweise durchgehen
    RunWait(@COMSPEC & ' /c regsvr32 /s ' & $Pfad & $i , "", @SW_HIDE)
    MsgBox(4096, "Test", $i, 3)
    Next

  • Syntax, ich seh den fehhler nicht 0_o - einzeiler

    • Surfy
    • 18. September 2009 um 10:31

    Oh weh, wie blond :cursing:

    Danke Dir Oscar!

  • Syntax, ich seh den fehhler nicht 0_o - einzeiler

    • Surfy
    • 18. September 2009 um 10:23

    Hallo zusammen

    Ich bekomme die zeile einfach nicht hin :( Beides sollte dasselbe machen - aber ;(

    [autoit]


    RunWait(@COMSPEC & ' /c secedit /configure /db ' & Chr (34) & @ProgramFilesDir & '\Symantec\Config4T\FolderOnly.sdb' & Chr (34) & ' /cfg ' & Chr (34 & @ProgramFilesDir & '\Symantec\Config4T\FolderOnly.inf' & Chr (34) & ' /quiet')

    [/autoit]


    [autoit]


    RunWait(@COMSPEC & " /c secedit /configure /db " & Chr (34) & @ProgramFilesDir & "\Symantec\Config4T\FolderOnly.sdb" & Chr (34) & " /cfg " & Chr (34 & @ProgramFilesDir & "\Symantec\Config4T\FolderOnly.inf" & Chr (34) & " /quiet")

    [/autoit][autoit][/autoit][autoit][/autoit]

    Danke für eure Hilfe!

  • Telnet aus CMD auslesen

    • Surfy
    • 17. September 2009 um 13:31

    @muggelfizz: Bei mir läuft dein erster Script auch nicht, ich bekomme ein leeres fenster zurück :(

    Dabei könnte ich sowas gerade gebrauchen ;)

  • Grundsätzliches Auto-It Syntax Verständniss - Gänsefüsschen

    • Surfy
    • 16. September 2009 um 18:02

    Gelöst! Danke für den Tip!

    Ich habe natürlich bei mir eine andere Gruppenbenennung - gruppe war schon vorhanden - war die Fehlermeldung :cursing:

    Jippie, so langsam mag ich Autoit - war eine mühsame Zeit mit & chr (34) &

  • Grundsätzliches Auto-It Syntax Verständniss - Gänsefüsschen

    • Surfy
    • 16. September 2009 um 16:34

    Danke Dir Funkey

    Bei mir wird das jedoch nicht ausgeführt, dh es wird keine Gruppe angelegt.

    Geht: RunWait(@COMSPEC & " /c net localgroup /add " & Chr (34) & "meine Gruppe"" & Chr (34) & " /Comment:" & Chr (34) & "meine eigene private Testgruppe" & Chr (34) )

    Geht nicht: RunWait(@COMSPEC & ' /c net localgroup /add "meine Gruppe" /Comment:"meine eigene private Testgruppe"')

    Muss man dazu bei AutoIt noch was einstellen oder einbinden?

  • Grundsätzliches Auto-It Syntax Verständniss - Gänsefüsschen

    • Surfy
    • 16. September 2009 um 15:10

    Hallo zusammen

    Ein fall der bei mir oft eintritt - umsetzung eines Batchfiles in ein Auto-It Exe-File

    Beim Syntax komme ich noch nicht so ganz klar:

    Doszeile: net localgroup /add "meine Gruppe" /Comment:"meine eigene private Testgruppe"

    Autoit: RunWait(@COMSPEC & " /c net localgroup /add Meine Gruppe /Comment:meine eigene private Testgruppe") geht nicht

    Autoit: RunWait(@COMSPEC & " /c net localgroup /add "Meine Gruppe" /Comment:"meine eigene private Testgruppe"") geht nicht

    Autoit RunWait(@COMSPEC & " /c net localgroup /add 'Meine Gruppe' /Comment:'meine eigene private Testgruppe' ") geht nicht

    Autoit RunWait(@COMSPEC & " /c net localgroup /add 'Meine Gruppe' /Comment:'meine eigene private Testgruppe' ") geht nicht

    Autoit RunWait(@COMSPEC & " /c net localgroup /add " & Chr (34) & "Meine Gruppe" & Chr (34) & " /Comment:" & Chr (34) & "meine eigene private Testgruppe" & Chr (34) ) Geht ;( :S

    Geht das nicht auch einfacher?


    Danke und Gruss

  • SID einer lokalen Usergruppe auslesen

    • Surfy
    • 16. September 2009 um 13:51

    Herzlichen Dank für die schnelle Hilfe! :)

    Wollte erst sagen, dass klappt nicht, aber ich war noch so schlau Benutzer durch Guests zu ersetzen, hab ein englisches Windows 8| Daher vielen Dank für die schnelle Lösung :thumbup:


    / Edit: PS: wie kann ich den Beitrag auf gelöst setzen?

  • SID einer lokalen Usergruppe auslesen

    • Surfy
    • 16. September 2009 um 13:24

    Hallo zusammen

    Ich habe gerade entdeckt, dass man mit

    [autoit]


    #Include <Security.au3>
    $sAccount = @UserName
    $SID = _Security__LookupAccountName($sAccount)
    MsgBox(4096, "Test", $SID[0])

    [/autoit]

    die SID des gerade eingeloggten Users auslesen kann. Wie kann ich die SID einer lokal angelegten Gruppe auslesen?

    Ich bin hinsichtlich Syntax noch ein Dau, ich hoffe jemand kann mir schnell unter die Arme greifen ;)

    Danke euch

    PS: alternativ wäre möglich, in Dos

    getsid \\localhost "MeineGruppe" \\localhost "MeineGruppe" >c:\temp\sidEngine.txt

    Und dann das Textfile auszulesen, und mit Autoit einzulesen ;(

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™