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

Beiträge von Micha_he

  • Browser als eingebettetes Object möglich

    • Micha_he
    • 5. Februar 2015 um 16:35

    Ist es möglich, einen installierten (ggf. auch portablen) Firefox (optional auch Chrome) als eingebettetes Object in einer eigenen AutoIt-GUI mit einer lokalen Datei zu öffnen ? IE ist hier nicht die Frage...

    Eine parallel laufende Browsersitzung sollte dabei nicht verändert werden.

    Ein neues Fenster lässt sich ja mit "Firefox.exe -new-windows C:\preview.html" starten. Ich würde dieses Fenster aber gerne in einer AutoIt-Oberfläche anzeigen.

    P.S: Hintergrund ist der Aufruf als Preview aus einer Entwicklungsumgebung heraus.

    Bin für Tips dankbar...

  • Silent Installer mit erhöhten Rechten

    • Micha_he
    • 29. Januar 2015 um 19:49

    1. Zeile 4: @ScriptDir ist ein automatisch Makro, welches den Ordner des aktuellen Scriptes enthält. Einfach nutzen und freuen. Lass die Zeile einfach komplett weg. Ich wüsste auch nicht, das man das neu definieren kann, ohne das es zum Fehler führt !?!?

    2. Zeile 6: Streiche mal den Teil "cmd.exe /c "& und starte $sCMD direkt. Den Teil mit 'cmd.exe' braucht man nur wenn man direkte Kommandos der Konsole (z.B. DIR) verwenden will. Macht nur unnötig Ärger.

    ...dann schauen wir mal was geht...

  • Namen und Position der Desktopsymbole ermitteln

    • Micha_he
    • 28. Januar 2015 um 15:03

    Hier mein genutzter Code:

    Spoiler anzeigen
    [autoit]

    ;#################################################################################################
    ;
    ; Titel: Restore-IconPos-Desktop
    ; Datum: 28. Jan. 2015
    ; Version: 1.1
    ;
    ; Anmerkungen:
    ;
    ; - Die Position der Icons und der Titel wird in einer INI Datei gespeichert
    ; - Das Script wird über Parameter aufgerufen:
    ; -save = Speichert die Positionen
    ; -restore = Plaziert die Icons wieder da wo sie waren
    ; - Unter einem x64-System, muss das Script auch als 64bit-kompiliertem
    ; Script oder mit AutoIt_x64.exe gestartet werden !
    ;
    ;
    ; History:
    ; V1.0 - Erstrelease
    ; V1.1 - Anzahl wird jetzt mit korrektem Wer in der INI gespeichert
    ;
    ;#################################################################################################

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

    ;#################################################################################################
    ; Einfügen der Include Dateien
    ;#################################################################################################
    #include <Constants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>
    #include <Array.au3>

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

    ;#################################################################################################
    ; Optionen setzen
    ;#################################################################################################
    #NoTrayIcon ;Kein TrayIcon anzeigen
    Opt("MustDeclareVars", 1) ;Variablen müssen deklariert werden

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

    ;#################################################################################################
    ; Variablen deklarieren
    ;#################################################################################################
    Local $handle ;Handle für den Desktop
    Local $anzIcons ;Anzahl der Icons auf dem Desktop
    Local $arrIcons[1] ;Array für Restore
    Local $arrayPos ;Position im Array
    Local $txt ;Für das zwischenspeichern von Texten
    Local $int ;Als Zähler Variable
    Local $icon ;Name des Icon
    Local $posX ;X Position
    Local $posY ;y Position
    Local $Mode = "Help" ;In welchem Modus das Script gestartet wurde
    Local $iniFile = @ScriptDir & "\icons.ini" ;Pfad zu der Ini-Datei

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

    If @OSArch = "X64" and not @Autoitx64 Then
    Msgbox(64, "Falsche Architektur !", "Unter einem 64bit Betriebssystem, muss auch eine 64bit-Variante" & @CRLF & "des Programms gestartet werden !")
    Exit
    EndIf

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

    ;#################################################################################################
    ; Programm Einstigspunkt (POE)
    ;#################################################################################################
    If $CmdLine[0] > 0 Then
    $Mode = $CmdLine[1]
    _CheckIniExsit()
    Switch $CmdLine[1]
    Case "-save"
    ToolTip("Positionen der Icons werden gespeichert!",0,0,"Info")
    Sleep(1000)
    _SavePos()
    Case "-restore"
    ToolTip("Icons werden wieder hergestellt!",0,0,"Info")
    Sleep(1000)
    _RestorePos()
    Case Else
    _ShowHelp()
    EndSwitch
    Else
    _ShowHelp()
    EndIf

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

    Exit 0 ;Programm wird verlassen

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

    ;#################################################################################################
    ; _CheckIniExsit
    ; Diese Funktion prüft ob die INI Datei vohanden ist, falls Nein, wird eine leere Datei
    ; erstellt. Ist eine vorhanden, wird gelöscht und eine neue erstellt, aber nur bei -save
    ;#################################################################################################
    Func _CheckIniExsit()
    IF Not FileExists($iniFile) Then
    _FileCreate($iniFile)
    If @error Then
    MsgBox(48,"Fehler","INI-Datei konnte nicht erstellt werden.")
    Exit 1
    EndIf
    ElseIf $Mode = "-save" Then
    If FileDelete($iniFile) = 0 Then
    MsgBox(48,"Fehler","INI-Datei konnte nicht gelöscht werden.")
    Exit 1
    EndIf
    EndIf
    EndFunc

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

    ;#################################################################################################
    ; _ShowHelp
    ; Wenn das Script ohne Parameter gestartet wird, wird diese Hilfe angezeigt, oder wenn ein
    ; falscher Parameter übergeben wurde.
    ;#################################################################################################
    Func _ShowHelp()
    $txt = "Parameter:" & @CRLF
    $txt &= "-save = Speichert die Positionen" & @CRLF
    $txt &= "-restore = Plaziert die Icons wieder da wo sie waren"
    MsgBox(64,"Hilfe - Restore-IconPos-Desktop", $txt)
    Exit 0
    EndFunc

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

    ;#################################################################################################
    ; _SavePos
    ; Speichern der Icon Positionen in der INI Datei
    ;#################################################################################################
    Func _SavePos()
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")
    $anzIcons = _GUICtrlListView_GetItemCount ($handle)
    IniWrite($iniFile,"Global","Anzahl",$anzIcons)
    For $int = 0 To $anzIcons - 1
    IniWrite($iniFile,"IconPos" & $int,"Icon",_GUICtrlListView_GetItemText($handle,$int))
    IniWrite($iniFile,"IconPos" & $int,"X-Pos",_GUICtrlListView_GetItemPositionX ($handle,$int))
    IniWrite($iniFile,"IconPos" & $int,"Y-Pos",_GUICtrlListView_GetItemPositionY ($handle,$int))
    Next
    EndFunc

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

    ;#################################################################################################
    ; _RestorePos
    ; Stellt die Icon Positionen an Hand der INI Datei wieder her
    ;#################################################################################################
    Func _RestorePos()
    $anzIcons = IniRead($iniFile,"Global","Anzahl",-1)
    If $anzIcons = -1 Then
    MsgBox(48,"Fehler","INI-Datei ist leer.")
    Exit 1
    Else
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")
    ReDim $arrIcons[_GUICtrlListView_GetItemCount ($handle)]
    For $int = 0 To UBound($arrIcons) - 1
    $arrIcons[$int] = _GUICtrlListView_GetItemText($handle,$int)
    Next
    For $int = 0 To $anzIcons - 1
    $icon = IniRead($iniFile,"IconPos" & $int,"Icon",-1)
    $posX = IniRead($iniFile,"IconPos" & $int,"X-Pos",-1)
    $posY = IniRead($iniFile,"IconPos" & $int,"Y-Pos",-1)
    If $icon = -1 Or $posX = -1 Or $posY = -1 Then ContinueLoop
    $arrayPos = _ArraySearch($arrIcons,$icon,0,0,1,False)
    If $arrayPos = -1 Then ContinueLoop
    _GUICtrlListView_SetItemPosition($handle,$arrayPos,$posX,$posY)
    Next
    EndIf
    EndFunc

    [/autoit]

    Das Programm erzeugt mit dem Parameter "-save" gestartet eine INI-Datei mit allen auf dem Desktop befindlichen Icons und stellt die Position wieder her, wenn mit der Option "-restore" gestartet wird.

  • Namen und Position der Desktopsymbole ermitteln

    • Micha_he
    • 28. Januar 2015 um 12:19

    Habe eine wahrscheinlich weitgehend identische Variante unter Win7 x64 im Einsatz.
    Meine funktioniert aber nur, wenn ich sie kompiliert als x64 bei einem 64bit-System starte.

    Probier es einmal. Wenn es nicht klappt, stelle ich meinen Source hier ein.

  • ProgessOn Frage

    • Micha_he
    • 28. Januar 2015 um 10:21

    Dann lies Dir doch die Hilfe einmal anständig durch und probiere am besten die Beispiele der einzelnen Funktionen einmal aus. Versuch sie anschließend Zeile für Zeile zu verstehen.

    Der erste Parameter der Funktion ProgressSet() gibt die Größe des Ladebalkens in 'Prozent', also 0 bis 100 an. Daher funktionieren auch Deine Werte größer 100 nicht !

    Allgemeine Berechnung: Aktuellwert / Maxwert * 100

  • Netztraffic mit WMI

    • Micha_he
    • 27. Januar 2015 um 22:01

    Bei mir läuft es auch nicht, gleicher Fehler unter Win7 x64, mit und ohne Adminrechte.

    ***********************************************
    For $i In $o_NetworkPerformData
    For $i In $o_NetworkPerformData^ ERROR

    Error: Variable must be of type "Object".
    ***********************************************

  • Achterrandom = 50

    • Micha_he
    • 14. Januar 2015 um 15:24
    Zitat von Alina


    Micha_he: hier bekomme ich am Ende eine Summe von über 50 raus.

    Ich habe es mehrfach getestet und es passte immer. Allein die Zeile 17 stimmt mir dabei eigentlich schon zu !
    Wenn dem so ist, habe ich zur Zeit keine Idee...

    Edit (sichere Gesamtsumme):

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $iMax = 50
    $iAnzahl = 8

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

    Dim $aZahl[$iAnzahl]
    For $i = 0 To $iAnzahl - 1
    $aZahl[$i] = 1 ; alle sollen ja >= 1 sein
    Next

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

    Do
    $i = Random(0,$iAnzahl - 1, 1) ; per Zufall eine Zahl wählen
    $wert = Random(0, 1, 1) ; und 0 oder 1 hinzuaddieren
    $aZahl[$i] += $wert
    Until _ArraySum_1D($aZahl) >= $iMax
    _ArrayDisplay($aZahl)

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

    Func _ArraySum_1D($aData)
    Local $iSum
    For $i = 0 To UBound($aData) - 1
    $iSum += $aData[$i]
    Next
    Return $iSum
    EndFunc

    [/autoit]
  • Achterrandom = 50

    • Micha_he
    • 14. Januar 2015 um 14:42

    Die Frage mit den "Doppelten" stellte sich mir auch.
    Wenn Doppelte erlaubt sind, ginge auch folgende Variante:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $iMax = 50
    $iAnzahl = 8
    $iSumme = 0

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

    Dim $aZahl[$iAnzahl]
    For $i = 0 To $iAnzahl - 1
    $aZahl[$i] = 1 ; alle sollen ja > 1 sein
    Next

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

    Do
    $i = Random(0,$iAnzahl - 1, 1) ; per Zufall eine Zahl wählen
    $wert = Random(0, 1, 1) ; und 0 oder 1 hinzuaddieren
    $aZahl[$i] += $wert
    $iSumme += $wert
    Until $iSumme = $iMax
    _ArrayDisplay($aZahl)

    [/autoit]
  • Send / Copy Problme

    • Micha_he
    • 8. Januar 2015 um 12:30

    Schreib am besten ein kurzen Beispielscript und stell es hier ein, mit dem wir den Fehler reproduzieren können.

    Entweder beim Testen findest Du den Fehler selbst (ist oft der Fall) oder jemand kann die an Hand Deines Beispiels den Fehler lokalisieren.

  • RunAs - Fehler

    • Micha_he
    • 15. Dezember 2014 um 17:07

    Ist das 'ScriptDir' ein verbundenes Netzlaufwerk ?

    Dann kann es nicht klappen, weil der Serviceaccount dieses verbundene Netzlaufwerk nicht kennt.
    Dann müsste es aber direkt gestartet aus dem UNC-Pfad '\\server\freigabe' klappen.

  • Forum-Umstellung Problemsammlung

    • Micha_he
    • 16. Oktober 2014 um 00:09

    Ich meinte auch nicht den letzten/aktuellsten, sondern ich schrieb den ersten ungelesenen !

  • Forum-Umstellung Problemsammlung

    • Micha_he
    • 15. Oktober 2014 um 10:05

    Irgendwie fehlt mir ein Button "zum ersten neuen Beitrag springen". Soll eigentlich auch im 'Burning Board' verfügbar sein, aber ich finde ihne nirgends. Weder unter 'Ungelesene Beiträge' noch unter 'Letzte Beiträge' kann ich einen Button finden.

    Ich weiß aber auch nicht 100%ig, ob er vor der Umstellung verfügbar war....

  • Winamp öffnen und taste übergeben

    • Micha_he
    • 11. September 2014 um 23:26

    Füg einmal vor der Zeile 5 (WinActivate) folgendes ein:

    [autoit]

    WinWait ("Winamp")

    [/autoit]

    Edit: Zeilen 7 & 8 Deines Scripts, wären dann aber an der Stelle auch überflüssig...

  • Anzahl der angemeldeten User

    • Micha_he
    • 18. August 2014 um 14:49

    Du must das Script natürlich auch auf dem Server starten !

    Oder Zeile 4 (Local Static $o_WMI = ObjGet("winmgmts:\\.\root\cimv2")) in

    Local Static $o_WMI = ObjGet("winmgmts:\\[servername]\root\cimv2")

    ändern. Ausreichende Rechte für "Remote WMI" auf dem Server vorrausgesetzt !

    Edit: Kann ich bestätigen. Script gibt immer 1 zurück, obwohl deutlich mehr Clients verbunden sind.

  • SetPermissions-UDF: Berechtigungen werden entfernt

    • Micha_he
    • 21. Mai 2014 um 12:11

    Das wird wohl beabsichtigtigt sein und ist eigentlich für den Befehl "SET" auch normal.
    Du setzt ja eine neue Berechtigung für das Object und fügst keine hinzu (wäre dann ADD).

    Die vererbten Rechte betrifft das nicht, weil die Rechte auf dem darüberliegenden Ordner sind und nur vom darunterliegenden Object (dieses hat nur das Flag fürs vererben) übernommen werden.

    Lösung:
    Schauen ob es ein komplementäres Kommando _GetObjectPermissions() gibt, dieses gelesenen Rechte um die gewünschten z.B. erweitern/ändern und mit _SetObjectPermissions() dann neu setzen.

    Ich kann mich irgendwie daran erinnern, das ein "vor langer" Zeit bei mir auch an der oder ähnlicher Stelle gehapert hat. Ich weis aber nicht mehr, ob es mit der gleichen Funktion/UDF war...

  • Denon Remote Protocol Telnet / TCPsend ?

    • Micha_he
    • 8. Mai 2014 um 08:21

    Unter Umständen musst Du ja ein CRLF als Abschluss des Kommandos im ersten Beispiel auch (im 'Simple' verwendest Du es ja auch) verwenden.

    Also z.B.:

    [autoit]

    TCPSend($ConnectedSocket, $szData & @CRLF)

    [/autoit]
  • AutoIt Programm Teile als Admin ausführen

    • Micha_he
    • 12. April 2014 um 14:07

    Folgende Lösungen stehen Dir meiner Meinung nach zur Verfügung:

    • Softwareverteilung mittels SCCM o.ä., wenn ihr habt.
    • Softwareverteilung mit GPO (habe ich noch nicht genutzt).
    • Softwareverteilung mit einem GPO-Startskript (einfach und läuft unter 'Lokal System').
      Setzen wir für fast alle Installationen ein ! Mein Favorit !
      Setzt aber vorraus, das das Konto 'Local System' auf den Pfad mit dem AutoIt-Skript zugreifen darf.
    • Skript zum Anlegen des Icon's im 'öffentlichen Desktop', mit einkompilierten Admin-Kennwort, was ich aber, der Sicherheit wegen, ablehnen würde.
      Dieses muss aber ja nur einmal als Benutzer ausgeführt werden, z.B. als Loginskript (welches unter Benutzerrechten läuft).

    Gruß
    Micha

  • CD Laufwerk suchen und Laufwerksbuchstabe verwenden

    • Micha_he
    • 11. April 2014 um 15:34

    Aber halt nur, wenn bei mehr als einem Laufwerk, die CD in dem ersten der Auflistung liegt.

    Ich suche dann halt lieber nach der/einer Datei, die die CD identifiziert. Z.B. So:

    [autoit]

    $CD = DriveGetDrive("CDROM")

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

    If @error Then
    MsgBox(4096, "DriveGetDrive", "NO CD!")
    Else
    For $i = 1 To $CD[0]
    If FileExists($CD[$i] & "\Identify.txt") Then
    WinActivate("Öffnen")
    Send($CD[$i]) ; ggf. auch 'Send($CD[$i] & "\Identify.txt")'
    EndIf
    Next
    EndIf

    [/autoit]
  • Datei in Zwischenablage bringen

    • Micha_he
    • 4. April 2014 um 14:23

    Versuch mal:

    [autoit]

    $data = FileRead("D:\Ordner1\xxxx.txt")
    ClipPut($data)

    [/autoit]
  • Autom. AutoIT Installation (Select a default option for *.au3 files)

    • Micha_he
    • 25. März 2014 um 15:12

    Nochmal genauer:

    Der richtige Schlüssel ist folgender: HKCR\AutoItScript\Shell (ist verknüpft mit der Dateiendung unter "HKCR\.au3")
    Hier muss der Parameter "(Standard)" auf einen der vorhandenen Unterschlüssel zeigen.

    Unter V3.3.8.x war dies "Run" unter V3.3.10.x jetzt meiner Meinung nach "RunX86".
    Wenn Du dort den Wert, auf den 'vorhandenen' Untereintrag "Edit" o.ä. änderst, sollte sich standardmäßig der Editor öffnen. Die Aktion des Untereintrages, kann Du in dessen Untereintrag "Command\(Standard)" finden.

    Gruß
    Micha

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™