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

Beiträge von ytwinky

  • .exe Datei in Script zum Autostart Ordner hinzufügen

    • ytwinky
    • 31. März 2011 um 17:34

    WENN du auf %SystemDrive% eine AutoExec.Bat hast UND die Ausführung dieser Datei NCHT UNTERDRÜCKT ist, könntest du mal mit einem normalen TextEditor in eben diese AutoExec.Bat die
    Zeile Set AutoExec=ausgeführt einfügen, dann die Batch-Datei speichern und den Rechner neustarten..
    Bei mir (z.Z. XP Home SP3) funktioniert das: Set zeigt an AutoExec=ausgeführt..
    Inwieweit sich auch Programmaufrufe hier einbauen lassen, kannste ja ausprobieren.
    Wenn Programmaufrufe nicht funktionieren sollten, kannste ja in der AutoExec.Bat ein Flag setzen,
    das von anderen Programmen abgefragt wird oder ähnlich oder wie auch immer..
    Gruß
    ytwinky

  • Wechselt/Updatet ihr euren Browser?

    • ytwinky
    • 24. März 2011 um 21:27

    Hi,
    ich halte FF die Treue und bin auf 4.0 umgestiegen, bei mir läuft er problemlos(bei den Betas hatte ich Probleme).
    Wenn der Fuchs aber Zicken macht(oder die aufgerufene Web-Site[z.B. googlemail] nehme ich aber
    Opera, der mein Haupt-Browser werden könnte, wenn er so etwas wie AdBlockPlus hätte ^^
    Wenn ich offline bin benutze ich jedoch den SlimBrowser, weil er Tabs hat und WerbeBlocker(!!), aber nicht so nervig ist, wie IE8
    Gruß
    ytwinky

  • ShellSort-Demo

    • ytwinky
    • 24. Februar 2011 um 21:47

    Hi,
    ich habe in meinem Script-Fundus mal gewühlt(ja, es hat sich einiges angesammelt in den Jahren..) und ein Beispiel für den ShellSort ausgewählt. Vorteil dieses Verfahrens ist, daß es nicht rekursiv arbeitet und(was noch wichtiger ist) es benötigt kein zusätzliches Array. Es kann aufwärts und abwärts sortieren, auch Arrays mit mehreren Spalten, aber seht selbst:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include "constants.au3"
    #include <GUIConstants.au3>
    #include <EditConstants.au3>
    ;<AutoItScript>
    Opt("MustDeclareVars", 1) ;0=ohne, 1=erfordert Variablen-Deklaration
    ;+----------------------------------------------------------------------------+
    ;| Header: Bestimmen der Übergabeparameter |
    ;| ( Alles Strings(!!!), bis auf ArgC ) |
    ;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
    Const $Autor='ShellSort.au3 ©2008 by ytwinky, MD'; |
    ;| EMail: [email='PIII1kSystem-AutoIt3Forum@yahoo.de'][/email] |
    ;| AutoIt3-Version: aktuelle beta |
    ;| Editor: SciTE aktuelle Version, feste Schriftart |
    ;| Zweck : Schablone für den Anfang, nach Bedarf anpassen |
    ;| Tab auf 2 setzen wg. Lesbarkeit |
    ;+----------------------------------------------------------------------------+

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

    #include <misc.au3>
    Const $MaxZeile=15, $MaxSpalte=4, $runter=True
    Dim $z, $s, $NachSpalte, $a[$MaxZeile][$MaxSpalte];=[1,11,17,22,37,33,40,42,45,48,56,80,75,95,100]
    For $z=0 To $MaxZeile-1
    For $s=0 To $MaxSpalte-1
    $a[$z][$s]=Random(1, 100, 1)
    Next
    Next
    Do
    $NachSpalte=InputBox('Spalten-Nr. eingeben..', 'unten die Spalten-Nr. eintragen, nach der sortiert werden soll', 0)
    Until $NachSpalte>=0 And $NachSpalte<=$MaxSpalte
    MsgBox(0, "Unsortiert", MkStr($a))
    ShellSort($a, 0, $MaxZeile-1, $NachSpalte)
    MsgBox(0, "Sortiert(größer)", 'Nach Spalte ' &$NachSpalte &@Lf &MkStr($a, 1))
    ShellSort($a, 0, $MaxZeile-1, $NachSpalte, $runter)
    MsgBox(0, "Sortiert(kleiner)", 'Nach Spalte ' &$NachSpalte &@Lf &MkStr($a, 1))

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

    Func ShellSort(byRef $a, $aLo, $aHi, $Which, $kleiner=0) ; Sortierrichtung umkehren, wenn<>0
    If IsArray($a) Then ;sortieren geht nur, wenn $a ein Array ist, sonst wird nix geändert..
    ;nach SortDemo.Bas für QBasic 2.0
    ;Der m$-Shell-Sort funzt mit übergebenen Dimensionen ;-))
    Local $i=$aHi-$aLo+1, $li=0, $sw=0, $ig=0, $ik=0, $t, $d
    Local $Abstand=Int($i/2) ;Setze den Vergleichsabstand auf die Hälfte der Elemente in A(), schöner wäre $i\2..
    While $Abstand>0 ;Schleife bis Abstand=0 ist
    $d=-$Abstand
    If $kleiner Then $d=0
    $li=$aHi-$Abstand
    Do
    $sw=$aLo ;Erstma keinen Tausch annehmen
    For $i=$aLo To $li ;Vergleiche Elemente und tausche die Unsortierten..
    $ig=$i+($kleiner<>0)*$Abstand
    $ik=$i+$Abstand*($kleiner=0) ;Berechnung nur EINMAL(pro Durchlauf) ausführen..
    If $a[$ig][$Which]>$a[$ik][$Which] Then ;hier ändern bei mehrdimensionalen Arrays, sonst nirgends..
    SwapLn($a, $ig, $ik)
    $sw=$ig ;Schalter setzen
    EndIf
    Next
    $li=$sw-$Abstand ;Sortiere beim nächsten Mal nur bis zum letzten Tausch
    Until $sw=$aLo
    $Abstand=Int($Abstand/2) ;Kein Tausch beim letzten Mal: Abstand halbieren..
    Wend
    EndIf
    EndFunc ; Vorteil:Keine Rekursion, auch keine Extra-Funktion, kein Extra-Array, kann im Prinzip so eingebaut werden..

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

    Func SwapLn(byRef $a, $g, $k) ;Zeilen vertauschen..
    Local $i, $t
    For $i=0 To $MaxSpalte-1
    $t=$a[$g][$i]
    $a[$g][$i]=$a[$k][$i]
    $a[$k][$i]=$t
    Next
    EndFunc

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

    Func MkStr($a, $TestIt=0) ;es ist einfacher eine eigene Funktion zu benutzen..
    Local $i, $s='$a ist kein Array..', $j
    If IsArray($a) Then
    $s=""
    For $i=0 To $MaxZeile-1
    If $i<10 Then $s&='0'
    $s&=StringFormat('%u: ', $i)
    For $j=0 To $MaxSpalte-1
    $s&=StringFormat('%4u ', $a[$i][$j])
    Next
    $s&=@Lf
    Next
    EndIf
    Return $s
    EndFunc

    [/autoit]


    Viel Spaß beim ShellSortieren
    Gruß
    ytwinky

  • GOTO Befehl ... Warum Böse?

    • ytwinky
    • 24. Februar 2011 um 16:20

    Hi,
      peethebee : schönen Dank für die Blumen ;)
    Ich MUSS zum Thema GOTO einfach was sagen: Schließlich kann ich den Befehl nicht leiden!^^
    Sicherlich mag es Situationen geben, in denen der GOTO-Befehl hilfreich ist..
    Vielfach haben Programmierer aber einfach keine Lust, darüber nachzudenken, wie er sich vermeiden läßt! Wer sich (außer peethebee) noch an mich erinnern kann, weiß, daß ich auch aktiver FreeBasic'er bin. Doch auch dort ist GOTO verpönt und kann mit den sprachlichen Mitteln vermieden werden.
    Gerade in größeren Programmen verliert nicht nur der Programmierer schon mal die Übersicht, von denen, die ihm helfen sollen, sein Programm lauffähig zu bekommen mal ganz zu schweigen..
    GOTO war (und ist) eine Hilfskonstruktion in Sprachen, denen andere Möglichkeiten fehl(t)en, einzelne Programm-Module ordentlich einzukapseln(in Funktionen, Schleifen, wie auch immer).
    Für mich war es eine Erholung, in den FAQs zu Autoit zu lesen, daß es keinen GOTO-Befehl gibt.
    Und so sollte es auch bleiben!
    Selbst wenn es irgendwann ein GOTO in AutoIt geben sollte, kann mich niemand zwingen, das zu benutzen..
    Gruß
    ytwinky

  • Rekursive Programmierung sinnvoll? Wann und warum?

    • ytwinky
    • 23. Februar 2011 um 18:57

    Hi,
    Wie stayawayknight schon erwähnte ist die Berechnung der Fakultät ein klassisches Beispiel für die Anwendung der rekursiven Programmierweise. Ein anderes Beispiel
    hier für ist der QuickSort-Algorhitmus, der ja bekanntlich (auch nach meinen Feststellungen^^) der schnellste ist. Er 'belastet' zwar den Stack 'ziemlich', das sollte bei modernen Rechnern aber kein Hindernis sein. Wer mag, kann ja mal probieren, den QuickSort traditionell programmieren. Es wird sicherlich nicht schneller werden. Wer jedoch mit der rekursiven Programmierung Programmierung Mühe hat, kann im Bereich Sortierung z.B. auf den ShellSort zurückgreifen, der auch 'ziemlich schnell ist.
    Es läßt sich aber auch so betrachten: Manch einer mag lieber For..Next-Schleifen, während andere eine Do..Until-Schleife oder While..Wend bevorzugen.
    Es kommt eben ganz auf den Programmierer an und natürlich auf seine Art zu programmieren: This is a free language, program as you want..
    Gruß
    ytwinky

  • Silvester

    • ytwinky
    • 31. Dezember 2010 um 22:23

    Ich wünsche dem AutoIt-Forum ebenfalls einen guten Rutsch ins neue Jahrzehnt xD
    Bis nächstes Jahr denn
    Gruß
    ytwinky

  • Mal wieder ein kleines Logigproblem

    • ytwinky
    • 9. Dezember 2010 um 16:33

    Ich bin noch viel fauler, ich habe ein Standardskript für neue Programme

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <Constants.au3>;Hier sind $IDYes usw. deklariert..
    ;<AutoItScript>
    Opt('MustDeclareVars', 1) ;0=ohne, 1=erfordert Variablen-Deklaration
    Const $ScriptType='GUI' ; Steht hier Console oder nur c erkennt Msg() daß es ein CUI.Programm ist..
    ;+----------------------------------------------------------------------------+
    ;| Header: Bestimmen der Übergabeparameter |
    ;| ( Alles Strings(!!!), bis auf $ArgC ) |
    ;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
    Const $Autor='_neu.au3 ©2010 by ytwinky, MD'; |
    ;| EMail: [email='PIII1kSystem-AutoIt3Forum@yahoo.de'][/email] |
    ;| AutoIt3-Version: 3.3.6.1, Beta: -.-.-.- |
    ;| Editor: SciTE 1.79d, feste Schriftart |
    ;| Zweck : Schablone für den Anfang, nach Bedarf anpassen |
    ;| Tab auf 2 setzen wg. Lesbarkeit |
    ;+----------------------------------------------------------------------------+
    Const $ArgC=$CmdLine[0]
    Global $s='Das ist doch nur eine Schablone..'
    Msg($s)

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

    ;<AutoItFunctions>

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

    Func Msg($What, $Title=$Autor, $Icons=0, $ErrLevel=0)
    Local $RetWert
    Switch StringLower($ScriptType)
    Case 'c', 'console', 'cui'
    ConsoleWrite($Title &@CrLf &$What)
    $RetWert=0
    Case Else
    $RetWert=MsgBox($Icons, $Title, $What)
    EndSwitch
    If $ErrLevel Then Exit $ErrLevel
    Return $RetWert
    EndFunc

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

    ;</AutoItScript>

    [/autoit]

    Gruß
    ytwinky

  • Zahlen Kombinationen x= n!/(k!(n-k)!)

    • ytwinky
    • 9. Dezember 2010 um 16:20

    Ist doch auch ganz einfach ^^

    Spoiler anzeigen
    [autoit]

    Func fak($Zahl) ;fakultät berechnen
    Local $d=1.0, $i
    If $Zahl<0 Then Return 'Argument negativ(Zahl=' &$Zahl &'), das ist nicht definiert.'
    For $i=2 To $Zahl
    $d*=$i
    Next
    Return $d
    EndFunc

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

    Func nueberk($n, $k) ;Bartsch, Mathematische Formeln, DDR 1977
    Return fak($n)/(fak($k)*fak($n-$k))
    EndFunc

    [/autoit]

    Edit: Hoffentlich sind jetzt alle FreeBASIC 'Schreibfehler' entfernt..
    Gruß
    ytwinky

  • Zahlen Kombinationen x= n!/(k!(n-k)!)

    • ytwinky
    • 9. Dezember 2010 um 15:47

    Die Ausrufezeichen sind in der Mathematik das Zeichen für Fakultät, z.B.:
    3!=1*2*3
    Also wäre die Formel [1*2*3*..*n]/([1*2*3*..k]*([1*2*3*..[n-k]))
    Üblicherweise wird Fakultät als Funktion benutzt, je nach Geschmack rekursiv oder als Schleife.
    Zu Beachten ist die Fakultät von 0, denn 0!=1
    Achso, ich vergaß: Es werden sehr schnell sehr große Zahlen ermittelt, FreeBASIC kann afair bis 172! und dann ist Sense.
    (49! ist 6,082818640342675608722521633213e+62, mit dem m$ Calc.exe berechnet, da ist es n!..)
    Gruß
    ytwinky

  • Mal wieder ein kleines Logigproblem

    • ytwinky
    • 8. Dezember 2010 um 22:05

    Hi,

    Zitat von m-obi

    Wozu denn extra die Funktion Msg? Da reicht doch ne stinknormale MsgBox aus.

    Msg kann viel mehr als die Msgbox..
    ..z.B. bei Übergabe eines Parameters<>0 das Programm mit eben diesem ErrorLevel beenden :)
    Außerdem reicht ein Msg($s) aus, um Debug-Meldungen auszugeben(Programmierer sind eben faul..)
    Außerdem kann Msg in GUI- sowie in CUI-Programmen benutzt werden und last but not least:
    Es ist meine Lieblings-Ausgabefunktion 8)
    Reicht das?
    Gruß
    ytwinky

  • Mal wieder ein kleines Logigproblem

    • ytwinky
    • 8. Dezember 2010 um 00:29

    Hi,
    versuchs mal so

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <Constants.au3>;Hier sind $IDYes usw. deklariert..
    ;<AutoItScript>
    Opt('MustDeclareVars', 0) ;0=ohne, 1=erfordert Variablen-Deklaration
    Const $ScriptType='GUI' ; Steht hier Console oder nur c erkennt Msg() daß es ein CUI.Programm ist..
    ;+----------------------------------------------------------------------------+
    ;| Header: Bestimmen der Übergabeparameter |
    ;| ( Alles Strings(!!!), bis auf $ArgC ) |
    ;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
    Const $Autor='hhfp.au3 ©2010 by ytwinky, MD'; |
    ;| EMail: [email='PIII1kSystem-AutoIt3Forum@yahoo.de'][/email] |
    ;| AutoIt3-Version: 3.3.6.1, Beta: -.-.-.- |
    ;| Editor: SciTE 1.79d, feste Schriftart |
    ;| Zweck : Schablone für den Anfang, nach Bedarf anpassen |
    ;| Tab auf 2 setzen wg. Lesbarkeit |
    ;+----------------------------------------------------------------------------+
    Const $Bewertung[2]=['bilden ein Dreieck', 'liegen auf einer Geraden']
    Dim $ar=60, $ah=10, $br=10, $bh=10, $cr=35, $ch=35, $p, $q, $h, $hp, $s, $Epsilon=0.001
    ;h=hp=25, p=q=25
    ;Rechnen wir's doch nach..
    $h=HHFP($ar, $ah, $br, $bh, $cr, $ch, $p, $q, $hp)
    $s=StringFormat('ARechts=%7.3f\tAHoch=%7.3f\nBRechts=%7.3f\tBHoch=%7.3f\nCRechts=%7.3f\tCHoch=%7.3f\n', $ar, $ah, $br, $bh, $cr, $ch)
    $s&=StringFormat('h=%7.3f\nh''=%7.3f\np=%7.3f\nq=%7.3f\n', $h, $hp, $p, $q)
    $s&='Die Punkte ' &$Bewertung[$h<$Epsilon] &'..'
    Msg($s)
    ;<AutoItFunctions>

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

    Func HHFP($ARechts, $AHoch, $BRechts, $BHoch, $CRechts, $CHoch, byRef $p, byRef $q, byRef $hp)
    Local $ab=Sqrt(($ARechts-$BRechts)^2+($AHoch-$BHoch)^2), $ac=Sqrt(($ARechts-$CRechts)^2+($AHoch-$CHoch)^2)
    Local $bc=Sqrt(($BRechts-$CRechts)^2+($BHoch-$CHoch)^2)
    $p=($ab*$ab+$bc*$bc-$ac*$ac)/(2*$ab)
    $q=$ab-$p
    $h=Sqrt($bc*$bc-$q*$q)
    $hp=($ac*$ac-$p*$p)/$h ;Berechnung nicht zwingend erforderlich..
    Return $h
    EndFunc

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

    Func Msg($What, $Title=$Autor, $Icons=0, $ErrLevel=0)
    Local $RetWert
    Switch StringLower($ScriptType)
    Case 'c', 'console', 'cui'
    ConsoleWrite($Title &@CrLf &$What)
    $RetWert=0
    Case Else
    $RetWert=MsgBox($Icons, $Title, $What)
    EndSwitch
    If $ErrLevel Then Exit $ErrLevel
    Return $RetWert
    EndFunc

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

    ;</AutoItScript>

    [/autoit]


    Ich habe [m]ein Pascal-Programm nach FreeBASIC portiert und dann nach AutoIt, also sollte es funktionieren..
    Gruß
    ytwinky

  • Internetverbindung trennen

    • ytwinky
    • 7. Dezember 2010 um 21:53

    Hi,
    um zu verhindern, daß Programme ungefragt Verbindung mit dem Internet aufnehmen, reicht es mir, dem Router im LAN eine neue IP zu geben, die im LAN nicht erreicht werden kann..
    Du könntest das Skript natürlich auch so umbauen, daß der Rechner sich aus dem LAN ausklinkt(also eine andere IP erhält), aber ich weiß nicht, ob das so gewollt ist ^^
    Ist ja auch egal, hier ein Skript, das unter XPSP3 funktioniert/funktionieren sollte ;)

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=G:\Grafik\Gateway.ico
    #AutoIt3Wrapper_outfile=D:\Usr\ChgGateway.Exe
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; Erstellt von AutoIt Scriptomatic
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Opt('MustDeclareVars', 0) ;0=ohne, 1=erfordert Variablen-Deklaration
    ;+----------------------------------------------------------------------------+
    ;| Header: Bestimmen der Übergabeparameter |
    ;| ( Alles Strings(!!!), bis auf $ArgC ) |
    ;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
    Const $Autor='ChgGateway.au3 ©2010 by ytwinky, MD'; |
    ;| EMail: [email='PIII1kSystem-AutoIt3Forum@yahoo.de'][/email] |
    ;| AutoIt3-Version: 3.3.0.0 |
    ;| Editor: SciTE 1.78, feste Schriftart |
    ;| Zweck : GatewayIP ändern, um Internetzugriff zu verhindern |
    ;| Tab auf 2 setzen wg. Lesbarkeit |
    ;+----------------------------------------------------------------------------+
    Const $IniName=StringLeft(@ScriptFullPath, StringInstr(@ScriptFullPath, '.', 0, -1)) &'Ini'
    Const $RegKey='HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Always\', $du='Admin'
    Const $red=0xFF0000, $green=0x008000, $yellow=0xEEEE40, $Connected[2]=[$red, $green], $Bedingung=' where index=1'
    Const $wbemFlagReturnImmediately=0x10, $wbemFlagForwardOnly=0x20, $wbemFlags=0x10+0x20, $Checked[2]=[$GUI_UNCHECKED, $GUI_CHECKED]
    Const $strComputer='localhost'
    Const $Class1='Win32_NetworkAdapter', $Class2='Win32_NetworkAdapterConfiguration'
    Global $EachItem, $Items='', $s='', $LANVerbindung, $i, $AnzDNS, $DNSServer, $Wins1, $Wins2, $ChgGateway, $btnPing0, $btnPing1
    Global $s='', $WMISvc, $GatewayIP='', $HostIP='', $lblStatusColor, $IPSubnet, $rbStatus1, $btnQuit, $allowed
    Global $lblHostIP, $lblGatewayIP, $lblConnectionColor, $i, $lblHostIP, $lblGatewayIP, $rbStatus[2], $Gateway[2]
    $Gateway[0]=IniRead($IniName, 'Gateway', 'Aus', '192.168.1.1')
    $Gateway[1]=IniRead($IniName, 'Gateway', 'An' , '192.168.2.1')
    $WMISvc=ObjGet('winmgmts:\\' &$strComputer &'\root\cimv2')
    $Items=$WMISvc.ExecQuery('Select ProductName,MACAddress,NetConnectionID From ' &$Class1 &$Bedingung, 'wql', $wbemFlags)
    If IsObj($Items) Then
    For $EachItem In $Items
    With $EachItem
    $s&='Netzkarte: ' &.ProductName &@CrLf
    $s&='MAC-Adresse: ' &.MACAddress &@CrLf
    $LANVerbindung=.NetConnectionID
    EndWith
    Next
    EndIf
    $Items=$WMISvc.ExecQuery('Select IPSubnet,DefaultIPGateway,DNSServerSearchOrder,WINSPrimaryServer,WINSSecondaryServer From ' &$Class2 &$Bedingung, 'wql', $wbemFlags)
    If IsObj($Items) Then
    For $EachItem In $Items
    With $EachItem
    $IPSubnet=.IPSubnet(0)
    $HostIP=@IPAddress1
    $GatewayIP=.DefaultIPGateway(0)
    $DNSServer=.DNSServerSearchOrder
    $AnzDNS=UBound($DNSServer)
    If $AnzDNS=0 Then $s&='Ooops, KEIN DNS-Server eingetragen..'
    $Wins1=.WINSPrimaryServer
    $Wins2=.WINSSecondaryServer
    EndWith
    Next
    Else
    Msgbox(0, 'WMI-Ausgabe', 'Keine WMI-Objekte gefunden für Klasse: ' &$Class2)
    EndIf
    #Region ### START Koda GUI section ### Form=D:\Sprachen\AutoIt3\Au3\kxf\chggateway.kxf
    $ChgGateway=GUICreate('ChgGateway', 287, 246, 192, 114)
    $main=GUICtrlCreateGroup('', 0, -4, 285, 249)
    GUICtrlSetColor(-1, 0x000000)
    $lblChgGateway=GUICtrlCreateLabel('ChgGateway', 6, 14, 197, 41)
    GUICtrlSetFont(-1, 24, 800, 0, 'Arial')
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetTip(-1, '©2010 by ytwinky, MD')
    $grpStatus=GUICtrlCreateGroup('Status', 230, 4, 49, 51)
    GUICtrlSetFont(-1, 8, 400, 0, 'Arial')
    $lblStatusColor=GUICtrlCreateLabel('n', 239, 19, 34, 34)
    GUICtrlSetFont(-1, 22, 800, 0, 'Webdings')
    GUICtrlSetColor(-1, $yellow)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    $lblHost=GUICtrlCreateLabel('Host', 6, 70, 32, 20)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    GUICtrlSetTip(-1, 'Subnet-Mask=')
    $efHostIP=GUICtrlCreateInput($HostIP, 110, 70, 121, 24, BitOR($ES_AUTOHSCROLL, $ES_READONLY), 0)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $lblPingH0=GUICtrlCreateLabel('', 235, 69, 11, 21)
    GUICtrlSetTip(-1, '127.0.0.1')
    $lblPingH1=GUICtrlCreateLabel('', 247, 69, 11, 21)
    GUICtrlSetTip(-1, 'localhost')
    $lblPingH2=GUICtrlCreateLabel('', 259, 69, 11, 21)
    GUICtrlSetTip(-1, 'HostIP')
    $lblPingH3=GUICtrlCreateLabel('', 270, 69, 12, 21)
    GUICtrlSetTip(-1, 'HostName')
    $lblGateway=GUICtrlCreateLabel('Gateway', 6, 92, 57, 20)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    GUICtrlSetTip(-1, 'Subnet-Mask=')
    $efGWIP=GUICtrlCreateInput($GatewayIP, 110, 92, 121, 24, BitOR($ES_AUTOHSCROLL, $ES_READONLY), 0)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $lblPingGW=GUICtrlCreateLabel('', 235, 91, 15, 21)
    $btnPingGW=GUICtrlCreateButton('Ping', 248, 89, 32, 21, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')

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

    $lblDNSServer0=GUICtrlCreateLabel('DNS-Server1', 6, 116, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $efDNS0=GUICtrlCreateInput($DNSServer[0], 110, 116, 121, 24, BitOR($ES_AUTOHSCROLL, $ES_READONLY), 0)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $lblPingDNS0=GUICtrlCreateLabel('', 235, 115, 15, 21)
    $btnPing0=GUICtrlCreateButton('Ping', 248, 112, 32, 21, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')

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

    $lblDNSServer1=GUICtrlCreateLabel('DNS-Server2', 6, 138, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $efDNS1=GUICtrlCreateInput($DNSServer[1], 110, 138, 121, 24, BitOR($ES_AUTOHSCROLL, $ES_READONLY), 0)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $lblPingDNS1=GUICtrlCreateLabel('', 235, 137, 15, 17)
    $btnPing1=GUICtrlCreateButton('Ping', 248, 135, 32, 21, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')

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

    $lblWinsServer1=GUICtrlCreateLabel('WINS primär', 6, 162, 80, 20)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    If $Wins1='' Then GUICtrlSetState(-1, $GUI_Disable)
    $efWins1=GUICtrlCreateInput($Wins1, 110, 162, 121, 24, BitOR($ES_AUTOHSCROLL, $ES_READONLY), 0)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $lblPingWins1=GUICtrlCreateLabel('', 235, 161, 15, 21)

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

    $lblWinsServer2=GUICtrlCreateLabel('WINS sekundär', 6, 184, 98, 20)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    If $Wins2='' Then GUICtrlSetState(-1, $GUI_Disable)
    $efWins2=GUICtrlCreateInput($Wins1, 110, 184, 121, 24, BitOR($ES_AUTOHSCROLL, $ES_READONLY), 0)
    GUICtrlSetFont(-1, 10, 400, 0, 'MS Sans Serif')
    $lblPingWins2=GUICtrlCreateLabel('', 235, 183, 15, 21)

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

    $grpSetStatus=GUICtrlCreateGroup('Status setzen', 6, 210, 193, 31)
    $rbStatus[0]=GUICtrlCreateRadio('getrennt', 8, 222, 77, 17)
    GUICtrlSetFont(-1, 10, 800, 0, 'MS Sans Serif')
    GUICtrlSetColor(-1, 0xFF0000)
    $rbStatus[1]= GUICtrlCreateRadio('verbunden', 102, 222, 91, 17)
    GUICtrlSetFont(-1, 10, 800, 0, 'MS Sans Serif')
    GUICtrlSetColor(-1, 0x008000)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    $btnQuit=GUICtrlCreateButton('Quit', 204, 216, 75, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, 'MS Sans Serif')
    GUICtrlSetTip(-1, 'fertich..')
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    GUICtrlSetState($btnQuit, $GUI_Focus)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ColorPing(StringLeft($HostIP, 9)=StringLeft($GatewayIP, 9))
    While 1
    $nMsg=GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $btnQuit
    IniWrite($IniName, 'Gateway', 'Aus', $Gateway[0])
    IniWrite($IniName, 'Gateway', 'An' , $Gateway[1])
    Exit
    Case $btnPingGW
    PingColor($GatewayIP, $lblPingGW)
    Case $btnPing0
    PingColor($DNSServer[0], $lblPingDNS0)
    Case $btnPing1
    PingColor($DNSServer[1], $lblPingDNS1)
    Case $rbStatus[0], $rbStatus[1]
    $i=GUICtrlRead($rbStatus[1])=$Checked[1]
    GUICtrlSetState($rbStatus[$i], $Checked[0])
    GUICtrlSetColor($lblStatusColor, $yellow)
    $i=@SystemDir &'\netsh.exe interface ip set address name="' &$LANVerbindung &'" gateway="' &$Gateway[$i] &'" gwmetric=0'
    If IsAdmin() Then
    RunWait($i, '', @SW_Minimize)
    Else
    RunAsWait($du, @ComputerName, RegRead($RegKey &$du, ''), 0, $i, '', @SW_Minimize)
    EndIf
    $Items=$WMISvc.ExecQuery('Select DefaultIPGateway,IPAddress From Win32_NetworkAdapterConfiguration' &$Bedingung, 'wql', $wbemFlags)
    For $EachItem In $Items
    $GatewayIP=$EachItem.DefaultIPGateway(0)
    $HostIP=$EachItem.IPAddress(0)
    ExitLoop
    Next
    GUICtrlSetData($lblHostIP, $HostIP)
    GUICtrlSetData($efGWIP, $GatewayIP)
    ColorPing(StringLeft($HostIP, 9)=StringLeft($GatewayIP, 9))
    EndSwitch
    WEnd

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

    ;<AutoItFunctions>
    Func ColorPing($i)
    GUICtrlSetState($rbStatus[$i], $Checked[1])
    PingColor('127.0.0.1', $lblPingH0)
    PingColor('localhost', $lblPingH1)
    PingColor(@ComputerName, $lblPingH2)
    PingColor(@IPAddress1, $lblPingH3)
    PingColor($GatewayIP, $lblPingGW)
    GUICtrlSetData($lblPingDNS0, '')
    GUICtrlSetData($lblPingDNS1, '')
    If $Wins1<>'' Then PingColor($Wins1, $lblPingWINS1)
    If $Wins2<>'' Then PingColor($Wins2, $lblPingWINS2)
    GUICtrlSetColor($lblStatusColor, $Connected[$i])
    EndFunc

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

    Func PingColor($Host, $Where)
    Local $Char[2]=['r', 'q'], $PingStatus
    $PingStatus=Ping($Host, 1)<>0
    GuiCtrlSetData($Where, $Char[$PingStatus])
    GUICtrlSetFont($Where, 10, 400, 0, 'Webdings')
    GUICtrlSetColor($Where, $Connected[$PingStatus])
    EndFunc
    ;</AutoItScript>

    [/autoit]


    Wenn es dir hilft, bau es für deine Zwecke doch einfach um..
    Ach so, ich vergaß: vergiß CMD :rofl:
    Lies dir ruhig die Beschreibung zum Befehl NethSh.Exe durch, denn damit funktioniert das Ganze..
    ..bei mir zumindest prima ;)
    Das ist aber auch kein Wunder, da ich statische IPs verwende.
    Gruß
    ytwinky

  • Mal wieder ein kleines Logigproblem

    • ytwinky
    • 6. Dezember 2010 um 19:40

    Hi,
    Milla hat geschrieben:

    Zitat von Milla

    du hast mit allen 3 punkten 3 seiten eines rechtwinkligen dreiecks und du suchst die Höhe auf c

    ..das ist im Prinzip richtig, aber drei Punkte in einer Ebene legen ein allgemeines Dreieck fest.
    (Deshalb ist es auch richtig, den Cosinus-Satz zu benutzen..)
    Im Spezialfall des allgemeinen Dreiecks(und das ist ein rechtwinkliges Dreieck) gilt der aber auch^^
    Siehe auch hier..
    Gruß
    ytwinky

  • Hardware auslesen

    • ytwinky
    • 3. Dezember 2010 um 11:38

    scriptomatic sollte in einer deutschen Version hier im Forum vorhanden sein(schließlich habe ich es selber übersetzt^^).Deshalb weiß ich auch ganz genau, das es unter XPSP3 OHNE FEHLER läuft.
    Wie wär's, wenn du mal mitteiltest, was du für eine Ausstattung hast und erst recht, in was für einen Fehler 'Das Script läuft'..
    <Edit>
    Für den Fall, daß du es auch nicht finden solltest:
    http://ytwinky.freebasic-portal.de/andere/scriptomaticger.au3
    </Edit>
    Gruß
    ytwinky

  • Button Farbe wieder auf Standard zurücksetzen

    • ytwinky
    • 17. November 2010 um 18:37

    Hi,
    versuchs mal mit dem FarbCode 0xD4D0C8
    Gruß
    ytwinky

  • windows schnellzugriff

    • ytwinky
    • 17. November 2010 um 18:15

    Hi,
    sieh dir mal Systemprogramme 1.2 von Dirk Paehl an:
    http://www.dpaehl.de/
    Nicht, weil es schon fertig ist, sondern weil es mit AutoIt leicht nachzubauen ist.
    (Verbesserungswürdig ist die Belegung der Buttons mit eigenen Funktionen..)
    Vom Gerüst her dürfte es deinen Anforderungen genügen
    Gruß
    ytwinky

  • Was ist die beste Programmiersprache

    • ytwinky
    • 17. November 2010 um 17:59

    Hi,
    eine sehr gute Sprache, um Programmieren zu lernen ist (Turbo-)Pascal..
    Wer etwas auf sich hält, kommt um FORTRAN nicht herum ;-))
    BASIC ist tatsächlich eine veraltete Programmiersprache, wenn es um GWBasic, QBasic4.5, PDS7 etc. geht..
    Mit Basic sind jedoch auch sehr moderne Sachen möglich, wenn es sich um FreeBASIC handelt!
    Meine Programme sind dafür zwar nicht die besten Beispiele. Ich verweise trotzdem mal auf meine Seite: http://ytwinky.freebasic-portal.de
    (..allein schon wegen der Links zu FreeBASIC ^^). FreeBASIC ist auf dem Weg objektorientiert zu werden!
    Im Klartext: FreeBASIC befindet sich noch in der Entwicklung, also wie AutoIt ^^
    Meine Prioritäten sind:
    AutoIt, wenn es um GUI oder Windows-Programmierung geht
    FreeBASIC, wenn es um Konsolen-Programme geht
    "Eine Programmiersprache lernt man am besten, wenn man Programme damit schreibt" (frei nach Kernighan und Ritchie, aus: Programmieren in C)
    Beachte: Es gibt auch Programmiersprachen, die bevorzugt zweckgebunden benutzt werden, z.B:
    COBOL bei Banken(war zumindest mal so)
    FORTRAN für wissenschaftliche Zwecke( war auch mal so, mit den neuen Versionen kenne ich mich nicht aus)
    Deshalb macht es imho wenig Sinn nach DER BESTEN Programmiersprache zu suchen..
    ..manch einer ist bestimmt mit Turtle-Basic zufrieden :rofl:
    Gruß
    ytwinky

  • Sqrt - Wurzel ohne Längenbegrenzung ziehen

    • ytwinky
    • 8. November 2010 um 20:52

    Hi,
    mit der BigNum.au3 habe ich noch keine Experimente gemacht, aber das ist ein guter Tipp, thx
    Dafür habe ich ihn gleich mal in das Skript eingebaut, da lassen sich die Änderungen dann sehen:

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #include <Constants.au3>;Hier sind $IDYes usw. deklariert..
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include 'BigNum.au3'

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

    ;<AutoItScript>
    Opt('MustDeclareVars', 0) ;0=ohne, 1=erfordert Variablen-Deklaration
    Const $ScriptType='GUI' ; Steht hier Console oder nur c erkennt Msg() daß es ein CUI.Programm ist..
    ;+----------------------------------------------------------------------------+
    ;| Header: Bestimmen der Übergabeparameter |
    ;| ( Alles Strings(!!!), bis auf $ArgC ) |
    ;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
    Const $Autor='Sqrt-Näherung.au3 ©2010 by ytwinky, MD'; |
    ;| EMail: [email='PIII1kSystem-AutoIt3Forum@yahoo.de'][/email] |
    ;| AutoIt3-Version: 3.3.6.1, Beta: -.-.-.- |
    ;| Editor: SciTE 1.79d, feste Schriftart |
    ;| Zweck : Schablone für den Anfang, nach Bedarf anpassen |
    ;| Tab auf 2 setzen wg. Lesbarkeit |
    ;+----------------------------------------------------------------------------+
    #Region ### START Koda GUI section ### Form=D:\Sprachen\AutoIt3\Au3\kxf\WurzelBerechnung.kxf
    $WurzelBerechnung = GUICreate("WurzelBerechnung", 370, 195, 302, 218)
    $grpMain = GUICtrlCreateGroup("", 0, 0, 369, 193)
    $efRadikand = GUICtrlCreateInput("", 10, 76, 121, 21)
    $efSchritte = GUICtrlCreateInput("", 154, 76, 53, 21)
    $Label1 = GUICtrlCreateLabel("Radikand eintragen", 12, 58, 115, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetTip(-1, "das ist die Zahl deren Wurzel berechnet werden soll")
    $Label2 = GUICtrlCreateLabel("Wurzel-Berechnung mit BigNum", 8, 16, 359, 33)
    GUICtrlSetFont(-1, 17, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetTip(-1, "©2010 by ytwinky, MD")
    $Label3 = GUICtrlCreateLabel("Schritte", 154, 58, 48, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Wurzel(Sqrt)", 8, 102, 74, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $efWurzel = GUICtrlCreateInput("", 4, 120, 361, 21)
    $btnQuit = GUICtrlCreateButton("Quit", 290, 164, 75, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $efSqrt = GUICtrlCreateInput("", 6, 141, 361, 21, $ES_READONLY, 0)
    $btnCompute = GUICtrlCreateButton("Berechnen", 4, 164, 75, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1

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

    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $btnQuit
    Exit
    Case $efSchritte
    GuiCtrlSetData($efWurzel, '')
    GuiCtrlSetData($efSqrt, '')
    Case $efRadikand
    GuiCtrlSetData($efWurzel, '')
    GuiCtrlSetData($efSqrt, '')
    Case $btnCompute
    $r=GuiCtrlRead($efRadikand)
    $s=GuiCtrlRead($efSchritte)
    If $r=0 Then
    GuiCtrlSetData($efWurzel, '0')
    GuiCtrlSetData($efSqrt, '0')
    Else
    GuiCtrlSetData($efSqrt, Sqrt($r))
    GuiCtrlSetData($efWurzel, Wurzel($r, $s))
    EndIf
    EndSwitch
    WEnd
    ;<AutoItFunctions>

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

    Func Msg($What, $Title=$Autor, $Icons=0, $ErrLevel=0)
    Local $RetWert
    Switch StringLower($ScriptType)
    Case 'c', 'console', 'cui'
    ConsoleWrite($Title &@CrLf &$What)
    $RetWert=0
    Case Else
    $RetWert=MsgBox($Icons, $Title, $What)
    EndSwitch
    If $ErrLevel Then Exit $ErrLevel
    Return $RetWert
    EndFunc

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

    Func Wurzel($Radikand, $Schritte)
    Return _BigNum_SQRT($Radikand, $Schritte)
    EndFunc
    ;~ x_0 = 2
    ;~ x_1 = (2+(x_0)^2)/(2*(x_0)) = 3/2
    ;~ x_2 = (2+(x_1)^2)/(2*(x_1)) = 17/12
    ;~ x_3 = (2+(x_2)^2)/(2*(x_2)) = 577/408
    ;~ x_4 = (2+(x_3)^2)/(2*(x_3)) = 1.414213562
    ;das war ein 'Algorithmus' aus dem Netz..
    ;</AutoItScript>

    [/autoit]


    Sorry, jetzt habe ich vergessen, wie ein Spoiler gesetzt wird..
    (vllt. könnte einer von den Mods mal, thx..)
    Gruß
    ytwinky

    Edit Oscar: Spoiler gesetzt.
    Danke, Oscar
    so ähnlich hatte ich das auch gemacht, allerdings war[/spoiler] in einer Extra-Zeile

  • Sqrt - Wurzel ohne Längenbegrenzung ziehen

    • ytwinky
    • 8. November 2010 um 17:44

    Ich habe inzwischen gesehen, was du meinst.
    Die Anmerkungen habe ich aber oben eingefügt..
    Gruß
    ytwinky

  • Sqrt - Wurzel ohne Längenbegrenzung ziehen

    • ytwinky
    • 8. November 2010 um 17:25

    Hi,
    AutoIt HAT eine Wurzel-Funktion ;)
    Versuche es einfach mit der Exponentiation!
    (Eine Wurzel ist nix anderes als Zahl hoch 1/2)

    [autoit]


    ;<AutoItScript>
    $a=4
    $Sqrt=$a^(0.5)
    MsgBox(0, 'Ergebnis', 'Wurzel aus ' &$a &'=' &$Sqrt)
    ;</AutoItScript

    [/autoit]


    Eine 'höhere Genauigkeit' mit AutoIt zu erzielen, wäre nicht sinnvoll, da die Zahl bei Berechnungen auf den AutoIt-Bereich reduziert wird(Das ist in anderen Sprachen aber genauso..)
    Wenn es dir darum geht, den Algorithmus in AutoIt zu schreiben:-->schöne Übungsaufgabe, viel Spaß
    Wenn es dir um das genaue Ergebnis geht: nimm Mathe-Software(ich kenne Derive von ti, das kann Pi auf 2000 und mehr Stellen berechnen. Bei Maxima o.ä. habe ich das noch nicht probiert..)
    Gruß
    ytwinky

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™