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

Beiträge von chip

  • RunAS und SQLite inkompatiebel?

    • chip
    • 10. August 2009 um 08:45

    Also heute hab ich es mit dem RunBefehl.

    Folgendes Szenario. Ich möchte mit einem Autoitscript ein anderes Autoitscript aufrufen das dann eine SQLite DB erstellen soll.

    Das run-Script zum starten:

    Spoiler anzeigen
    [autoit]

    RunAs("user","ads","123",0,"C:\client.exe")

    [/autoit]

    Das client.exe script:

    Spoiler anzeigen
    [autoit]

    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    _SQLite_Startup ()
    _SQLite_Open('test.db')

    [/autoit]


    Hier geschieht etwas, dass zumindestens für mich nicht nachvollziebar ist. Das run-script startet das clientscript aber die db wird nicht erstellt. Auch wenn ich einfach nur mit Run die client.exe starte, wird die DB nicht erstellt. Wenn ich nun allerdings die client.exe per Hand starte wird die DB wie es sein soll erstellt.

  • Probleme mit Run und gemapptem Laufwerk

    • chip
    • 10. August 2009 um 07:52

    Hallo,

    ich habe zur Zeit ein Problem mit Run und gemappten Laufwerken, das Betriebssystem ist XP. Als Beispiel für das Problem hier einfach einmal das Mappen eines Laufwerkes mit anschließendem Aufruf eines Autoitscriptes.

    In diesem Fall passiert schlicht garnichts bis auf das das Laufwerk gemappt wird.

    Spoiler anzeigen
    [autoit]

    DriveMapAdd("X:", "\\193.196.72.5\ProgrammeAutoit$", 8, "ads\user", "123")
    RunAsWait("user","ads","123",0,"X:\AcrobatPro9\install.exe")

    [/autoit]


    Mit diesem Code funktioniert es ohne Probleme in die install.exe wird gestartet.

    Spoiler anzeigen
    [autoit]

    DriveMapAdd("X:", "\\193.196.72.5\ProgrammeAutoit$", 8, "ads\user", "123")
    RunAsWait("user","ads","123",0,"\\193.196.72.5\ProgrammeAutoit$\AcrobatPro9\install.exe")

    [/autoit]


    Dachte zuerst das Problem liegt daran, das zum Zeitpunkt wenn der Run-Befehl ausgeführt wird das Laufwerk noch nicht ganz gemappt ist, allerdings ist das gleiche Problem auch nach einem sleep von mehrere Sekunden.

    Das Gleiche Problem ist übrigens auch in der aufzurufenden install.exe

    Statt

    Spoiler anzeigen
    [autoit]

    Run('X:\AcrobatPro9\Adobe Acrobat 9 Pro\Setup.exe')

    [/autoit]

    muss dort

    Spoiler anzeigen
    [autoit]

    Run('\\193.196.72.5\ProgrammeAutoit$\AcrobatPro9\Adobe Acrobat 9 Pro\Setup.exe')

    [/autoit]

    stehen damit überhaupt etwas passiert.

  • Run @SW_HIDE Tastatureingaben möglich

    • chip
    • 7. August 2009 um 09:14

    Hi,

    ich habe mit Autoit eine automatische Installation gemacht. Ist allerdings komplett mit send gemacht. Nun habe ich gesehen das man bei Run im show_flag setzen kann, dass das Setupfenster versteckt ist. Würden dann trotzdem alle Send befehle ins Setupfenster übernommen oder gibt es da Einschränkungen?

  • Schnittmengen und Differenzmengen ermitteln

    • chip
    • 7. August 2009 um 08:22

    Perfekt, genau das was ich gerade gesucht habe :).

  • GUI Label + Progressbar zentrieren

    • chip
    • 6. August 2009 um 09:48
    Zitat von Oscar

    Einfach die Position berechnen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $iWidth = @DesktopWidth
    $iHeight = @DesktopHeight
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("", $iWidth, $iHeight, 0, 0, $WS_POPUP)
    $Label1 = GUICtrlCreateLabel("Software wird geprüft", $iWidth / 2 - 150, $iHeight / 2 - 50, 300, 36, $SS_CENTER)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $Progress1 = GUICtrlCreateProgress($iWidth / 2 - 150, $iHeight / 2 - 10, 300, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
    Alles anzeigen

    Stimmt wenn man weiß wie, dann ist einfach ;). Dankeschön.

  • GUI Label + Progressbar zentrieren

    • chip
    • 6. August 2009 um 09:30

    Hi,

    ich habe folgende GUI

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, 0)
    $Label1 = GUICtrlCreateLabel("Software wird geprüft", 96, 96, 259, 36, $SS_CENTER)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $Progress1 = GUICtrlCreateProgress(72, 192, 374, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Wie man sieht wird das Form auf die größe des Bildschirmes maximiert. Nun möchte ich aber noch das das Label und die Progressbar auf diesem Form auch noch zentriert sind.

  • Autoit Windows Login

    • chip
    • 6. August 2009 um 07:35

    Hallo,

    ist folgendes Szenario mit Autoit realisierbar:

    Ein Autoitscript wird per geplanter Task beim starten des PC ausgeführt und wartet mit TCPRecv auf "Daten". Beime erhalten einer bestimmten Zeichenfolge logt das Script einen bestimmten Benutzer automatisch ein.

    P.s. Betriebsystem wäre erstmal nur XP.

  • TCP Verbindung nur einmal möglich

    • chip
    • 5. August 2009 um 12:35

    Oh man vielen vielen dank, hab da schon Stunden gesucht gehabt.

  • Drucker Mappen

    • chip
    • 5. August 2009 um 08:35

    Geht über WSH:

    http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx

  • Alternative Netzwerkkonfiguration setzen

    • chip
    • 5. August 2009 um 08:25

    Schau dir mal den Befehl NETSH von Windows an.

    Oder halt direkt in der registry ändern: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

  • TCP Verbindung nur einmal möglich

    • chip
    • 5. August 2009 um 07:55

    Hi,

    hab etwas an meinem Script geändert und nun ist es nur noch möglich einmal sich von Client zu Verbinden. Hier mal Anleitung zu Fehlerreproduktion, webei es egal ist ob Client und Server auf dem selben Rechner laufen oder nicht. Man muss nur im Client die IP anspassen:

    1. Server starten
    2. Client starten wobei hier die Verbindung noch geht, die Daten übertragen werden und der Client wieder geschlossen wird.
    3. Client erneut starten, Socketverbindung wird garnicht erst aufgebaut


    Server:

    Spoiler anzeigen
    [autoit]

    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    Local $sSQliteDll
    $sSQliteDll = _SQLite_Startup ()
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
    Exit - 1
    EndIf
    ConsoleWrite("_SQLite_LibVersion=" &_SQLite_LibVersion() & @CR)

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

    _SQLite_Open('datenbank.db')

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

    $strCREATE = _
    "CREATE TABLE [Rechner] (" & _
    "[id] INTEGER PRIMARY KEY NOT NULL," & _
    "[ip] VARCHAR[15] NULL," & _
    "[mac] VARCHAR[17] NULL," & _
    "[name] VARCHAR[50] NULL," & _
    "[kategorie] INTEGER NULL)"
    If _SQLite_Exec ( -1, $strCREATE ) <> $SQLITE_OK Then

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

    EndIf

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

    $strCREATE = _
    "CREATE TABLE [Zuweisenrechner] (" & _
    "[id] INTEGER PRIMARY KEY NOT NULL," & _
    "[programmname] VARCHAR[50] NULL," & _
    "[rechnername] VARCHAR[50] NULL)"
    If _SQLite_Exec ( -1, $strCREATE ) <> $SQLITE_OK Then

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

    EndIf

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

    $strCREATE = _
    "CREATE TABLE [Zuweisenkategorie] (" & _
    "[id] INTEGER PRIMARY KEY NOT NULL," & _
    "[programmname] VARCHAR[50] NULL," & _
    "[kategorie] VARCHAR[50] NULL)"
    If _SQLite_Exec ( -1, $strCREATE ) <> $SQLITE_OK Then

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

    EndIf

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

    _SQLite_Close()
    _SQLite_Shutdown ()

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

    TCPStartup()
    While 1

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

    $MainSocket = TCPListen(@IPAddress1, 33891, 100 )

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

    while 1
    $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket <> -1 Then ExitLoop
    Sleep(100)
    WEnd

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

    TCPSend($ConnectedSocket,"1")

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

    Do
    $recv = TCPRecv($ConnectedSocket, 2048)
    Sleep(100)
    Until $recv <> ""

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

    _SQLite_Startup ()
    _SQLite_Open('H:\Packages\ProgrammeAutoit\datenbank.db')

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

    $empfang = StringSplit($recv,"#")

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

    Local $hQuery, $hZeile = ""
    _SQLite_Query(-1,"SELECT ip,name FROM Rechner WHERE mac = '" & $empfang[2] & "'" ,$hQuery)
    _SQLite_FetchData($hQuery, $hZeile)
    _SQLite_QueryFinalize ($hQuery)

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

    $anzahl = Ubound($hZeile)

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

    If $anzahl < 2 Then
    _SQLite_Exec(-1,"INSERT INTO Rechner (id, ip, mac, name, kategorie) VALUES (NULL, '"& $empfang[1] & "', '" & $empfang[2] & "', '" & $empfang[3] & "', 'keine')")
    Else

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

    EndIf

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

    _SQLite_Close()
    _SQLite_Shutdown ()

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

    WEnd
    TCPShutdown()

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

    _SQLite_Close()
    _SQLite_Shutdown ()

    [/autoit]

    Client

    Spoiler anzeigen
    [autoit]

    Func _GetMACFromIP($sIP=@IPAddress1, $mode = 1)
    Local $MAC, $MACSize
    Local $i, $s, $r, $iIP
    $MAC = DllStructCreate("byte[6]")
    $MACSize = DllStructCreate("int")
    DllStructSetData($MACSize, 1, 6)
    $r = DllCall("Ws2_32.dll", "int", "inet_addr", _
    "str", $sIP)
    $iIP = $r[0]
    $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
    $s = ""
    If $mode = 0 Then
    For $i = 0 To 5
    $s &= Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next

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

    ElseIf $mode = 1 Then
    For $i = 0 To 5
    If $i Then $s = $s & ":"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    ElseIf $mode = 2 Then
    For $i = 0 To 5
    If $i Then $s = $s & "-"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    EndIf
    Return $s
    EndFunc

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

    Do
    Local $macadresse = ""
    $macadresse = _GetMACFromIP()
    Until $macadresse <> ""

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

    $text = @IPAddress1 & "#" & $macadresse & "#" & @ComputerName

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

    $Empfaenger_IP = "193.196.108.32"
    $Port = 33891

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

    TCPStartUp()
    $ConnectedSocket = TCPConnect($Empfaenger_IP, $Port)
    Do
    $recv = TCPRecv($ConnectedSocket, 2048)
    Sleep(100)
    Until $recv <> ""
    TCPSend($ConnectedSocket, $text)
    Sleep(2000)

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

    TCPShutdown ()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • EventLog Abfrage verhält sich komisch.

    • chip
    • 29. Juli 2009 um 13:53

    Mh mich iritiert nur eines, kann bei euch jeder einfach so ins Netz nur in dem er Laptop anschließt? Habt ihr keine Sicherheitsvorkehrungen?

  • EventLog Abfrage verhält sich komisch.

    • chip
    • 29. Juli 2009 um 12:54

    Hatte gerade nix zu tuen also hab ich dir das mal mit der Firmenip gemacht:

    Spoiler anzeigen
    [autoit]

    $Gateway="193.196.108.254"

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

    $objWMIService=ObjGet("winmgmts:{impersonationLevel=impersonate, (Security)}!\\" & "." & "\root\cimv2")
    $colMonitoredEvents = $objWMIService.ExecNotificationQuery ("Select * from __instancecreationevent where TargetInstance isa 'Win32_NTLogEvent' and TargetInstance.EventCode = '4201' ")

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

    While 1
    $objLatestEvent = $colMonitoredEvents.NextEvent

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

    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    $colNicConfigs = $objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True", "WQL", 48)

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

    For $objNicConfig In $colNicConfigs
    For $strIPSubnet In $objNicConfig.DefaultIPGateway
    $IP = $strIPSubnet
    Next
    Next

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

    If $Gateway = $IP Then
    msgbox(1,"","Willkommen im Netz. Bitte starten Sie den Computer neu...")
    EndIf
    Wend

    [/autoit]

    Einfach bei Gateway euren Standardgateway eintragen.

  • Pc per Bluetooth ausschalten

    • chip
    • 29. Juli 2009 um 11:44

    Was funktioniert den nicht? Die Farberkennung oder das runterfahren?

  • EventLog Abfrage verhält sich komisch.

    • chip
    • 29. Juli 2009 um 11:19

    Mh also hab das jetzt mal probiert dein Script, also bei mir passiert da rein garnichts wenn ich Netzwerkkabel anschließe. Ist das echt der komplette Code?

    Das mit der Schleife ist aber klar.

    Musst entweder so machen:

    [autoit]


    $i = 0
    Do
    $objLatestEvent = $colMonitoredEvents.NextEvent
    msgbox(1,"","Willkommen im Netz. Bitte starten Sie den Computer neu...")
    Until $i = 1

    [/autoit]

    oder noch besser so:

    [autoit]

    While 1
    $objLatestEvent = $colMonitoredEvents.NextEvent
    msgbox(1,"","Willkommen im Netz. Bitte starten Sie den Computer neu...")
    Wend

    [/autoit]
  • Maximale Socketverbidnungen?

    • chip
    • 29. Juli 2009 um 10:33
    Zitat von ctec

    mit sovielen Informationen wird dir sicherlich JEDER hier eine qualifizierte Antwort geben können :thumbdown:

    Mal über Angaben wie Betriebssystem, Patchstand oder gar Router nachgedacht? Wenn man mit diesen Infos dann noch eine Suchmaschine seiner Wahl füttert...

    Da das hier ein AutoIt-Forum ist sollt man eigentlich erahnen können das ich die von AutoIt verwaltbaren Verbindungen meine. Von daher lass deine lächerlichen Aussagen.

  • Maximale Socketverbidnungen?

    • chip
    • 29. Juli 2009 um 08:01

    Hi,

    kann mir jemand sagen was die maximale Anzahl gleichzeitig bestehender Socketverbindungen ist?

    Desweiteren wüsste ich gerne ob es reicht wenn beim Client TCPCloseSocket ausgeführt wird um auch beim Server den "Socketslot" wieder frei zu bekommen?

  • WSUS Status Abfragen???

    • chip
    • 15. Juli 2009 um 15:37

    Also meine WSUS Abschlussprojekt ist nun zwar schon zwei Jahr her, aber wenn ich mich noch recht erinnere werden diese Infomationen vom WSUS in einer lokalen Datenbank gespeichert auf die du garnicht zugreifen kannst außer über die Weboberfläche.

  • Client - Server Verständigungsproblem

    • chip
    • 15. Juli 2009 um 13:19
    Zitat von Matthias_199

    was sucht TCPshutdown in der schliefe?


    wird sie einmal ausgeführ geht nix mehr


    EDIT: OK hab es zum laufen gebracht schu dir die scripts genau und und wenn du fragen hast stelle sie

    Soll ja auch nur einmal ausgeführt werden ;).

    Ok danke werde ich gleich mal testen.

  • SQL-Abfrage ( Count ) mit Autoit

    • chip
    • 15. Juli 2009 um 09:00

    1. Hast den ODBC Treiber installiert?
    2. Hast den richtigen Verbindungsstring für SQl Express?
    3. Muss es Sql Express sein? Wenn nicht nimm sqlite das unterstützt Auotit direkt mit Funktionen

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™