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

Beiträge von bernd670

  • sfv erstellen geht nicht

    • bernd670
    • 18. November 2007 um 10:50

    Hallo,

    was passiert denn wenn Du es mit RunWait machst?

    [autoit]

    RunWait('"' & @ComSpec & '" /c ' & @ScriptDir & '\fsum.exe -js *.r* > test.sfv', @ScriptDir, @SW_HIDE)

    [/autoit]
  • ini auslesen

    • bernd670
    • 18. November 2007 um 10:32

    Dann kann man den Thread also auf gelöst setzen?! :]

    Vllt. hilft ja die Lösung noch jemandem!

  • ini auslesen

    • bernd670
    • 18. November 2007 um 07:18

    Hallo,

    probiers mal so:

    [autoit]

    For $GUIDNr = 1 To 10
    $input = IniRead($IniNameNeu, "LayerName", "GUID" & $GUIDNr, "Schlüssel nicht gefunden")
    $input = StringStripWS($input,3) ; Leerzeichen am Anfang und Ende entfernen
    Switch $input
    Case ""
    MsgBox(4096, " GUID" & $GUIDNr, "Der Wert darf nicht leer sein")
    Case "Schlüssel nicht gefunden"
    MsgBox(4096, " GUID" & $GUIDNr, "Wert nicht gefunden")
    Case Else
    Run(@ComSpec & ' /c svscmd.exe "'& $input &'" Activate',$SVSPath , @SW_HIDE)
    EndSwitch
    Next

    [/autoit]
  • variablen Parameter

    • bernd670
    • 17. November 2007 um 18:28

    Wenn der 4. Paramter Leer ist darf er natürlich auch nicht angegeben werden!

    [autoit]


    If $CmdLine[0] = 4 Then
    _PackRar($CmdLine[2], $CmdLine[3], $CmdLine[4])
    ElseIf $CmdLine[0] = 3 Then
    _PackRar($CmdLine[2], $CmdLine[3])
    Else
    Exit
    EndIf

    [/autoit]
  • Parameter an Batch zurückgeben

    • bernd670
    • 17. November 2007 um 18:17

    Hallo,

    es geht auch einfacher, schau dir mal den Exit-Befehl an. Dem kann man einen Returncode mitgeben der dann in Batch-Dateien mit %ERRORLEVEL% abgefragt werden kann.

  • variablen Parameter

    • bernd670
    • 17. November 2007 um 18:02

    Hallo,

    der Funktion aufruf ist ok, nur die Definition ist falsch!

    [autoit]


    Func _Function($CmdLine2, $CmdLine3, $CmdLine4 = 1)
    :
    :
    :
    EndFunc

    [/autoit]
  • _INetSmtpMailAuth und Win2003

    • bernd670
    • 16. November 2007 um 22:13

    Hallo,

    @error = 4, kommt immer wenn es probleme gibt auf den Mail-Server zuzugreifen, ist vllt. der Port 25 durch eine Firewall geblockt (s.o.) ?

    Es sind aber noch 2 Fehler in deiner Funktion:

    [list=1]
    [*]$s_FromAddress muss eine gültige Email-Adresse sein, in deinem Fall die die Du für dein Script erstellt hast.
    [*]$as_Body muss ein Array sein, sonst wird kein Text in die Email geschrieben!

    [autoit]


    Dim $as_Body[1]
    $as_Body[0] = GUICtrlRead($emailmsg)

    [/autoit]


    [/list=1]

    Sorry für die verspätete Anwort!

  • WSUS Skript mit AutoIT

    • bernd670
    • 14. November 2007 um 22:32

    Hallo,

    RunAsSet funktioniert nur mit den Funktionen Run und RunWait. Ich glaube nicht das RunAsSet auch mit _RunDos funktioniert.

    Schau dir mal Probleme beim Zugriff auf Netzfreigabe an!

  • CD-DVD-Wechsel erkennen

    • bernd670
    • 11. November 2007 um 22:47

    Hallo,

    meinst Du sowas?

    Spoiler anzeigen
    [autoit]

    If @AutoItVersion < "3.2.9.5" Then
    MsgBox(0,"Hinweis", "Es wird mindestens AutoIt Verson 3.2.9.5 benötigt!")
    Exit
    EndIf

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

    ; Konstantendefinition
    Global Const $OPEN_EXISTING = 0x00000003
    Global Const $IOCTL_STORAGE_EJECT_MEDIA = 0x002D4808
    Global Const $IOCTL_STORAGE_MEDIA_REMOVAL = 0x002D4804
    Global Const $FILE_FLAG_DELETE_ON_CLOSE = 0x04000000
    Global Const $GENERIC_WRITE = 0x40000000
    Global Const $GENERIC_READ = 0x80000000
    Global Const $INVALID_HANDLE_VALUE = 0xFFFFFFFF

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

    Global Const $tagOSVERSIONINFO = _
    "long dwOSVersionInfoSize;" & _
    "long dwMajorVersion;" & _
    "long dwMinorVersion;" & _
    "long dwBuildNumber;" & _
    "long dwPlatformId;" & _
    "char szCSDVersion[128]"

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

    Global Const $tagOVERLAPPED = _
    "long ternal;" & _
    "long ternalHigh;" & _
    "long offset;" & _
    "long offsetHigh;" & _
    "long hEvent"

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

    $var = DriveGetDrive("CDROM")

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

    If Not @error Then
    For $i = 1 To $var[0]
    LockDrive($var[$i])
    Next

    ConsoleWrite("CDROM-Laufwerk(e) sind gesperrt!" & @CRLF)

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

    Sleep(5000)

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

    For $i = 1 To $var[0]
    LockDrive($var[$i], False)
    Next

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

    ConsoleWrite("CDROM-Laufwerk(e) sind freigegeben!" & @CRLF)
    Endif

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

    ;===============================================================================
    ; Name: LockDrive
    ; Description: Auswurfknopf am CDROM-Laufwerk sperren
    ; Parameter(s): $szDrive = Laufwerksbuchstabe des CDROM-Laufwerks (z.B. "D:")
    ; (optional) $bLock = True (default) -> sperren
    ; False -> freigeben
    ; Requirement(s): keine
    ; Return Value(s): keine
    ; Author(s): bernd670
    ; Hinweis: Das Laufwerk wird erst wieder freigegeben wenn das Freigeben
    ; genau so oft aufgerufen wird wie das Sperren.
    ;===============================================================================
    Func LockDrive($szDrive, $bLock = True)

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

    Local $lpOutBuffer
    Local $lpInBuffer = DllStructCreate("long Data")
    Local $lpBytesReturned = DllStructCreate("long Data")
    Local $lpOverlapped = DllStructCreate($tagOVERLAPPED)

    DllStructSetData($lpInBuffer, "Data", $bLock)

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

    $hLwStatus = _KNL32_CreateFile("\\.\" & $szDrive, BitOR($GENERIC_READ, $GENERIC_WRITE), 0, 0, $OPEN_EXISTING, 0, 0)

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

    If $hLwStatus <> $INVALID_HANDLE_VALUE Then
    $iResult = _KNL32_DeviceIoControl( _
    $hLwStatus, _
    $IOCTL_STORAGE_MEDIA_REMOVAL, _
    DllStructGetPtr($lpInBuffer), _
    DllStructGetSize($lpInBuffer), _
    $lpOutBuffer, _
    0, _
    DllStructGetPtr($lpBytesReturned), _
    DllStructGetPtr($lpOverlapped) _
    )

    $iResult = _KNL32_CloseHandle($hLwStatus)
    EndIf
    EndFunc ;==>LockDrive

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

    ; http://msdn2.microsoft.com/en-us/library/aa363858.aspx
    Func _KNL32_CreateFile ($lpFileName, $dwDesiredAccess, $dwShareMode, $lpSecurityAttributes, $dwCreationDisposition, $dwFlagsAndAttributes, $hTemplateFile)
    Local $aResult = DllCall("kernel32.dll", "long", "CreateFile", _
    "str", $lpFileName, _
    "uint", $dwDesiredAccess, _
    "uint", $dwShareMode, _
    "ptr", $lpSecurityAttributes, _
    "uint", $dwCreationDisposition, _
    "uint", $dwFlagsAndAttributes, _
    "hwnd", $dwFlagsAndAttributes _
    )

    Return $aResult[0]
    EndFunc

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

    ; http://msdn2.microsoft.com/en-us/library/aa363216.aspx
    Func _KNL32_DeviceIoControl ($hDevice, $dwIoControlCode, $lpInBuffer, $nInBufferSize, $lpOutBuffer, $nOutBufferSize, $lpBytesReturned, $lpOverlapped)
    Local $aResult = DllCall("kernel32.dll", "long", "DeviceIoControl", _
    "hwnd", $hDevice, _
    "uint", $dwIoControlCode, _
    "ptr", $lpInBuffer, _
    "uint", $nInBufferSize, _
    "ptr", $lpOutBuffer, _
    "uint", $nOutBufferSize, _
    "uint*", $lpBytesReturned, _
    "ptr", $lpOverlapped _
    )

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

    Return $aResult[0]
    EndFunc

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

    ; http://msdn2.microsoft.com/en-us/library/ms724211.aspx
    Func _KNL32_CloseHandle ($hObject)
    Local $aResult = DllCall("kernel32.dll", "long", "CloseHandle", "hwnd", $hObject)

    Return $aResult[0]
    EndFunc

    [/autoit]
  • als Dienst installierter Prozeß - wie Priorität ändern?

    • bernd670
    • 11. November 2007 um 13:44

    Hallo,

    wahrscheinlich läuft der Dienst mit dem Systemkonto, probier doch mal ob Du die Priorität ändern kannst wenn der Dienst mit einem Adminkonto läuft.

  • FritzBox Anrufliste speichern

    • bernd670
    • 11. November 2007 um 11:55

    Hallo,

    die normale Webseiten der FritzBox ist in Frames unterteilt, deshalb muss man auf den richtigen Frame zugreifen:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>

    Opt("WinTitleMatchMode", 2)
    $internet_adresse = "http://fritz.box"

    $oIE = _IECreate ($internet_adresse, 0, 1, 1, 0)

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

    If @error >0 Then Exit

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

    WinSetState("Microsoft Internet Explorer", "", @SW_MAXIMIZE) ;maximieren

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

    _IELoadWait($oIE, 2000)

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

    $oFrame = _IEFrameGetObjByName($oIE, "frame_content")
    $oForm = _IEFormGetObjByName($oFrame, "uiViewForm")

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

    ; Passwort einsetzen
    $Password = _IEFormElementGetObjByName($oForm, "pass")
    _IEFormElementSetValue($Password, "xxxxxxxx")

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

    ; Anmelden-Button drücken
    $LoginBtn = _IEFormElementGetObjByName($oForm, "btnLogin")
    _IEAction($LoginBtn, "click")

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

    _IELoadWait($oIE, 2000)

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

    ; Zur Anrufliste wechseln
    _IELinkClickByText ($oFrame, "Anrufliste")

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

    _IELoadWait($oIE, 2000)

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

    ; Sichern-Button drücken
    $SaveBtn = _IEGetObjById($oFrame, "buttonExport")
    _IEAction($SaveBtn, "click")

    [/autoit]

    oder man muss auf die Seiten zugreifen die ohne Frames arbeiten:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>

    Opt("WinTitleMatchMode", 2)
    $internet_adresse = "http://fritz.box/cgi-bin/webcm?getpage=../html/index_inhalt.html"

    $oIE = _IECreate ($internet_adresse, 0, 1, 1, 0)

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

    If @error >0 Then Exit

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

    WinSetState("Microsoft Internet Explorer", "", @SW_MAXIMIZE) ;maximieren

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

    _IELoadWait($oIE, 2000)

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

    $oForm = _IEFormGetObjByName($oIE, "uiViewForm")

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

    ; Passwort einsetzen
    $Password = _IEFormElementGetObjByName($oForm, "pass")
    _IEFormElementSetValue($Password, "xxxxxxxxxx")

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

    ; Anmelden-Button drücken
    $LoginBtn = _IEFormElementGetObjByName($oForm, "btnLogin")
    _IEAction($LoginBtn, "click")

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

    _IELoadWait($oIE, 2000)

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

    ; Zur Anrufliste wechseln
    _IELinkClickByText ($oIE, "Anrufliste")

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

    _IELoadWait($oIE, 2000)

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

    ; Sichern-Button drücken
    $SaveBtn = _IEGetObjById($oIE, "buttonExport")
    _IEAction($SaveBtn, "click")

    [/autoit]

    Der restliche Code sollte ja jetzt kein Problem mehr sein!

  • Was ist hier falsch?! PixelgetColor

    • bernd670
    • 10. November 2007 um 20:11

    Hallo,

    da Hex kein 0x vor das Ergebnis schreibt darf auch $var kein 0x enthalten.

    [autoit]

    $var = "ffffff"
    $var1 = PixelGetColor(1015, 697)
    If (Hex($var1) = $var) Then
    MouseMove(1015, 697)
    $h = 100
    EndIf

    [/autoit]

    Edit:
    Ausserdem wird @error von PixelGetColor nicht beeinflusst und es muss $var1 mit Hex umgewandelt werden und nicht $var!

  • Zeilenumbruch

    • bernd670
    • 10. November 2007 um 19:55

    Hallo,

    es kommt immer darauf für welches System das Ergebnis sein soll, wenn ich z.B. eine Konfigurationsdatei für Linux erstelle darf als Zeilenumbruch nur @LF benutzt werden, bei MAC OS bis Version 9 ist das Zeilenumbruchzeichen @CR und für Microsoft-Betriebsysteme ist es @CRLF.

    Entsprechende Links auf Wikipedia:
    Zeilenumbruch
    Zeilenvorschub
    Wagenrücklauf

  • Problem mit Gui $WS_Popup

    • bernd670
    • 1. November 2007 um 15:59

    Hallo,

    das Problem tritt mit der aktuellen Beta nicht mehr auf!

  • Fehlermeldung "Das Verzeichnis ist ungültig"

    • bernd670
    • 1. November 2007 um 11:13

    Hallo,

    der Fehler ist eigentlich ganz einfach zu erklären, RunAsSet funktionier mit ShellExecute nicht.

    Eine mögliche Lösung ist den Run-Befehl mit @ComSpec zu verwenden:

    [autoit]

    Run(@ComSpec & "/C \\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnis\UserInstall\setup.exe -a -s -f1\\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnisrver\UserInstall\Programm.iss -f2C:\Programm.log", "\\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnis\UserInstall")

    [/autoit]

    Wenn das nicht funktioniert kann man noch das komplette Script mit RunAsSet neu starten, dann laufen alle Befehle mit Adminrechten.

    Wie z.B. hier!

  • Winwait wartet auf ein Fenster, das nie kommt

    • bernd670
    • 1. November 2007 um 10:55

    Hallo,

    das mit den Labels könntest Du so lösen:

    [autoit]

    $InstallSection = IniRead("install.ini", "Status", "Secton", "0")

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

    ; Installation von vorne beginnen
    If $InstallSection < 1 Then

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

    IniWrite("install.ini", "Status", "Secton", "1")
    Endif

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

    ; 2. Abschnitt beginnt hier
    If $InstallSection < 2 Then

    IniWrite("install.ini", "Status", "Secton", "2")
    EndIf

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

    ; 3. Abschnitt beginnt hier
    If $InstallSection < 3 Then

    IniWrite("install.ini", "Status", "Secton", "3")
    EndIf

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

    ; 4. Abschnitt beginnt hier
    If $InstallSection < 4 Then

    IniWrite("install.ini", "Status", "Secton", "4")
    EndIf

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

    ; Installation abgeschlossen, beim nächsten mal von vorne beginnen
    IniWrite("install.ini", "Status", "Secton", "0")

    [/autoit]


    Bei AdlibEnable gilt immer nur der letzte Aufruf, d.h. sobald AdlibEnable erneut aufrufen wird, wird die vorherige Funktion nicht mehr aufgerufen.

    Die Funktion die AdlibEnable zugewiesen ist kann auch ganz normal aufgerufen werden, sie wird von AdlibEnable nicht gesperrt.

  • Problem zwischen 2 Scriptversionen

    • bernd670
    • 19. Oktober 2007 um 16:29

    Hallo,

    der entscheidende unterschied zwischen den 2 Programmen ist das Du im ersten Programm alle txt-Dateien mit FileOpen öffnest und mit FileWriteLine immer nur in die schon geöffnete Datei schreibst. Im zweiten Programm gibst Du den Dateinamen direkt bei FileWriteLine an, dass hat zur folge das jedes mal die Datei geöffnet, geschrieben und geschlossen werden muss was natürlich ganz schön auf die Performance geht.

  • FileSetTime arbeitet ungenau

    • bernd670
    • 7. September 2007 um 23:46

    Das hat man damals gemacht um die Zeit mit 12 Bits zu speichern, dadurch hatte man 4 Bits für andere Aufgaben zur Verfügung! Speicher war zu der Zeit noch richtig teuer!

  • FileSetTime arbeitet ungenau

    • bernd670
    • 7. September 2007 um 23:34

    Hallo,

    das liegt wahrscheinlich am Filesystem auf dem USB-Stick, der ist bestimmt mit Fat32 formatiert. Bei den Fat-Filesystemen hat die Dateizeit eine Genauigkeit von 2 Sekunden, bei NTFS sind es 100 Nanosekunden. Kannst ja mal probieren den Stick mit NTFS zu formatieren und schauen ob sich das Problem damit lösen lässt.

  • Run - Problem

    • bernd670
    • 30. August 2007 um 16:27

    Hallo,

    so sollte es auf jeden Fall gehen:

    [autoit]

    ; Funktioniert nicht:
    $file = 'D:\netadapter.cfg'
    $cmd = 'netsh interface ip show config >' & $file
    ConsoleWrite('$cmd = ' & $cmd & @CR) ; Befehl ist OK
    Run(@ComSpec & " /C " & $cmd, @SystemDir, @SW_HIDE)

    [/autoit]

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™