Also hier...Aber wie gesagt sollte das oben beschriebene berücksichtig werden.
Beiträge von Hubschrauberpilot2
-
-
So jetzt. Nun muss das Minimierenproblem behoben sein. Sonst hab ich nen Denkfehler !?
Auch das 4 fache Laden. Probiers nochmal...DankeDu musst allerdings wieder den Timerhaken reinmachen und 0 Sekunden einstellen.
Werds gleich hochladen
-
....Nachtrag..habe mal Deine Einstellungen.txt mit benutzt. Wenn ich das Programm nun starte, ist der Timer deaktiviert !!
-
Naja, das wäre mir zu viel gewurschtel. Du musst erstmal die Funktionsweise des Fokus verstehen.
Es gibt in meinem Programm 2 Fokustypen. Der 1. ist ein Timer. Dieser Timer prüft unabhängig davon ob jetzt was in der Watcherliste steht oder nicht. Dieser ist einstellbar. Er ist für allgemeine Fenster da, welche verdeckt werden sollen. Wie z.b das Batchfenster.Der 2. Fokus wird von mir Programmintern benutzt, ist aber nicht einstellbar. Er kommt immer dann zum tragen, nachdem ein Programm beendet wurde und der Fokus sofort gesetzt werden soll.
Mach mal folgendes :
- gehe unter Fokus einstellen
- klicke Fokus allgemein aktivieren an.
- Mache aber dort alle anderen Haken raus
- Setze ausserdem den Fokustimerwert auf 0.
- Starte nun die Batchdatei per Kodi und schick mir mal dann mal das [definition='1','4']Debuglog[/definition]. Normalerweise müsste dann was mit Fokus in der [definition='1','4']Debuglog[/definition] stehen. Ich sehe nämlich nix in Deiner alten [definition='1','4']Debuglog[/definition] davon!! Daher gehe ich mal von aus das der Fokustimer bei Dir deaktiviert ist ! Somit geht es nicht !Jetzt sollte Kodi ohne Unterbrechung im Vordergrund gehalten werden unabhängig davon ob jetzt nun das Curl Programm (noch nie gehört ?!) in der Liste steht oder nicht. Das gilt also auch für dein Cmd Fenster !
Eine weitere Sache ist mir aufgefallen. Ich starte in der Shell eine Verknüpfung zu einem Gamepad Bluetooth Programm. Dieses wird in der aktuellen Version gleich dreimal gestartet beim booten. Das war bei der 5.7er imho noch nicht so.
Kannst Du vielleicht auch hier mal ne [definition='1','4']Debuglog[/definition] schicken, damit ich die Abarbeitung nachvollziehen kann ? Sowas sollte natürlich nicht sein !
-
Also laut [definition='1','4']Debuglog[/definition] findet er keine übereinstimmende Programmdatei im Ram. Hast Du denn das Programm das Du kontrollieren willst auch in der Liste des Watcher eingetragen und extern gestartet ? Starte mal den Emulator oder was auch immer. Jetzt muss diese Exe oder Com Datei im Taskmanager auftauchen. Tut sie das ? Dann kann es auch sein das es mehrere Programmdateien in einem Verzeichniss gibt, welche sich gegenseitig aufrufen. Es darf allerdings nur die Datei in der Liste stehen, welche später auch im Taskmanager auftaucht ! Nur wenn dem so ist, erkennt es mein Programm und gibt den Fokus an Kodi zurück bei Programmende. Ansonsten musst Du den allgemeinen Kodifokus aktivieren. Dann wird der Fokus in bestimmten Intervallen an Kodi übergeben.
Aso...Der Pfad in der Batchdatei, also die Exedatei direkt muss in der Liste stehen ! Nicht die Batchdatei ! Und kontrolliere mal den Pfad auf Richtigkeit ! Ich sehe übrigens kein Programm, welches gestartet wird in Deinem Video ??!
-
Ja bitte, das mit dem Explorer wird wohl nicht behoben sein. Das wäre eher Zufall. Bei dieser Version musst Du übrigens den Fokus fürs Mediacenter deaktivieren, aber allgemein aktivieren wenn Du ihn nicht für Kodi haben willst. Ansonsten werden die PC Spiele nicht mehr fokusiert. Es hat sich bei dieser Version einiges geändert.
-
So, jetzt, diesmal eine lohnenswerte Version
folgende Neuerungen:
Die Textgroesse ist jetzt über sonstige Einstellungen anpassbar
Somit kann man nun jedes Fenster in die richtige Grösse / Position ziehen, und die Texthoehe an die Auflösung des HTPC anpassenDas Emufrontend / Mediacenter kann ab jetzt getrennt beendet oder gestartet werden
Wenn man z.b den DVBViewer in Verbindung mit Attract Mode als Spieleplattform benutzt, hat man einen ausgezeichneten HTPC, da es hierfür fast identische Skins gibtman kann nun den Fokustimer per Joypad aktivieren (Standartmässig aktiviert)
Dies ist nützlich wenn man das Fokussystem erst später beim spielen braucht
Ich werde später eventuell noch eine programmierbare Taste zum ein / ausschalten hinzufügenDer Fokustimer kann nun beim Mediacenter / Emufrontend deaktiviert werden
Dies ist nützlich wenn man den Fokus nur bei den Spielen brauchtBei benutzeraktivität kann der der Fokustimer resetet werden. Dies braucht man, wenn man gerade etwas im Menü macht, oder sich durch die Fenster schaltet. Dadurch schaltet mein Programm nicht den Fokus um, sondert setzt den Zähler auf 0
Die Fokusausnahmen können nun deaktiviert werden, sobald das Kontrollprogramm startet
Falls man die Ausnahmen nur auf das Mediacenter oder Emufrontend beschränken will, kann man diese
Funktion aktivierenDie zu kontrollierenden Programme / Emulatoren werden nun standartmässig im Vordergrund gehalten
Das Intervall ist bei Fokus einstellen justierbar. Die Einstellung des Timers hat auf alle Fokustypen Einfluss ! Der Fokustimer muss aktiviert sein ! Sonst geht es nicht !Es wurde der Code vereinfacht und die Debugmeldungen abgeändert. Wenn ihr in das [definition='1','4']Debuglog[/definition] schaut, so werdet ihr sehen, das alles wesentlich geordneter zugeht..
...Achso...Ja und natürlich das minimieren von Kodi "sollte" behoben sein....Ich hoffe dem ist auch so
32 Bit:
https://workupload.com/file/Vx7wcHK64 Bit:
https://workupload.com/file/3natbkp..Aso, und bitte nicht nur einfach runterladen und übers kostenlose Programm freun. Nen Kommentar wäre auch nett.
-
Ja !! Ich konnte den Fehler nun endlich finden. Es war eine Variable die das Fokusieren sperrte.
0 = Desktophandelfenster. Wenn nun die Shell ausgeführt wird und das Programm zurückkehrt hat man ja den Desktop als Hintergrund. Somit wird nicht fokusiert. Im normalen Windows gehts, da es da den Windowsexplorer als Fenster hat ! Und dieses Fenster ist ungleich 0.Die nächste Version scheint jedenfalls sehr robust zu sein. Zumindest geht jetzt das zurückkehren extrem schnell, da ich den Code zusammengefasst bzw verkürzt habe.
Allerdings konnte ich das mit dem starten des Explorers nicht reproduzieren. War Kodi zu dem Zeitpunkt, wo der Explorer gestartet ist noch aktiv ? Hast Du vielleicht noch ein paar Details ? Hast Du da die 5.7 er Version benutzt ?
-
Ich werd mal versuchen das mit dem Minimieren über das Cmdfenster nachzuvollziehen. Was benutzt Du für ne Kodiversion ?
Was den Fokus angeht, wollte ich einfach nur mal wissen ob das Häckchen denn auch bei Fokus einstellen gesetzt ist.
Egal, werd schauen ob ich was machen kann. Auch wenn ich grad nicht wirklich die Zeit finde.
-
Also nochmal mit dem Explorer.
1. Du hast mein Programm als Shell eingestellt
2. Mein Programm bootet und startet Kodi
3. Du startest ein Programm innerhalb Kodi und beendest es
4. Jetzt wird manchmal der Desktop gestartet, obwohl Du zurück zu Kodi möchtest ?
5.Wenn Du Kodi beendest, startet der Exporer normal ?Aso...hast Du eigentlich schonmal den Fokus in meinem Programm eingestellt ? Vielleicht minimiert dann Kodi nicht mehr ?
-
Nach starten einer Batchdatei aus Kodi wird Kodi (Vollbildfenster) ausgeblendet und ein cmd-Fenster geöffnet, abgearbeitet und geschlossen. Kodi kehrt danach nicht mehr zurück ins Vollbild, sondern liegt als minimiertes Icon unten links auf dem Monitor. Der Windowsdesktop wurde jedoch nicht gestartet (Shell einstellung : Starten mit HTPCWatcher). Durch anklicken des Icons fährt Kodi wieder in Vollbild.
Das selbige Problem hatte Pauabär auch. Eigentlich liegt das an Kodi selber. Es ist eher Zufall gewesen, das es mal ging. Ich werde, eine separates Element einbaun, welches nur den minimierten Zustand des Mediacenters unabhängig von der Fokusierung prüft, und gegebenenfalls korrigiert.
PS: Vielleicht noch zur Ergänzung. Ich habe für einige PC-Spiele (u.a. auch einen Playstation2 Emulator) einen "Prozess killen" Switch auf meinem Gamepad definiert um nach dem Spielen wieder in Kodi zu landen. Hierbei funktioniert die Rückkehr in ein Vollbild-Kodi, jedoch lande ich ab und zu (alle 5-10 mal) nicht zurück in Kodi, statt dessen wird der Windowsdesktop gestartet (gebootet, weil vorher HTPCWatcher als Shell).Da hast Du wahrscheinlich Kodi neustarten im Menü ausgewählt. Wenn sich Kodi dann in der Shell beendet, oder es zu lang dauert, bis Kodi neugestartet wird, so denkt ein Programmteil das Kodi dauerhaft beendet wurde und startet somit den Explorer. Hier sollte vielleicht eine einstellbare Delay-Schwelle hinzugefügt werden, falls meine Vermutung korrekt ist.
-
Einfach mal mal das [definition='1','4']Debuglog[/definition] hochladen, nachdem der Fehler aufgetreten ist. Das Programm darf allerdings nach dem Fehler nicht neu gestartet werden, da sonst diese Datei überschrieben wird. Dafür habe ich es eingebaut. Alles andere ist Rätselraten.
-
So, mal wieder Zeit ne neue Version und zwar die 5.7er rauszuhauen. Hab jetzt nicht viel Probiert. Aber dafür gibts ja den Pauabär.
32 Bit:
https://workupload.com/file/S7nYtmK64 Bit:
https://workupload.com/file/gZ6nTTs
Änderungen:
-Ab jetzt arbeitet nur noch 1 unabhängiger Thread in dem Programm. Und das wird auch so bleiben.
Dadurch ist der Programmfluss besser, und es gibt eigentlich keine Konflikte mit anderen Prozeduren mehr.-irgendwie hat das Joypad in der Shell bei der letzten Version gesponnen, sollte jetzt besser sein
-viele Kleinigekeiten behoben (Unter anderem die Maussteuerung)
-Quellcode von Datenmüll befreit (unnötige oder doppelt belegte Variablen), Strukturen sauber getrennt definiert, um den Überblick zu behalten
Noch was :
Ich werde in nächster Zeit wohl keine Zeit mehr finden, grossartig an dem Programm dran rumzuschrauben. -
So, da ich das komplette Programm durchwurschteln musste um die Änderungen vorzunehmen, ich aber nur hin und wieder Zeit finde, daran zu arbeiten, bzw um es zu testen, hier mal das Programm im jetzigen Zustand. Es fehlen noch ein paar Debugeinträge und Kleinigkeiten, ansonsten sollte es aber lauffähig sein.
Ich hoffe ich bin auf dem richtigen Weg ?!@Pauabär
-Das Watcherfenster wird jetzt immer nach der Shell erstellt. Also wenn der Explorer geladen hat.
-Ich habe eine Option zur Shell hinzugefügt, die es ermöglicht die Zusatzprogramme entweder vor oder nach der einzustellenden Pause zu laden. Dadurch gibt es hofentlich keine Probleme mehr mit dem Verstecken. Der Grund dafür liegt darin, das es ne weile dauert bis die APIFunktionen geladen sind und ich diese in meinem Programm benutzen kann.
-Die Joystickkalibirierung wurde überarbeitet und funktioniert jetzt wieder mit dem Index. Ausserdem wird jetzt der richtige Name des aktuell kalibrierten Joysticks angezeigt@MasterPhW
-Ich hoffe man kann sich nun in unterschiedliche Accounts einwandfrei einloggen. Den automatischen Einlogvorgang musst Du allerdings in Windows einstellen.
-Es sind jetzt bis auf den Debugwindow alle Fenster in der Position und Grösse veränderbar ! Dies war die allergrösste Hürde, da jedes Element ausgerechnet werden musste ! Die Daten werden gespeichert, sobald Du das jeweilige Fenster schliesst.Also viel Spass...Und wie gesagt is noch nich ganz fertig muss noch bissl testen. In win 7 und 8 läuft es aber ganz ok.
-
MM , das liegt dann irgendwie an der Joystickgetdev api von Microdoof. Hab die Prozedur mal komplett neu geschrieben. Ab jetzt werden die Joysticks so wie früher durch den Index erkannt und nicht durch die OEM ID (Das Gebilde aus VID_xxx) Die neue Version wird dann sehr viele Änderungen enthalten (siehe Post). Unter anderem ist dann jedes Fenster beliebig in der Position , Breite und Höhe änderbar. Dauert aber noch paar Tage....
-
@pauabaer
Ich glaube zu wissen woran es bei Dir liegt. Jeder Joystick bekommt bei Windows eine Individuelle ID zugewiesen, die dann in der Registry gespeichert wird. Und zwar genau die, welche in meinem Programm bei Joystick einstellen steht. Ich gehe mal von aus, Du hast 2 identische Joysticks, allerdings werden diese im System mit unterschiedlichen IDS verwaltet. Wahrscheinlich schnappst Du dir manchmal einfach den falschen, da es ja optisch die selben sind. Dieser ist dann allerdings nicht im Watcher kalibriert, da er ja ne andere Kennung hat. Du darfst immer nur den gleichen Joypad nehmen, wo die Kennung auch bekannt ist. -
Einfach im Thread nen bischen zurückblättern und den letzten Link nehmen.
@Pauabär
Also ich denke bei Dir hängt das ganze irgendwie mit dem einschalten zusammen. Habe mal eben nen kleines Testprogramm für Dich geschrieben.Geh mal so vor:
-schalte das Joypad ab
-schalte das Joypad ein
-führe mein Programm aus
-es sollte jetzt x Joypads erkannt kommen
-Danach kommt eine Schleife die bis 8 zählt. Hier sollte irgendwas mit VID_ ... kommen und eine ID
-notiere diese ID und die VID_Nummer Falls es 2 sind (ID mit zugehörig VID_) , ebenfalls
-So, jetzt lasse alles so wie es ist, und simuliere das Szenario mit dem Watcher, indem Du den PC neu startest
-Wenn Du nun wieder irgendwann im Explorer bist, starte das Testprogramm neu
-es müssen nun alle notierten Daten inkl ID übereinstimmen. Tun Sie das ?
-Wenn jetzt 0 Joypads erkannt kommt, so gibt es jedenfalls ein Problem mit Deinem Treiber !Hinweis:
In Watcher werden alle IDs durchlaufen und das zugehörige VID_ Muster verglichen.
Sobald das Muster bzw die Kennung übereinstimmt, wird diese ID zurückgegeben, die Du aufgeschrieben hast...Wird Dein Joypad in der Systemsteuerung eigentlich nach einem Neustart auch noch angezeigt ?Joystick Testprogramm:
https://workupload.com/file/5ENaemb -
mm hast Du dann nur ein Bluetooth Empfänger oder hast Du da 2 angestöpselt ? Naja ich geh mal von aus nur 1. Dann müsste es gehn.
-
Sag mal Pauabär, kann es sein das Du 2 Controller benutzt ? Stöpsele mal einen ab und probiers nur mit einen. Vielleicht liegts irgendwie daran. Kann sein das Programmteil der für die jeweilige ID des einzelnen Joypads zuständig ist immer noch nicht richtig arbeitet und die Controller verwechselt.
-
also erstmal sehe ich das Dein Inputmapper nicht versteckt wird. Ich weiss aber mittlerweile an was das lag. Das ist schon behoben. Der Grund des nicht zurueckkehrens liegt daran das Dein Joypad nicht ermittelt wird. Hast Du es bei Joypadeinstellen kalibriert ? Ist es auch zu dem Zeitpunkt eingeschaltet gewesen ? Es muss eine Joystickerfolgsmeldung im [definition='1','0']log[/definition] stehn. Sonst gehts nicht.