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

Beiträge von misterspeed

  • Installed Software

    • misterspeed
    • 28. Dezember 2013 um 21:54

    Pobier mal das hier...

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstants.au3>

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

    $gui_width = 500
    $gui_height = 600

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

    Global $count = 1, $all_keys = "", $abort = 0
    Global $main_key = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    Global $main_key64 = "HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    Global $key = $main_key

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

    GUICreate("Installed Software", $gui_width, $gui_height, @Desktopwidth/2 - $gui_width/2, @DesktopHeight/2 - $gui_height/2 - 75)
    $gui_list = GUICtrlCreateList ("", 10, 10, $gui_width - 20, $gui_height - 20)
    GUISetState ()

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

    $foundItems = 0
    do
    $act_key = RegEnumKey ($key, $count)
    If @error <> 0 then
    $abort += 1
    $count = 1
    $key = $main_key64
    Else
    $count = $count + 1
    $act_name = RegRead ($key & '\' & $act_key, "Displayname")
    $act_name = StringReplace ($act_name, " (remove only)", "")
    if stringinstr($act_name,"Security Update") then continueloop
    if stringinstr($act_name,"Update for Microsoft") then continueloop
    if stringinstr($act_name,"Hotfix für") then continueloop
    if stringinstr($act_name,"Hotfix for") then continueloop
    if stringinstr($act_name,"Service Pack") then continueloop
    If $act_name <> "" And Not StringInStr($all_keys,"|" & $act_name & "|") Then
    $dontShow = RegRead($key & '\' & $act_key, "SystemComponent")
    ConsoleWrite( $dontShow & @TAB & $act_name & @CRLF)
    If $dontShow = 1 Then ContinueLoop
    $all_keys = $all_keys & $act_name & "|"
    $foundItems += 1
    EndIf
    EndIf
    until $abort = 2
    ConsoleWrite ("Einträge: " & $foundItems & @CRLF)

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

    GUICtrlSetData ($gui_list, $all_keys)
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit]
  • Installed Software

    • misterspeed
    • 28. Dezember 2013 um 21:16

    Hab dein Script mal ein wenig geändert. Doubletten sollten nun nicht mehr möglich sein, außerdem liest es sowohl den 32bit, als auch den 64bit Schlüssel aus. Bei mir erscheinen manche Einträge aber trotzdem mehrfach und unterscheiden sich nur in der Sprachversion, desweiteren sollte man Windowsupdates noch ausfiltern, dazu einfach den aktuellen Namen mit stringinstr prüfen und bei Bedarf ein continueloop anstatt den key zur Liste hinzuzufügen, schon ist der ungewünschte Eintrag übersprungen...

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstants.au3>

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

    $gui_width = 500
    $gui_height = 600

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

    Global $count = 1, $all_keys = "", $abort = 0
    Global $main_key = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    Global $main_key64 = "HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    Global $key = $main_key

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

    GUICreate("Installed Software", $gui_width, $gui_height, @Desktopwidth/2 - $gui_width/2, @DesktopHeight/2 - $gui_height/2 - 75)
    $gui_list = GUICtrlCreateList ("", 10, 10, $gui_width - 20, $gui_height - 20)
    GUISetState ()

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

    do
    $act_key = RegEnumKey ($key, $count)
    If @error <> 0 then
    $abort += 1
    $count = 1
    $key = $main_key64
    Else
    $count = $count + 1
    $act_name = RegRead ($key & '\' & $act_key, "Displayname")
    $act_name = StringReplace ($act_name, " (remove only)", "")
    if stringinstr($act_name,"Security Update") then continueloop
    if stringinstr($act_name,"Update for Microsoft") then continueloop
    if stringinstr($act_name,"Hotfix für") then continueloop
    if stringinstr($act_name,"Hotfix for") then continueloop
    if stringinstr($act_name,"Service Pack") then continueloop
    If $act_name <> "" And Not StringInStr($all_keys,"|" & $act_name & "|") Then $all_keys = $all_keys & $act_name & "|"
    EndIf
    until $abort = 2

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

    GUICtrlSetData ($gui_list, $all_keys)
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit]
  • Buttons

    • misterspeed
    • 28. Dezember 2013 um 20:12
    [autoit]

    ShellExecute("rack.url")

    [/autoit]

    Oder besser gleich den korrekten Pfad zur Datei die geöffnet werden soll, also in deinem Fall:

    [autoit]

    ShellExecute(@ScriptDir & "\rack.url")

    [/autoit]

    Alternativ könntest du dir den Dateikram auch komplett schenken und den Link direkt im Script aufrufen:

    [autoit]

    ShellExecute("www.google.de")

    [/autoit]
  • _FTP_Connect schlägt immer fehl

    • misterspeed
    • 28. Dezember 2013 um 18:54
    • Datei vom FTP herunterladen
    • [autoit]IniReadSectionNames[/autoit]
    • [autoit]_arraysearch[/autoit] oder eben eine Schleife wie chesstiger vorgeschlagen hat
  • _FTP_Connect schlägt immer fehl

    • misterspeed
    • 28. Dezember 2013 um 18:49

    Firewall testweise mal deaktiviert? Läuft der FTP überhaupt auf dem Standardport 21 oder weicht dieser ab? Wenn ja Port beim connect angeben. Erlaubt der FTP Server unverschlüsselte Verbindungen? Wenn nein wirst du mit den FTP Funktionen der UDF nicht weiterkommen. Sofern du vollen Zugriff auf den FTP Server hast... was sagen die Logfiles zu deinen connect Versuchen?

    EDIT:

    Gut hat sich dann ja erledigt ^^

  • WinSetOnTop funktioniert nicht unter Win.8.1

    • misterspeed
    • 28. Dezember 2013 um 18:32

    Vielleicht hilft dir ja das hier, allerdings ging es dabei nur darum das Fenster vor die Metro Oberfläche zu bekommen (was vermutlich auch dein Problem ist?). Ob der letzte Link letzlich eine Lösung beinhatet wurde im Thread leider nicht mehr erwähnt...

    https://autoit.de/index.php?page=Thread&amp;postID=267460
    http://blogs.microsoft.co.il/pavely/2012/05…ost-vs-topmost/

  • Automatisierte Installation / Updates

    • misterspeed
    • 28. Dezember 2013 um 18:05

    Nimms mir nicht Krum, aber wenn du dir die Hilfe zu winsetstate anschaust wirst du dort ein Beispiel finden, zwar nicht für winzip, aber für notepad.

    Konkret wird dort dieser Beispielcode gepostet:

    [autoit]


    WinSetState("[CLASS:Notepad]", "", @SW_HIDE)
    Sleep(3000)
    WinSetState("[CLASS:Notepad]", "", @SW_SHOW)

    [/autoit]

    Außerdem findest du dort einen weiterführenden Link bezüglich der hier verwendeten "Erweiterte Fenstertiteldefinition"

    Um diese erweiterten Details über ein Fenster herauszufinden nutzt man normalerweise das Tool "Au3info", welches du im Scite Editor unter Tools findest. Alternativ können auch die hier genannten Programme verwendet werden.

    Hier ist im groben die Vorgehensweise anhand von "Daemon Tools" erklärt: http://supportishere.com/how-to-automat…on-with-autoit/


    Was die Updategeschichte anbelangt... wie gesagt ich werd dir hier keine fertigen Code runterschreiben. Ich kann dir aber sagen wie du in etwa vorgehen musst, welche Informationen du brauchst und welche Funktionen dabei hilfreich sein könnten und von dir in der Hilfe Nachgeschlagen werden sollten:

    • Aktuelle Version ermitteln
      [autoit]
      regread ; z.B. die Registry Keys welche bei einer Installation für eine spätere Deinstallation angelegt werden (google danach)
      filegetversion
      [/autoit]
    • Die Herstellerseite auf eine aktuellere Version als die vorhandene überprüfen
      [autoit]
      Inetread
      ; ggf. auch die Funktionen der IE.au3 oder FF.au3
      ; oder aber die FTP Funktionen (Mozilla bietet z.B. einen strukturierten FTP Server auf dem man sich bedienen kann)
      ; ebenfalls nützlich diverse String Funktionen um die Versionsnummer aus dem Webseitenquelltext zu extrahieren
      _stringbetween
      stringsplit
      stringinstr
      ; sobald mithilfe der Stringfunktionen beide Versionsnummern ermittelt und ins selbe Format gebracht wurden können diese mit
      _versioncompare
      ; verglichen werden
      [/autoit]
    • Existiert eine neue Version muss diese heruntergeladen werden
      [autoit]
      Inetget
      ; oder FTP Funktionen...
      [/autoit]
    • Nach dem Download kommt die Installation, siehe meine Ausführungen weiter oben...
    • Fertig?

    Meiner Meinung nach viel zu aufwendig, da sich jederzeit etwas an der Webseite des Herstellers ändern kann und die selbe Prozedur bei jedem Hersteller etwas anderst sein wird.

  • Automatisierte Installation / Updates

    • misterspeed
    • 28. Dezember 2013 um 16:57

    Da du keine konkreten Beispiele nennst eine allgemeine Antwort:

    Zu Frage 1:

    • Zum einen bieten die meisten Standardsetups sogenannte "silent" Parameter. Beispielhaft hier die Doku zum "Inno Setup": http://www.jrsoftware.org/ishelp/topic_setupcmdline.htm . Auch andere Hersteller von Installationsroutinen haben solche "silent" Funktionen.
    • Grundsätzlich kann Autoit Fenster unsichtbar machen
      [autoit]winsetstate("title","text",@SW_HIDE)[/autoit]
    • Buttons und andere Elemente eines (unsichtbaren) Fensters können sehr viel zuverlässiger mit den control Funktionen als mit Send oder mouseclick automatisiert werden (winzip Hilfebeispiel), der Benutzer kann problemlos nebenher weiterarbeiten.
      [autoit]
      controlclick
      controlcommand
      ;...
      [/autoit]

    Zu Frage 2:

    Hier ist keine allgemeingültige Aussage möglich. Da es in Windows keine zentrale Software und Versionsverwaltung gibt bringt jedes Poppelprogramm seine eigene Updateroutine mit. Es ist nahezu aussichtslos einen Updater zu schreiben der universal jedes Programm aktualisieren kann. Das fängt schon damit an, dass manche Hersteller noch nichteinmal direkte Downloads der neuesten Updates bereitstellen, sondern nur über ihren eigenen Updatedienst verfügbar machen. Wenn du ein größere Netzwerk verwalten musst, dann könnte man eine eigene Softwareverteilung realisieren, bei der du auf einem zentralen Server regelmässig aktuelle Versionen bereitstellst und alle Rechner im Netzwerk diese automatisch beziehen/installieren.

  • _FTP_Connect schlägt immer fehl

    • misterspeed
    • 28. Dezember 2013 um 14:02

    Teste mal den Passivmode:

    [autoit]

    $connect=_FTP_Connect($session, "ftp.servername.de", "user@servername.de", "password",1)

    [/autoit]
  • Anwendung die auf Server automatisch Dateien kopiert

    • misterspeed
    • 28. Dezember 2013 um 10:48

    Ich sehe erstmal kein Problem das zu realisieren. Autoit bietet dir FTP Funktionen und natürlich kannst du auch beliebige Textdateien dynamisch erzeugen lassen und hochladen.

    Relevante Funktionen:

    [autoit]


    _FTP_Open
    _FTP_Connect
    _FTP_DirCreate
    _FTP_FilePut
    _FTP_ListToArray
    ; und einige andere...

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

    filewrite
    filecopy
    ; und diverse String Funktionen...

    [/autoit]


    Allerdings frage ich mich ob dein System so wirklich Sinn macht und nicht auch sicherheitstechnisch problematisch ist.

    Zum einen wäre es aus Performancesicht vermutlich sinnvoller die Albumszuordnung der Bilder über eine Datenbank zu realisieren damit nicht bei jedem Aufruf der Seite der komplette Webspace nach Bildern abgesucht werden muss (langsame HDD Zugriffe?). Dann wäre es auch völlig egal wie bzw. wo die Bilder auf deinem Webspace gespeichert werden und du bräuchtest keine separaten Dateien in Unterordnern für die Beschreibung bzw. die Anzeige der Alben. Dein derzeitiges System erlaubt prinzipiell auch den Upload von Ordnern die Leer- oder Sonderzeichen enthalten, was letztlich zu Problemen führen könnte. Ebenfalls problematisch ist, dass deine Uploadanwendung über FTP Daten verfügen muss. Sofern du vorhast diese fest im Quellcode zu speichern sollte dir klar sein, dass Autoit Scripte leicht dekompiliert werden können und deine FTP Daten somit nicht zwingend geheim bleiben. Je nachdem über welche Rechte der FTP Account verfügt könnte das unter Umständen negative Folgen haben. Prinzipiell ist es ohnehin problematisch, dass du den Anwendern den Upload von beliebigem Content erlauben würdest. Besser wäre es wenn der Anwender wie bei gängigen Bilderhostern nur Bilddateien hochladen könnte. Mit vollem FTP Zugriff hindert mich keiner Daran eigenen HTML Code oder schadhafte Javascripte auf deinen Webspace hochzuladen für den letzlich du verantwortlich bist.

    Ich würde das also etwas anderst angehen. Sinnvoll wäre zum Beispiel eine API mit Authentifizierung über die man neue Alben hinzufügen kann. Hier kann dann serverseitig sichergestellt werden, dass nur erlaubter Content von verifizierten Nutzern auf dem Server landet. Eine Benutzerverwaltung würde dir außerdem erlauben Alben "öffentlich", "nur für Mitglieder / bestimmte Gruppen" oder "privat" zu deklarieren. Man könnte das unendlich weitertreiben, aber vermutlich wirst du keine Lust haben alles über den Haufen zu werfen und mit Autoit hat das ja eigentlich auch wenig zu tun.

    Wenn du mehr darüber erfahren willst wie so eine API aufgebaut sein kann schau dir mal die API vom Bilderhoster Imgur an: http://api.imgur.com

    Eine Anwendung die die API nutzt muss sich zunächst authentifizieren, danach werden einfache HTTP Pakete an den Webserver geschickt die sowohl die Meta Daten (Titel, Beschreibung...) als auch die Bilddaten enthalten. Das ganze wird serverseitig in der DB gespeichert und ein Link generiert der den Zugriff erlaubt, dieser wird der Upload-Anwendung dann mitgeteilt.

  • Frage zu _FFCmd_Err

    • misterspeed
    • 27. Dezember 2013 um 23:22

    Ja Autoit ist eine eigene Scriptsprache und hat prinzipiell nichts mit PHP oder JS zu tun. Wie die meisten Script- / Programmiersprachen ähnelt Autoit aber natürlich vielen vorhandenen Sprachen, besitzt aber auch seine Eigenheiten.

    "print" oder "echo" gibt es in Autoit natürlich auch, nur wird es hier

    [autoit]

    consolewrite()

    [/autoit]

    genannt.

    Sprachkombinationen sind prinzipiell immer möglich. Es gibt zum Beispiel den ein oder anderen in Autoit geschriebenen Webserver, der prinzipiell in der Lage wäre HTML Seiten mit JS und PHP auszuliefern und entpsrechend zu antworten. Wieder andere Projekte beschäftigen sich mit inline Assembler, oder versuchen sich daran Autoit nach C oder JAVA zu übersetzen usw.

    Du wirst aber sehr wahrscheinlich keine fertigen PHP to Autoit Übersetzer finden und du wirst auch keine PHP Funktionen direkt in Autoit nutzen können.

    Autoit ist primär eher ungeeignet für Webservices. Zumindestens wenn es um Performance und viele Zugriffe geht ist Autoit aufgrund des fehlenden Multithreadings und der Tatsache, dass es sich um eine interpretierte Scriptsprache und keine Hochsprache handelt stark im Nachteil. Die Stärken von Autoit liegen eher in der Automatisierung von Aufgaben im administrativen Windowsumfeld, außerdem ist Autoit aufgrund der übersichtlichen Hilfe mit unmengen an Beispielscripten sehr einfach zu erlernen.

    Datenbanken lassen sich mit Autoit im übrigen problemlos ansprechen, dafür gibt es je nach DB verschiedene UDF die man nutzen kann, von der Anwendung her sollten die Unterschiede zu PHP oder anderen Sprachen minimal sein. Wer SQL beherscht / verstanden hat und bereits Erfahrungen damit in Verbindung mit einer Programmiersprache gesammelt hat sollte das auch in beliebigen anderen Sprachen hinbekommen.

    EDIT:

    Mehr über Autoit kannst du btw auch hier nachlesen: http://www.autoitscript.com/site/autoit/
    Für den Einstieg ebenfalls empehlenswert: https://autoit.de/index.php?page=Thread&amp;threadID=11898

  • Ausführung eines Mausklicks

    • misterspeed
    • 27. Dezember 2013 um 22:45
    Zitat von Chulio

    bei mir gehts allerdings nicht um WoW oder was der da für nen Spiel hatte, :D sondern lediglich um ein Simples Button auf einer Internetseite.

    Wie oben schon von mir erwähnt eignen sich spezialisierte Funktionen zur Browserautomatisierung um Welten besser für das was zu tun willst. Schau dir bitte in der Hilfe die Funktionen der IE.au3 und die entsprechenden Beispiele an, z.b.

    [autoit]


    _IECreate
    _IEFormSubmit
    _IEAction
    _IEImgClick
    _IEFormImageClick
    _IELinkClickByIndex
    _IELinkClickByText

    [/autoit]
    Zitat von Chulio


    Vor allem was genau bewirkt das #RequireAdmin? Denn im Falle, das der Fehler auftritt und man #RequireAdmin einbindet läuft wieder alles (mann muss jedoch immer bestätigen das man den Zugriff zulassen möchte!)! Sprich derjenige der weiss, was genau dieses #RequireAdmin bewirkt, kann vermutlich auch erahnen, was verändert wurde das es zu diesem Problem kommen kann.

    #RequireAdmin ist eine Präprozessor Anweisung. Sie wird also noch bevor das restliche Script interpretiert wird ausgeführt. Konkret sorgt #RequireAdmin dafür, dass die UAC Abfrage von Windows Vista / 7 / 8 gestartet wird und der Prozess anschließend im Kontext eines Administrators ausgeführt wird, sofern entsprechende Berechtigungen vom Anwender erteilt werden. Wie bereits erwähnt benötigt man für mouseClick() aber keinerlei Administrator Privilegien. Was bewrikt die UAC Abfrage sonst noch? Da der Dialog recht aufdringlich in den Vordergrund gedrängt wird dürfte vermutlich der Focus eines zuvor aktiven Fensters verloren gehen, bzw. die OnTop Attribute der vorhandenen Fenster neugeordnet werden. Möglich, dass dadurch auch das Verhalten der mouseclick Funktion in deinem Fall positiv beeinflusst wird, auch wenn ich nachwievor meine Zweifel daran habe.

    Wie dem auch sei, dein Problem lässt sich sehr einfach durch die Nutzung von geeigneteren Funktionen beheben (siehe oben).

    EDIT:

    Sehe gerade, dass du dich bereits mit der FF.au3 beschäftigt hast, somit dürfte das "Problem" ja bereits gelöst sein. ;)

  • Fehlerabfrage bei COM Objekten

    • misterspeed
    • 27. Dezember 2013 um 17:38
    Zitat von Don

    Hallo,
    Wie kann ich den Fehler abfangen, damit ich ihn für ein Log wegschreiben kann (Number und Description)?

    Öhm in dem du die msgbox in deiner Error Funktion einfach durch ein filewrite oder vergleichbares ersetzt (z.B. speichern aller Fehler in einem globalen Array und schreiben des Arrays in eine Logdatei bei Programmende)?

    Zum Ausfiltern der für dich uninteressanten Fehlermeldung müsstest du die Fehler vergleichen und schaun ob dort irgendwo vermerkt ist welcher Aufruf sie verursacht hat. Ich nehme mal an das hast du bereits getan, andernfalls wüsstest du nicht, dass die Meldung von beiden Aufrufen ausgelöst wird. Eine Möglichkeit wäre z.B. eine if...then...else Bedingung in deiner Error Funktion anhand der "scriptline", allerdings wäre das extrem unzuverlässig und müsste bei jeder Code Änderung angepasst werden. Eventuell unterscheiden sich beide Fehler auch in der "description" oder in der "number". Das müsstest du aber selbst prüfen oder die beiden Fehlermeldungen hier posten...

    EDIT:

    Hier im übrigen noch einige weitere Eigenschaften die du abfragen könntest um beide Fehler besser zu unterscheiden:

    Zitat


    Eigenschaften des AutoIt-Error-Objekts:

    Code
    .number 	Der Windows-HRESULT-Wert eines COM-Aufrufes
    .windescription Der FormatWinError()-Text, der von .number abgeleitet wurde
    .source 	Name des Objekts, das den Fehler erzeugt hat (Inhalt von ExcepInfo.source)
    .description 	Fehlerbeschreibung des Quellobjekts (Inhalt von ExcepInfo.description)
    .helpfile 	Fehler-Hilfedatei des Quellobjekts (Inhalt von ExcepInfo.helpfile)
    .helpcontext 	Hilfedatei-Kontext-ID des Quellobjekts (Inhalt von ExcepInfo.helpcontext)
    .lastdllerror 	Die von GetLastError() gelieferte Nummer
    .scriptline 	Die Skriptzeile, in der der Fehler generiert wurde
  • Active Directory Loginscript mit Benutzer- und Passwortabfrage

    • misterspeed
    • 27. Dezember 2013 um 10:00

    1. Bitte verwende zukünftig Autoitcode Tags um Autoit Quellcode im Forum zu posten, dann sieht man auch auf den ersten Blick ob dein Code syntaktisch korrekt ist, was er schonmal nicht ist:

    [autoit]

    #include <AD.au3>

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

    $login=InputBox ("Benutzername", "Bitte Benutzername eingeben")
    $passwd=InputBox("Passwort", "Bitte Passwort eingeben", "","*")

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

    _AD_Open("Servername\$login", "$passwd", "", "")
    $HomeDirectory = _AD_GetObjectAttribute(@Username, "HomeDirectory")
    DriveMapAdd("H:",\\Server-IP\$HomeDirectory)
    _AD_Close()

    [/autoit]

    2. Hier die syntaktisch korrigierte Fassung:

    [autoit]

    #include <AD.au3>

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

    $login=InputBox ("Benutzername", "Bitte Benutzername eingeben")
    $passwd=InputBox("Passwort", "Bitte Passwort eingeben", "","*")

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

    _AD_Open('Servername\' & $login, $passwd, "", "")
    $HomeDirectory = _AD_GetObjectAttribute(@Username, "HomeDirectory") ; warum fragst du oben den Benutzername ab, wenn du dann erst den Windows Anmeldename (@Username) verwendest?
    DriveMapAdd("H:",'\\Server-IP\' & $HomeDirectory)
    _AD_Close()

    [/autoit]

    3. Bitte zukünftig immer die komplette Fehlermeldung aus der Scite Console posten.

    4. Ob du die AD.au3 richtig anwendest kann ich dir nicht sagen, da ich diese noch nie genutzt habe. Aber das mindeste was du tun könntest wäre ein Downloadlink zur AD UDF zu posten oder besser diese gleich als Dateianhang zur Verfügung zu stellen.

  • GUI mit Multiple Choice Auswahl

    • misterspeed
    • 25. Dezember 2013 um 20:12

    Für Mehrfachauswahl verwendet man normalerweise eines der beiden controls:

    [autoit]


    guictrlcreatecheckbox
    guictrlcreateradio

    [/autoit]

    Beispiele siehe Hilfe.

  • Autoit3Wrapper

    • misterspeed
    • 25. Dezember 2013 um 11:14
    Zitat von Alina

    wollt ihr mich beide veräpfeln oder was?
    ich kann doch nicht alles lesen, nur weil es schwarz auf weissssssss ist. X(


    Die Ausrede hätte ich zählen lassen wenn hier alles weissssssss auf weissssss wäre. :D

  • Ausführung eines Mausklicks

    • misterspeed
    • 25. Dezember 2013 um 10:57

    Für

    [autoit]

    MouseClick

    [/autoit]

    benötigt man keine Adminrechte, ein #RequireAdmin am Scriptanfang würde also rein gernichts bewirken, keine Ahnung wie derjenige im anderen Thread auf diese Idee gekommen sein mag.

    Wie dem auch sei.. mouseclick() und send() sind dafür bekannt, dass sie äusserst unzuverlässig arbeiten. Ich würde mir daher an deiner Stelle eher die control Funktionen (z.B. controlclick(), controlsend(), ...) genauer ansehen oder sofern möglich direktere Automatisierung verwenden.

    Was soll denn mit dem Mausklick automatisiert werden? Soll ein Programm oder eine Datei im Standardprogramm geöffnet werden? Wenn ja verwende stattdessen run() oder shellexecute(). Soll eine Webseite automatisiert werden? Wenn ja verwende die Funktionen der IE.au3 für den Internetexplorer, schau dir die FF.au3 für Firefox an oder beschäftige dich näher mit winhttp. Soll ein Programm oder Setup automatisiert werden? Wenn ja schau dir wie oben erwähnt die control Funktionen und das Tool au3info im Scite Editor an.

  • Vertikale Zentrierung bei Input controls

    • misterspeed
    • 24. Dezember 2013 um 14:05

    Prinzipiell nichts dagegen ein Label zu verwenden, mach ich ja bereits als Button Ersatz. Aber wie bekomm ich ein editierbares Label hin?

  • Internetadresse, Email und Zahl aus EINEM String abfragen?!?

    • misterspeed
    • 24. Dezember 2013 um 10:05
    Zitat von GtaSpider

    Folgende Mail Adresse ist aber korrekt: "gta spider"@gmx.de - ob mans glaubt oder nicht ;)

    Ok, das war mir so nicht klar. Ich bin davon ausgegangen, dass im ersten Teil der Adresse Anführungszeichen genauso verboten sind wie @-Zeichen und Leerzeichen, aber so kann man sich irren.

    Hier der Vollständigkeithalber ein Auszug aus wikipedia zum Lokalteil, also alles vor dem @-Zeichen:

    Zitat


    Der Lokalteil muss eine bezüglich „domain“ eindeutige Zeichenkette sein. Diese Zeichenkette darf nach RFC 5322 nur Buchstaben und Zahlen sowie bestimmte weitere Zeichen enthalten: A-Za-z0-9.!#$%&'*+-/=?^_`{|}~. Andere Zeichen, wie zum Beispiel Leerzeichen, können benutzt werden, wenn local part in doppelte Anführungsstriche eingeschlossen wird oder das Zeichen durch einen umgekehrten Schrägstrich (\) maskiert ist ( z. B. ", @, :, ; ). Kommentare können innerhalb von runden Klammern ebenfalls eingefügt werden. Alle Zeichen oberhalb des ASCII-Codes 127, also auch Umlaute, sind generell verboten. Am Anfang und Ende der Zeichenkette darf sich kein Punkt befinden.

    Demnach können sogar maskierte @-Zeichen vor dem eigentlichen @ vorkommen... :rolleyes:

  • Internetadresse, Email und Zahl aus EINEM String abfragen?!?

    • misterspeed
    • 23. Dezember 2013 um 20:27

    Ich würde mal sagen das ist am einfachsten mit regulären Ausdrücken also

    [autoit]

    stringregexp

    [/autoit]


    realisierbar.

    So kannst du recht gut Regeln definieren welche Zeichenfolgen für welchen Typ an Daten in Frage kommen.

    Eine Email Adresse ist z.B. immer so aufgebaut:

    x-beliebige Zeichen + @ + n * (x-beliebige Zeichen + ".") + x-beliebige Zeichen
    wobei x-beliebige Zeichen insofern eingeschränkt ist, dass Leerzeichen (und einige andere Zeichen wie z.B. das @ Zeichen) nicht darin vorkommen dürfen. Ich bin was Reguläre Ausdrücke angeht aber leider auch nicht fit. Es dürfte aber nicht besonders schwer sein ein auf obige Beschreibung passendes Pattern zu entwerfen.


    Das selbe kann man auf Internetadressen anwenden. Auch hier gibt es Regeln wie diese aufgebaut sein müssen/dürfen, welche man in regüläre Ausdrücke umsetzen kann.

    Bei der Telefonnummer (sofern die Zahl eine solche sein sollte) wird es nicht ganz so eindeutig, da es verschiedenste erlaubte Schreibweisen gibt, z.B. mit oder ohne Ländervorwahl, getrennt mit Leerzeichen, Bindestrichen oder Schrägstrichen usw. Aber auch das ist realisierbar.


    Du brauchst also nur einen RegExp Profi oder musst dich selbst damit auseinandersetzen. Das ganze nur mit den Stringfunktionen zu lösen wäre jedenfalls ziemlich aufwendig.

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™