Mir geht es oft auch so, dass ich eigene Programme schreibe, weil existierende Software nicht das beinhaltet, was ich möchte.
Jedoch in diesem Fall gibt es doch eine Software, die noch weit umfangreicher ist als hier gezeigt: MP3TAG
Die Skriptfunktionen dort drin sind super. So kann man gleichzeitig taggen und umbenennen. ![]()
Beiträge von BugFix
-
-
Hi,
ich manipuliere eher selten am Inneren meines Smartphones (vor 2 Jahren habe ich mal unter Anleitung ein CR auf mein Nexus gezogen, hat auch super geklappt, aber fit bin ich deshalb nicht).
Bei meinem aktuellen (Nexus 5) hatte ich gleich als ich es bekam mit WugFresh NexusRootToolkit gerootet, aber das Stock-ROM belassen.
Nun haben sich ja doch einige (auch sicherheitsrelevante) Updates angesammelt. Bei gerootetem Smartphone funktioniert das Update ja nicht, ich muß mir also das aktuelle OTA-Update.zip herunterladen und als Sideload installieren.
Um keinen Datenverlust zu riskieren würde ich gern ein Backup machen. Empfohlen wird überall TitaniumBackup, das ich mir auch installiert habe. Sichern muss ich: User Apps und Daten (keine System Apps). Wie muss ich jetzt den Filter richtig setzen, dass ich auch alle erforderlichen Daten berücksichtige?
Hier das Filtermenü:Also wenn einige versionierte Smartphone-Bastler einem alten Mann unter die Arme greifen könnten, würde mich das freuen.

EDIT:
Das ist ja verwirrend mit den OTA-Versionen.
Ich habe aktuell: 5.1.0 - LMY47I
Diese Datei:- Android 5.1 Lollipop (LMY47I) für Nexus 5 „hammerhead“ (hammerhead-lmy47i-factory-df127988.tgz)
zu finden hier: http://www.giga.de/downloads/andr…-und-10-update/
ist ja das kpl. factory-image. Soweit ich gelesen habe zerstört das Aufspielen des FI alle Daten.
Bei den OTA-Files passiert das ja nicht. Muss ich dann alle bisherigen Updates nacheinander aufspielen? -
Ja, schon korrekter Ansatz.
Hier mal als kpl. variable Funktion, sowohl für Raw-Typ als auch Bild-Typ:AutoIt
Alles anzeigen#include <File.au3> $QuellOrdner = @DesktopDir & "\JgpRawTest\" _DeleteUnpaired($QuellOrdner) Func _DeleteUnpaired($_sPath, $_sfxDel='raw', $_sfxPair='jpg') Local $aFiles = _FileListToArray($_sPath, StringFormat('*.%', $_sfxDel), 1, True) ; Rückgabe kpl. Pfad If @error Then Return SetError(1,0,0) For $i = 1 To $aFiles[0] If Not FileExists(StringFormat('%s%s', StringTrimRight($_sPath, StringLen($_sfxDel)), $_sfxPair)) Then FileDelete($aFiles[$i]) EndIf Next EndFunc -
Ich packe die Erstellung des Query-Strings immer in eine extra Funktion. Somit ist Aufruf etwas übersichtlicher und auch Querys, die andere Querys enthalten lassen sich einfacher erstellen.
AutoItFunc _sSQL_Create($_sSelect, $_vParam='') Local $sSQL Switch $_sSelect Case 'spieler_punkte_set' ; $_vParam = [punkte,spieler] $sSQL = StringFormat("UPDATE Tabelle_Spieler SET `Punkte` = '%i' WHERE `Spielername` = '%s'", $_vParam[0], $_vParam[1]) Case 'spieler_punkte_get' ; $_vParam = spieler $sSQL = StringFormat("SELECT `Punkte` FROM Tabelle_Spieler WHERE `Spielername` = '%s'", $_vParam) EndSwitch Return $sSQL EndFunc -
FileFindFirstFile arbeitet im aktuellen Verzeichnis, also im @ScriptDir. Liegen deine Dateien auch dort?
Überprüfe den zurückgegebenen Wert von 'FileFindFirstFile', er muß <> -1 sein.
Und am Skriptende solltest du das "Suchhandle" (bei dir $filesearch) wieder schliessen. -
Eine Textdatei kann keinerlei Formatierung enthalten, das gibt der Dateityp nicht her.
Um Formatierung nutzen zu können brauchst du einen Dokumentdateityp (z.B. RTF).AspirinJunkie: Geht aber nur mit Schriftarten fester Breite wirklich sauber.
-
Werde bitte etwas konkreter. Oft ist der Zugriff auf Programme auch effizienter möglich als per Klickerei.
Welches Programm möchtest du denn automatisieren? Vielleicht haben wir da bereits Lösungen für. -
Eigentlich sollte es auch möglich sein, alle Schritte innerhalb des VBE automatisiert über das Objekt auszuführen. Da der Schutz für VBA-Projekte mit Kennwort erst ab Office 200n eingeführt wurde, kann ich das jedoch nicht nachvollziehen (ich arbeite noch immer sehr zufrieden mit Office 2000).
Es scheint aber notwendig die Bibliothek 'VBIDE' einzubinden. Das ist immer projektbezogen. Ich habe mal eine Funktion erstellt, die die Bibliothek einbindet und gleichzeitig die TopLevel-Referenz für das VBE-Objekt zurückgibt.
Um Zugriff auf die richtigen Controls zu erlangen auch noch eine Debug-Funktion, die alle Menübänder und deren Controls ausliest.
Vielleicht hilft das weiter.AutoIt
Alles anzeigen$sApplicationType = "Excel.Application" $oApp = ObjGet("", $sApplicationType) If Not IsObj($oApp) Then Exit MsgBox(262192, "Fehler", "Die Projektbibliothek kann nur bei einer geöffneten Datei hinzugefügt werden!") ; VBIDE-Bibliothek einbinden und Referenz auf VBE-TopLevel-Objekt holen $oVBE = _VBIDE_Add($oApp) ; um Zugriff auf die richtigen Ctrl zu bekommen, alle Menübänder mit Auflistung Ctrl-ID, Ctrl-Bezeichnung in Konsole ausgeben __DEBUG_COMMANDBARS($oVBE) Func __DEBUG_COMMANDBARS($_oVBE) Local $sOutput = '', $s5 = ' ', $s30 = ' ' Local $oCmdBars = $_oVBE.CommandBars() For $oBar In $oCmdBars $sOutput &= StringFormat('== MENÜ - NAME: %s == NAME LOCAL: %s == VISIBLE: %s ==%s', _ StringLeft($oBar.Name & $s30, 30), StringLeft($oBar.NameLocal & $s30, 30), StringLeft($oBar.Visible & $s30, 5), @LF) For $ctrl In $oBar.Controls $sOutput &= StringFormat(' CONTROL ID: %s CAPTION: %s%s', StringLeft($ctrl.ID & $s5, 5) , $ctrl.Caption, @LF) Next Next ConsoleWrite($sOutput) EndFunc ; gibt gleichzeitig das TopLevel-Objekt des VisualBasicEditors zurück Func _VBIDE_Add($_oApp) If Not IsObj($_oApp) Then Return SetError(1,0,MsgBox(48,"Fehler","Keine Anwendungsdatei geöffnet!")) Local $fFound = False ; Auflistung der verfügbaren Verweise nach "VBIDE" durchsuchen Local $oVBE = $_oApp.VBE For $Ref In $oVBE.ActiveVBProject.References If $Ref.Name = 'VBIDE' Then $fFound = True ExitLoop EndIf Next ; wenn Bibliothek noch nicht enthalten, diese hinzufügen If Not $fFound Then $oVBE.ActiveVBProject.References.AddFromGuid("{0002E157-0000-0000-C000-000000000046}", 5, 3) Return $oVBE EndFunc ; entfernt die Bibliothek wieder vom Projekt Func _VBIDE_Remove($_oApp) If Not IsObj($_oApp) Then Return SetError(1,0,MsgBox(48,"Fehler","Keine Anwendungsdatei geöffnet!")) For $Ref In $_oApp.VBE.ActiveVBProject.References If $Ref.Name = 'VBIDE' Then Return $_oApp.VBE.ActiveVBProject.References.Remove('VBIDE') Next EndFuncEDIT:
Das Menüband mit CommandBars(1) auszuwählen halte ich für zu unsicher. Wenn man es nur am eigenen PC braucht und der Index passt, geht das sicher in Ordnung. Aber mehr Sicherheit bringt der Zugriff über den String. Wie der lautet lässt sich ja mit meiner Debug-Funktion abfragen.Vielleicht auch ganz brauchbar, der Zugriff auf Elemente nur über Namen von Menüband und Control:
[autoit]
[/autoit][autoit][/autoit][autoit]
;~ Bsp.: Öffnen Objektkatalog_VBIDE_CtrlRun($oVBE, 'Voreinstellung', 'Objektkatalog')
[/autoit][autoit][/autoit][autoit]Func _VBIDE_CtrlRun($_oVBE, $_sCmdBar, $_sCtrl)
[/autoit]
$_oVBE.CommandBars($_sCmdBar).Controls($_sCtrl).Execute
EndFunc -
Bugfix wo kommst den Her?
Von hier: 51.966576, 11.885237

-
Willkommen nach Sa.-Anhalt aus Sa.-Anhalt

Schau einfach mal im Hilfeforum die angepinnten Themen durch. Auch die vielen Posts im Forum Skripte können dir sicher beim Lernen helfen.
Und wenn Fragen sind, hast du ja das Forum. -
Auf meinem Laufwerk schlummern 17 GB kostbarer SSD-Speicherplatz völlig ungenutzt als Wiederherstellungspartition. Mich stört nur die Position vor der Startpartition.
Ich würde gerne die Wiederherstellungspartition löschen und die anderen Partitionen nach vorn verschieben, damit ich den freien Platz dem Laufwerk C zuordnen kann.
Ist das überhaupt möglich, bleibt die Startpartition dann noch bootbar? -
Jede Änderung in einem neuen Post zum Thema, oder den originalen Post immer wieder ändern?
Eigentlich werden Neuerungen immer im Startpost editiert. Auch das angehängte Skript wird dort ausgetauscht.
Einfach einfügen im Text:
Edit DATUM: Beschreibung der ÄnderugenSchau einfach mal in das Unterforum Skripte, da siehst du, wie das gehandelt wird.
-
-
Besteht hier im Forum dafür überhaupt Bedarf?
Bevor du hier vor ein paar Wochen zu Lotus Notes was gepostet hattest, wußte ich gar nicht mehr, dass die Firma überhaupt noch existiert. Nach meinem Gefühl hatten die vor über 20 Jahren ihren Zenit erreicht (da habe ich auch letztmalig mit gearbeitet, Lotus 1-2-3, Ami Pro) und fristen seit dem eigentlich eher ein Nischendasein. Da hatte M$ dann das bessere Marketing (nicht unbedingt das bessere Produkt).
Das soll dich aber nicht davon abhalten dein Projekt umzusetzen. Ehe man zum 1-Millionsten-mal einen Taschenrechner programmiert, ist das dann doch eine wesentlich nutzbringendere Tätigkeit.
-
CTRL+A für die Editbox (um alles zu markieren). Da aber noch weitere Elemente (z.B. Inputfeld) im GUI vorhanden sind möchte ich diesen Hotkey nur aktiv haben, wenn man auch in genau diesem drin ist.
Wenn ich mich recht erinnere, ist Ctrl+A ein System-Hotkey, somit ist er automatisch in jedem Ctrl der Edit-Class aktiv (dazu gehören auch die Input).
Um das zu verhindern musst du auch auf Systemebene eingreifen und das mittels Hook abfangen. -
Colormixer gibt es sehr viele. Aber meist fehlt irgendetwas, worauf man Wert legt. Ich hatte ja mal eine Farbtabelle, die auch einen Colormixer enthielt. Darauf aufbauend entstand dieses Skript.
Funktionalität:
- Programm kann mit einer Start-Farbe als Parameter aufgerufen werden
- Wenn Kommandozeilenaufruf erfolgte, wird die gemixte Farbe auch in die Konsole zurückgegeben
- Wahlweise Vollkreis-Gradient oder 3-Sektor-Gradient um aus diversen Farbverläufen auszuwählen (Mauszeiger über Gradient zeigt Pixelfarbe unter der Maus temporär im Auswahlfenster an, Linksklick übernimmt in Auswahlfenster)
- Farbe aus Auswahlfenster kann mit <Center>/<Border> als Farbe im Gradienten gesetzt werden, bei Sektor-Gradient zusätzlich mit Radio >A>/<B>/<C> den Sektor anwählen
- Farbwahl als RGB oder BGR möglich
- 20 Beispielfarben vorhanden
- 10 Userfarben können erstellt werden
- <Add to User Color> übernimmt aktuelle Farbe in das nächste freie oder ausgewählte User-Farbfeld
- Klick auf Userfarbfeld übernimmt dessen Farbe in die aktuelle Auswahl
- alle Farb- und Anzeigeeinstellungen werden in INI gespeichert und bei erneutem Aufruf wird damit geladen (Farbe als Aufrufparameter überschreibt aber die zuletzt gewählte)
- Colorpicker mit Zoomfenster und Farbvorschau auf Pixel unter dem Cursor
- Im Colorpicker wird die Mausgeschwindigkeit stark reduziert um nahezu pixelgenau auswählen zu können
- Gewählte Farbe wird in Zwischenablage kopiertViel Spaß damit.
-
Ich habe das Skript von Oscar mal etwas kommentiert, vielleicht wird dir dann etwas klarer, wie du das in dein Skript einbindest.
AutoIt
Alles anzeigen#include <Clipboard.au3> #include <SendMessage.au3> #include <WindowsConstants.au3> ; diese GUI werkelt unsichtbar im Hintergrund um die Daten des Clipboards zu verwalten $hGui = GUICreate('ClipboardViewer') ; hier wird die GUI in die Clipboardverwaltung aufgenommen $hNext = _ClipBoard_SetViewer($hGui) ; diese beiden Nachrichten sind relevant für den Datenverkehr mit dem Clipboard GUIRegisterMsg($WM_CHANGECBCHAIN, 'WM_CHANGECBCHAIN') ; https://msdn.microsoft.com/de-de/library/windows/desktop/ms649019(v=vs.85).aspx GUIRegisterMsg($WM_DRAWCLIPBOARD, 'WM_DRAWCLIPBOARD') ; https://msdn.microsoft.com/de-de/library/windows/desktop/ms649025(v=vs.85).aspx HotKeySet('{ESC}', '_End') ; Diese Schleife kann auch durch die bestehende Schleife in deinem Hauptskript ersetzt werden. While Sleep(1000) WEnd Func _End() ; hier wird die GUI aus der Clipboardverwaltung wieder entfernt _ClipBoard_ChangeChain($hGui, $hNext) Exit EndFunc ; s. Link neben GUIRegisterMsg Func WM_CHANGECBCHAIN($hWnd, $iMsg, $iwParam, $ilParam) If $iwParam = $hNext Then $hNext = $ilParam ElseIf $hNext <> 0 Then _SendMessage($hNext, $WM_CHANGECBCHAIN, $iwParam, $ilParam, 0, 'hwnd', 'hwnd') EndIf EndFunc ;==>WM_CHANGECBCHAIN ; s. Link neben GUIRegisterMsg Func WM_DRAWCLIPBOARD($hWnd, $iMsg, $iwParam, $ilParam) Local $sClipBoard = _ClipBoard_GetData() _Copy() ; DAS IST DER VON DIR GEWOLLTE AUTOMATISCHE FUNKTIONSAUFRUF ZUSAMMEN MIT Ctrl+C If $hNext <> 0 Then _SendMessage($hNext, $WM_DRAWCLIPBOARD, $iwParam, $ilParam) EndFunc ;==>WM_DRAWCLIPBOARD ; Deine Funktion Func _Copy() Sleep(500) Send("!{tab}") Sleep(500) Send("^v") Sleep(500) Send("{tab}") Sleep(500) Send("!{tab}") EndFunc -
kann man u.a. auch kleine Sender für z.B. Wanzen bauen
Ja, schon witzig. Heute kaufst du die Wanzen fertig im Elektromarkt und niemanden störts.

-
Ich habe hier auch arge Bedenken, ob der Hintergrund für diese Anwendung mit unseren Forenregeln konform geht.
Deshalb schließe ich vorerst diesen Thread.Möge der TE per PN an mich oder anderen Moderator seine legitimen Motive glaubhaft darlegen, dann kann man evtl. hier wieder öffnen.
EDIT:
OK, der TE hat mich kontaktiert und seine Erklärung ist für mich soweit schlüssig. Ich denke ein Verstoß gegen die Forenregeln kann hier ausgeschlossen werden.
Wenn der TE die Details offen darlegen möchte kann er das gern, von mir jetzt nur soviel: es geht um 5000 - 6000 Passdaten jährlich, die z.Zt. per Hand eingetragen werden.Thread wieder freigegeben.
-
Bei diesem Router scheint das dann doch der falsche Menüpunkt zu sein. Schau mal unter Virtual Server. Das klingt erfolgversprechender. Kannst dazu auch mal googeln (oder in die Doku des Routers schauen
)