Du kannst auch mal die Suche bemühen. Auto-Ersetzen wurde bereits vor Jahren als Bsp.-Skript gepostet.
Beiträge von BugFix
-
-
Hi,
ab und zu braucht man ja ein paar Unicode-Symbole.
Bisher habe ich dann meist Word geöffnet und aus der Symboltabelle rausgesucht.
Hier habe ich mal eine kleine Oberfläche gebastelt mit Symbolbeschreibung und Symbolanzeige für ein paar gängige Symbole. Symbol oder der Codewert läßt sich kopieren.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#Region - TimeStamp
; 2013-01-16 22:47:12 v 0.1
#EndRegion - TimeStamp#include <StaticConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <GuiListBox.au3>Global $aUniCode[101][2] = [ _
[/autoit] [autoit][/autoit] [autoit]
["Kleiner Kreis",8226], _
["Drei Punkte",8230], _
["Hoch-Strich",8242], _
["Hoch-Striche",8243], _
["Pfeil links",8592], _
["Pfeil hoch",8593], _
["Pfeil rechts",8594], _
["Pfeil runter",8595], _
["Pfeil links-rechts",8596], _
["Pfeil runter",8629], _
["Pfeil links",8656], _
["Pfeil hoch",8657], _
["Pfeil rechts",8658], _
["Pfeil runter",8659], _
["Pfeil links-rechts",8660], _
["All-Quantor",8704], _
["Teil-Quantor",8706], _
["Einige-Quantor",8707], _
["Leere Menge",8709], _
["Element von",8712], _
["Nicht Element von",8713], _
["enthält Elemente",8715], _
["Logisches Produkt",8719], _
["Logisches Summe",8721], _
["unendlich",8734], _
["Konjunktor",8743], _
["Adjunktor",8744], _
["Intersektion",8745], _
["Union",8746], _
["Similar",8764], _
["annähernd",8773], _
["asymetrisch",8776], _
["ungleich",8800], _
["identisch",8801], _
["kleiner-gleich",8804], _
["größer-gleich",8805], _
["Teilmenge",8834], _
["Übermenge",8835], _
["Keine Teilmenge",8836], _
["Teil- oder ganze Menge",8838], _
["Über- oder ganze Menge",8839], _
["Geöffnete Klammer",8249], _
["Geschlossene Klammer",8250], _
["alpha",945], _
["beta",946], _
["gamma",947], _
["delta",948], _
["epsilon",949], _
["zeta",950], _
["eta",951], _
["theta",952], _
["iota",953], _
["kappa",954], _
["lambda",955], _
["mu",956], _
["nu",957], _
["xi",958], _
["omicron",959], _
["pi",960], _
["rho",961], _
["final sigma",962], _
["sigma",963], _
["tau",964], _
["upsilon",965], _
["phi",966], _
["chi",967], _
["psi",968], _
["omega",969], _
["alpha (Kapital)",913], _
["beta (Kapital)",914], _
["gamma (Kapital)",915], _
["delta (Kapital)",916], _
["epsilon (Kapital)",917], _
["zeta (Kapital)",918], _
["eta (Kapital)",919], _
["theta (Kapital)",920], _
["iota (Kapital)",921], _
["kappa (Kapital)",922], _
["lambda (Kapital)",923], _
["mu (Kapital)",924], _
["nu (Kapital)",925], _
["xi (Kapital)",926], _
["omicron (Kapital)",927], _
["pi (Kapital)",928], _
["rho (Kapital)",929], _
["sigma (Kapital)",931], _
["tau (Kapital)",932], _
["upsilon (Kapital)",933], _
["phi (Kapital)",934], _
["chi (Kapital)",935], _
["psi (Kapital)",936], _
["omega (Kapital)",937], _
["bullet = black small circle",8226], _
["horizontal ellipsis",8230], _
["prime = minutes = feet",8242], _
["double prime = sec. = inch.",8243], _
["overline = spacing overscore",8254], _
["fraction slash",8260], _
["theta symbol",977], _
["upsilon with hook symb.",978], _
["pi symbol",982]]
Global $GUI, $List, $lbUniCode, $btCopy, $inCode, $index, $sData = ''$GUI = GUICreate("UniCode - Symbole", 345, 400)
[/autoit] [autoit][/autoit] [autoit]
$List = GUICtrlCreateList("", 24, 15, 210, 358, BitOR($WS_BORDER, $WS_VSCROLL))
$lbUniCode = GUICtrlCreateLabel("", 260, 15, 60, 60, BitOR($SS_CENTER,$SS_CENTERIMAGE))
GUICtrlSetFont(-1, 18)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$inCode = GUICtrlCreateInput('', 260, 90, 60, 20, BitOR(0x0001,0x0800)) ; $ES_CENTER, $ES_READONLY
GUICtrlCreateGroup('', 245, 115, 90, 100)
$btCopy = GUICtrlCreateButton('Copy', 260, 130, 60, 20)
$rSymbol = GUICtrlCreateRadio('Symbol', 265, 160, 60)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateRadio('Code', 265, 185, 60)
For $i = 0 To UBound($aUniCode) -1
$sData &= $aUniCode[$i][0] & '|'
Next
GUICtrlSetData($List, StringTrimRight($sData,1))GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
Switch GUIGetMsg()
Case -3
Exit
Case $List
$index = _GUICtrlListBox_GetCurSel($List)
GUICtrlSetData($lbUniCode, ChrW($aUniCode[$index][1]))
GUICtrlSetData($inCode, $aUniCode[$index][1])
Case $btCopy
$index = _GUICtrlListBox_GetCurSel($List)
If $index > -1 Then
If BitAND(GUICtrlRead($rSymbol), $GUI_CHECKED) Then
ClipPut(ChrW($aUniCode[$index][1]))
Else
ClipPut($aUniCode[$index][1])
EndIf
EndIf
EndSwitch
WEnd
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
OMG, ich verfalle wohl in Senilität. :pinch:
Da ist mir doch in den Formatstring ein Leerzeichen mit reingerutscht - das ist dann natürlich falsch, man sieht es bloß in der Ausgabe schlecht.
-
OK, an die 64Bit Geschichte hatte ich nicht gedacht, aber selbst mit: "#AutoIt3Wrapper_UseX64=N" passiert dasselbe.
-
Hi,
nachdem ich hier bald an mir gezweifelt habe, ließ ich mir mal den Error zur Funktion mit ausgeben und war geplättet: "2013/01/16" wäre demnach kein gültiges Datum!
Bitte prüft mal auf euren Systemen, ob derselbe Fehler auftritt.
[autoit]
Verwendete AutoIt Version: 3.3.8.1#include <Date.au3>
[/autoit][autoit][/autoit][autoit]$sDate = StringFormat('%d/%02d/%02d ', @YEAR, @MON, @MDAY)
[/autoit][autoit][/autoit][autoit]
ConsoleWrite('Datum alt: ' & $sDate & @LF)
$sNewDate = _DateAdd('Y', -1, $sDate)
ConsoleWrite('Datum neu: ' & $sNewDate & ' Error: ' & @error & @LF)#cs -- Ausgabe:
[/autoit]
Datum alt: 2013/01/16
Datum neu: 0 Error: 3
#ce -
Da bietest du aber eine sehr mickrige Auswahl an.

Du solltest hinzufügen: Mailserver eures Internet-Providers
Das sind dann wenigstens "echte" EMail-Acc und nicht diese stark beschränkten Freemailer.
Ich mag es nicht, nur wenn ich mal 30..40 MB anhängen will extra auf einen Fileserver zu hosten. Mein Acc erlaubt Anhänge bis 50 MB und das ist OK. In meinem Vertrag sind 100 Mail-Acc enthalten, jeweils 15 GB Onlinespeicher, damit habe ich die gesamte Verwandschaft und Freunde ausgestattet, somit können wir großzügige Datenanhänge untereinander per Mail tauschen.
-
Mal als Tipp zur Gestaltung:
Du brauchst die Button gar nicht. Verwende für Status und Auftrag einfach Comboboxen. Das entspricht hier genau der Anwendungsform - Auswahl aus begrenzter Zahl an Vorgaben.
-
Ist denn das Skript schon als au3-Datei gespeichert? Erst dann funktioniert Syntax-Highlighting.
-
Meinen Nick hatte ich ganz gezielt gesucht.
Kriterien sollten sein:
- markant und leicht zu merken
- möglichst kurz
- mit tieferem Sinn
- nicht allzu häufig in Benutzung
Ja, so bin ich dann bei BugFix gelandet vor ca. 10 Jahren und dabei geblieben.Einige kennen ja auch meinen 2-ten Nick (aber nicht hier im Forum, sondern im restlichen Web) - McBarby.
Auch gezielt ausgewählt:
Mc - bedeutet ja "Sohn/Tochter des.."
und
Barby - das Nest, wo ich wohne.
-
BugFix, du wiederholst nur, was Alcros bereits eingebracht hat.
He, ich bin ein alter Mann, da setzt schon die Demenz ein ...
Aber wenn ihm das nicht ausreicht... nunja, dann soll der TE sich halt die Eierlegende Wollmilchsau stricken.
-
-
Ungetestet:
Erstelle eine zweite Tabelle und definiere die Feldlänge für den Datumseintrag auf 10 Zeichen. Dann die Werte kpl. übertragen. Mit ein bischen Glück werden einfach die jeweils ersten 10 Zeichen (nur Datum) übertragen und der Rest abgeschnitten.
Wie gesagt: ungetestet. -
Wenn du ENTER als solches abfangen möchtest, kannst du auch mit _IsPressed() arbeiten:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>
#include <Misc.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $gui = GUICreate('Test', 300, 170)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, '_end')
Global $Input1 = GUICtrlCreateInput("Input1", 16, 8, 121, 21)
Global $Input2 = GUICtrlCreateInput("Input2", 16, 40, 121, 21)
Global $iIDFocusGUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If _IsPressed('0D') Then
$iIDFocus = _WinAPI_GetDlgCtrlID(_WinAPI_GetFocus())
Switch $iIDFocus
Case $Input1
MsgBox(0, 'ENTER', 'Input1')
Case $Input2
MsgBox(0, 'ENTER', 'Input2')
EndSwitch
EndIf
Sleep(50)
WEndFunc _end()
[/autoit]
Exit
EndFunc -
Da bekanntermaßen AutoIt in dieser Richtung keine Vorschriften macht, ist es aus meiner Sicht in erster Linie wichtig, dass ein Skript eindeutig lesbar ist.
Ob ich ein Control mit $id.. oder $c.. oder auch mit einem Controlbezogenen Kürzel ( $btn.., $cb.., $in.. ) beginne, ist dabei eher nebensächlich.
Aber einen Punkt sehe ich genau, wie bereits diskutiert: Ein $h.. gehört nur vor ein echtes Handle, niemals soll es für eine ID eingesetzt werden. -
Du verwendest mehrere Bilder innerhalb einer Kategorie - legst aber nicht fest, welches davon genutzt werden soll. Mit _ArraySearch(..'Kategorie'..) findest du immer nur das erste Vorkommen, d.h. alle weiteren Bilder werden nie genutzt.
-
Ja, kannst du. Dafür war diese Spalte wahrscheinlich auch von BugFix gedacht.

Stimmt, SpaltenIndex "0" hatte ich als Kategorie angesehen.
-
Viel einfacher mit StringFormat
[autoit]$i = 46
[/autoit]
ConsoleWrite(StringFormat("%03d", $i) & @LF) -
Also ich kann von Bild 1 auf Bild 2 wechseln nur zurück geht noch nicht - (davon steht auch noch nichts im Code)
[autoit]
Du machst es zu kompliziert:Func _draw_images($iDirection) ; == nicht $sDirection sondern $iDirection verwenden ("1" für nächstes oder "-1" für voriges, Start ist bei "0")
[/autoit]
Local $iSex = $MALE
If BitAND(GUICtrlRead($hRadio_female), $GUI_CHECKED) Then $iSex = $FEMALE
Local Static $currIndex = 0 ; == speichert die Position im Array
If ($iDirection = 1 And $currIndex = UBound($aHimages)) Or _
($iDirection = -1 And $currIndex = 0) Then $iDirection = 0
$currIndex += ($iDirection)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $aHimages[$currIndex][$iSex], $aPos[0][0], $aPos[0][1], 96, 96)
EndFunc -
Gestalte dein Array sinnvoller:
[autoit]Global Enum $FEMALE = 1, $MALE
[/autoit][autoit][/autoit][autoit]Global $aHimages[2][3] = [_
[/autoit][autoit][/autoit][autoit]
['neck', _GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\female\neck\1.png"), _GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\male\neck\1.png")], _
['neck', _GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\female\neck\2.png"), _GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\male\neck\2.png")]]; == weibliche Images sind jetzt immer zu finden an $aHimages[n][$FEMALE] und die männlichen Gegenstücke an $aHimages[n][$MALE]
[/autoit][autoit][/autoit][autoit]; == so sieht dann die Draw-Funktion aus:
[/autoit][autoit][/autoit][autoit]
Func _draw_defaults($iSex)
; Local $aSlots[12] = ["neck", "face", "nose", "mouth", "ears", "eyebrows", "beard", "eyes", "tattoo", "kemono", "hair", "glasses"]
For $i = 0 To UBound($aHimages) - 1
_GDIPlus_GraphicsDrawImageRect($hGraphic, $aHimages[$i][$iSex], $aPos[0][0], $aPos[0][1], 96, 96)
Next
EndFunc; == Welchen Sinn sollte diese Abfrage haben?
[/autoit][autoit][/autoit][autoit][/autoit]
If $aHimages[$i][2] = $aSlots[0] Then..
; == ist doch kpl. überflüssig, da du nicht in Abhängigkeit von dem Array-Slots agierst.
[autoit]
Deine Case-Abfrage zu den Radios sollte so aussehen:Case $hRadio_female, $hRadio_male
[/autoit]
If BitAND(GUICtrlRead($hRadio_female), $GUI_CHECKED) Then
_draw_defaults($FEMALE)
Else
_draw_defaults($MALE)
EndIf -
Folgendes:
Die Anwendungen, die einen Zugriff auf die Webcam integriert haben, scheinen sich den Zugang zu "reservieren". So passiert folgendes:
- System frisch gestartet
--- Webcam.au3 aufrufen --> funktioniert tadellos
- Start Skype (ohne die Camfunktion dort zu starten)
--- Webcam.au3 aufrufen --> Cam läßt sich nicht aktivieren
- Skype beenden (kpl. schließen)
--- Webcam.au3 aufrufen --> Cam läßt sich weiterhin nicht aktivieren
- System neu starten
-- allles wie vorabIch habe nicht die geringste Ahnung, wie diese "Reservierung" und somit Blockade der Cam stattfindet und wie man sie umgehen kann. Aber ich vermute, dass nicht die avicap32.dll verwendet wird und somit der Aufruf der Dll ins Leere läuft, da ein Bindung an die Hardware durch die "fremde" Software unterbunden wird.
Fazit:
Die webcam.au3 funktioniert tadellos - bis eine andere Software erstmals Zugriff auf die Cam erlangt hat. Dann ist sie bis zum nächsten Neustart tot. :wacko: