Thema wurde in einem anderem Bereich neu erstellt. Bitte löschen, falls ein Moderator vorbei schaut.
Es wäre kein Problem gewesen den Thread zu moven.
Thema wurde in einem anderem Bereich neu erstellt. Bitte löschen, falls ein Moderator vorbei schaut.
Es wäre kein Problem gewesen den Thread zu moven.
Schade, dass bei den Forensoftware - "Upgrades" die Links zu den Threads verloren gehen
Sie gehen ja nicht wirklich verloren, das Pathing ist nur anders.
Nachdem Update hatte Raupi glaube ich versucht das ganze zu fixen aber es ist wohl im Sande verlaufen.
sorry sorry sorry... nach 6 Std. an der Glotze wird man Betriebsblind.
Lass dir immer Testweise deine Pfade in der Konsole ausgeben, dann findest du deine Fehler sofort.
Was ich vor einigen Monaten ausprobiert hatte (aber wieder runtergeschmissen hab, weil ich einen Ratschlag (der nachher kam) nicht berücksichtigt hatte) war,
die Windows 10 Platte im BIOS nach hinten zu schmeißen und direkt die Windows 7 Platte zu booten.
So startete mein Rechner immer mit Windows 7 und wenn ich mal Windows 10 braucht, habe ich einfach beim Booten F12 gedrückt und dann meine Win10 Platte ausgewählt.
Das System bootete dann ohne Probleme in 10 rein und beim Neustart wieder in 7.
Allerdings musst du, wenn du das so löst, einige Sachen beachten:
Windows 10 fährt offenbar nicht richtig runter, sondern hat einen Art hybriden Shutdown. Es werden Daten auf die Platte geschrieben und beim nächsten Boot geladen,
Windows 7 hatte bei mir (nach einigen W10 Boots) immer chkdsk.exe ausgeführt, weil es vermutet hatte, dass auf der Platte was nicht stimmt.
Das kannst du aber deaktivieren oder Windows 10 vollständig runterfahren, so dass keine Probleme mit chkdsk o. ä. auftreten.
Das ganze finde ich praktischer als sowas wie GRUB, da ich nicht immer auswählen wollte in welches System ich boote, da ich in 99.99% aller Fälle immer 7 gebraucht hab.
Die Festplatten sind aber so immer noch untereinander sichtbar, aber du könntest ja den Laufwerkbuchstaben entfernen und so sollte dann auch die Platte nicht mehr sichtbar sein.
Wie gesagt, es macht funktional keinen Unterschied ob du das ganze in eine andere Funktion packst oder nicht, aber du solltest
bei den Regeln bleiben die AutoIt definiert. Wenn HotKeySet nur Funktionen akzeptiert die parameterlos sind solltest du dabei bleiben,
da ansonsten in einer späteren Version bspw. das Skript komplett crashen kann oder es einfach buggy läuft.
Es müsste übrigens auch möglich sein die Fensterlautstärke direkt anzupassen statt erst den Mixer explizit zu öffnen.
Global $__h_WindowToMute = Null
; -----
HotKeySet("{F1}", "_MuteWindow")
;oder
_SetMuteWindow("blablubb123")
HotKeySet("{F1}", "_MuteWindow")
Func _SetMuteWindow($sTitle = "")
If $sTitle = "" Then
$__h_WindowToMute = WinGetHandle("[active]")
Else
$__h_WindowToMute = WinGetHandle($sTitle)
EndIf
EndFunc
Func _MuteWindow()
Local $hWnd = $__h_WindowToMute
If $__h_WindowToMute = Null Then $hWnd = WinGetHandle("[active]")
; Mute Window $hWnd
EndFunc
Alles anzeigen
Ist das nicht unproblematisch da sie nur local in einer Funktion verwendet wird? WIe umgehe ich das denn?
Mag ja sein, aber es ist inkonsistent HotKeySet die Funktion zu übergeben obwohl sie eigentlich keine Parameter haben darf.
Für gewöhnlich bietet man Funktionen an die der User callen soll. Er soll gar nicht wissen wie die UDF hinter den Kulissen funktioniert sondern gibt ihr die Anweisung und die UDF macht dann alles intern selber.
Funktional ändert das zwar nichts aber so hast du mehr Konsistenz und es ist einfacher zu verstehen.
Funktionen wie IsDeclared Execute Assign o. ä. sollte man weitestgehend vermeiden, da sie schnell inkonsistenten Code liefern können.
Wenn ich die Funktion ohne variable Aufrufe wird sie ja in der Funktion festgelegt. Also beanspruche ich sie doch nicht oder?
Ich verwende selber $sTitle für ganz andere Zwecke und deine UDF findet die Variable und spricht diese dann an, und jetzt?
Wie geht das?
Habe ich doch grad beschrieben oder?
Mit HotKeySet nicht, richtig, aber du solltest generell nicht irgendwelche Variablen beanspruchen welche der User selbst vielleicht nutzen möchte.
Stattdessen solltest du lieber eine Initialisierungsfunktion anbieten die eine interne Variable beschreibt um dann per Hotkeyset die Funktion zu setzen welche dann auf die interne Variable zugreift.
Dadurch wird das brauchen der Variable ja unterbunden...?
Das IsDeclared kann wegfallen, denn $sTitle wird in jedem Fall deklariert als auch definiert sein, es ist immerhin ein Funktionsparameter.
Anstatt dort den Wert standardmäßig auf "" zu setzen kannst du auch direkt das WinGetTitle als Standardwert hinschreiben.
Ich nehme mal an die Punkte sind leerzeichen, dann könntest du das ganze so machen: USB\\VID_.+?&PID_.+?\\.+?\s+\:\s+(.+?)$
Wenn du kein Zeilenende hast (das $ steht für das Ende des Strings) kannst du auch einfach die Capture-Gruppe nur greedy machen also (.+).
Hast du dir überhaupt schon mal die AutoIt-Grundlagen angeguckt? Die Fragen die du hier stellst wirken so als ob du das nicht hättest.
FileReadLine gibt kein Array zurück sondern ein String.
Du kannst die Abfrage mit einer If-Verzweidung oder Switch machen.
Sagt mal, gibt es evtl. Programme welche einen solchen Code anhand eines Strings erstellen (also reverse)?
Das was du suchst ist ein Regex Pattern Creator, da gibts z.b. buildregex.com oder regexr (Anwendung).
Es ist aber immer gut sowas einfach selbst zu lernen, da man die meisten Patterns schon mit einigen Tokens selber zusammenwürfeln kann.
Du könntest das ganze auch ohne Bitmapmanipulation machen.
Da reicht es einfach ein layered Fenster zu definieren wessen Hintergrundfarbe transparent ist und du zeichnest vorne drauf, dann machst du das Fenster noch durchklickbar und setzt es in der Z-Ordnung immer nach hinten.
Der Nachteil hiervon ist, minimiert man alle Fenster mit Win+D oder dem Button unten rechts in der Taskleiste verschwindet das Fenster bis man ein Fenster wieder aktiviert.
Dein Attachment funktioniert nicht, füg es mal als Preview ein. Jetzt gehts.
Und ja, ohne es zu sehen kann ich dir jetzt schon sagen, dass es machbar ist.
Ich hatte vor einigen Jahren ein Skript laufen welches mir aktuelle Werte von einem Projekt ausgelesen hatte und in eine Bitmap schrieb,
diese wurde dann automatisch alle paar Minuten als Hintergrundbild gesetzt. So schwierig ist das eigentlich nicht.
//Edit: Ach, der schaut ja niedlich schlicht aus. Den solltest du eigentlich ziemlich flott hinbekommen.
Das einzige was dir vielleicht Kopfschmerzen bereiten könnte ist die Bitmap zu beschreiben, aber wenn du da ein paar Konstrukte definiert hast ist das auch kein Problem.
Du kannst mit UBound die Größe eines Arrays abfragen, da Arrays bei 0 anfangen musst du einfach davon 1 abziehen.
Alternativ kannst du auch AspirinJunkies Vorschlag verwenden, dann hast du es als Einzeiler.
Übrigens du suchst in einem Array welches du gar nicht beschreibst.
Ich glaube du siehst den Wald vor lauter Bäumen nicht, wenn du die letzte Zeile der Textdatei nehmen willst, dann lies doch die datei mit FileReadToArray ein,
und greife auf den letzten Index des zurückgegebenen Arrays zu, das entspricht dann deiner letzten Zeile.
Ich verstehe deine Schleife ehrlich gesagt nicht, wieso speicherst du den Wert den du vergleichen willst in einem Array und suchst dann mit _ArraySearch?
_ArraySearch wird das ganze Array durchsuchen, wenn du nur den letzten Eintrag vergleichen willst dann greif doch explizit auf den Index zu?
Hast du Duplikate in deiner Tabelle?
Probier sie doch mal Schritt für Schritt einzusetzen und schau welchen Eintrag er nicht reinschreibt, vielleicht sind diese ja schlecht formatiert?