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
Beiträge von ytwinky
-
-
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 -
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
[/autoit] [autoit][/autoit] [autoit]
#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 |
;+----------------------------------------------------------------------------+#include <misc.au3>
[/autoit] [autoit][/autoit] [autoit]
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))Func ShellSort(byRef $a, $aLo, $aHi, $Which, $kleiner=0) ; Sortierrichtung umkehren, wenn<>0
[/autoit] [autoit][/autoit] [autoit]
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..Func SwapLn(byRef $a, $g, $k) ;Zeilen vertauschen..
[/autoit] [autoit][/autoit] [autoit]
Local $i, $t
For $i=0 To $MaxSpalte-1
$t=$a[$g][$i]
$a[$g][$i]=$a[$k][$i]
$a[$k][$i]=$t
Next
EndFuncFunc MkStr($a, $TestIt=0) ;es ist einfacher eine eigene Funktion zu benutzen..
[/autoit]
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
Viel Spaß beim ShellSortieren
Gruß
ytwinky -
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 -
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 -
Ich wünsche dem AutoIt-Forum ebenfalls einen guten Rutsch ins neue Jahrzehnt xD
Bis nächstes Jahr denn
Gruß
ytwinky -
Ich bin noch viel fauler, ich habe ein Standardskript für neue Programme
Spoiler anzeigen
[autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]
#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);<AutoItFunctions>
[/autoit] [autoit][/autoit] [autoit]Func Msg($What, $Title=$Autor, $Icons=0, $ErrLevel=0)
[/autoit] [autoit][/autoit] [autoit]
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;</AutoItScript>
[/autoit]Gruß
ytwinky -
Ist doch auch ganz einfach
Spoiler anzeigen
[autoit]Func fak($Zahl) ;fakultät berechnen
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc nueberk($n, $k) ;Bartsch, Mathematische Formeln, DDR 1977
[/autoit]
Return fak($n)/(fak($k)*fak($n-$k))
EndFuncEdit: Hoffentlich sind jetzt alle FreeBASIC 'Schreibfehler' entfernt..
Gruß
ytwinky -
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 -
Hi,
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
Reicht das?
Gruß
ytwinky -
Hi,
versuchs mal soSpoiler anzeigen
[autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]
#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>Func HHFP($ARechts, $AHoch, $BRechts, $BHoch, $CRechts, $CHoch, byRef $p, byRef $q, byRef $hp)
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc Msg($What, $Title=$Autor, $Icons=0, $ErrLevel=0)
[/autoit] [autoit][/autoit] [autoit]
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;</AutoItScript>
[/autoit]
Ich habe [m]ein Pascal-Programm nach FreeBASIC portiert und dann nach AutoIt, also sollte es funktionieren..
Gruß
ytwinky -
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 sollteSpoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [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')$lblDNSServer0=GUICtrlCreateLabel('DNS-Server1', 6, 116, 84, 20)
[/autoit] [autoit][/autoit] [autoit]
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')$lblDNSServer1=GUICtrlCreateLabel('DNS-Server2', 6, 138, 84, 20)
[/autoit] [autoit][/autoit] [autoit]
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')$lblWinsServer1=GUICtrlCreateLabel('WINS primär', 6, 162, 80, 20)
[/autoit] [autoit][/autoit] [autoit]
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)$lblWinsServer2=GUICtrlCreateLabel('WINS sekundär', 6, 184, 98, 20)
[/autoit] [autoit][/autoit] [autoit]
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)$grpSetStatus=GUICtrlCreateGroup('Status setzen', 6, 210, 193, 31)
[/autoit] [autoit][/autoit] [autoit]
$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;<AutoItFunctions>
[/autoit] [autoit][/autoit] [autoit]
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])
EndFuncFunc PingColor($Host, $Where)
[/autoit]
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>
Wenn es dir hilft, bau es für deine Zwecke doch einfach um..
Ach so, ich vergaß: vergiß CMD
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 -
Hi,
Milla hat geschrieben: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 -
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 -
Hi,
versuchs mal mit dem FarbCode 0xD4D0C8
Gruß
ytwinky -
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 -
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
Gruß
ytwinky -
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]
[/autoit] [autoit][/autoit] [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';<AutoItScript>
[/autoit] [autoit][/autoit] [autoit]
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 ###While 1
[/autoit] [autoit][/autoit] [autoit]Switch GUIGetMsg()
[/autoit] [autoit][/autoit] [autoit]
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>Func Msg($What, $Title=$Autor, $Icons=0, $ErrLevel=0)
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc Wurzel($Radikand, $Schritte)
[/autoit]
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>
Sorry, jetzt habe ich vergessen, wie ein Spoiler gesetzt wird..
(vllt. könnte einer von den Mods mal, thx..)
Gruß
ytwinkyEdit Oscar: Spoiler gesetzt.
Danke, Oscar
so ähnlich hatte ich das auch gemacht, allerdings war[/spoiler] in einer Extra-Zeile -
Ich habe inzwischen gesehen, was du meinst.
Die Anmerkungen habe ich aber oben eingefügt..
Gruß
ytwinky -
Hi,
[autoit]
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
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