Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.
-
BTW: Weisst du das Windows einen "Fokus-Klau-Schutz" eingebaut hat (google "focus stealing")? Probier mal was dein Code macht wenn du, bevor eines der beiden Fenster in den Vordergrund geholt werden soll, in ein anderes Fenster reinklickst.
-
@Wade1234 Die meisten Handles haben den Wert 0. Ich habe jetzt das in die try-Blöcke eingebaut, um unnötige Aufrufe von SetForegroundWindow zu vermeiden.
if (IntPtr.Zero != proc.MainWindowHandle) { Stuff.SetForegroundWindow(proc.MainWindowHandle); }
@hustbaer davon habe ich schon mal am Rande gelesen. Das macht aber nichts, während das Programm läuft, arbeitet niemand am PC. Ich habe in jedem Browser ein Spiel laufen und das Programm soll die Spiele neu starten, wenn sie beendet wurden, eine Art Autoplay-Programm soll das mal werden.
-
@bruder sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Ich habe in jedem Browser ein Spiel laufen und das Programm soll die Spiele neu starten, wenn sie beendet wurden
Dann kennst Du doch bestimmt die Titel der Fenster.
FindWindow()
ftw.
-
Das klingt mir jetzt eher nach einem Fall für etwas wie CEF (ChromiumEmbeddedFramework). Gibt auch nen schönen .NET Wrapper dafür: https://cefsharp.github.io/
-
@Swordfish sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
@bruder sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Ich habe in jedem Browser ein Spiel laufen und das Programm soll die Spiele neu starten, wenn sie beendet wurden
Dann kennst Du doch bestimmt die Titel der Fenster.
FindWindow()
ftw.Das ist ein nsfw Spiel das keinen Titel setzt.
-
@hustbaer sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Das klingt mir jetzt eher nach einem Fall für etwas wie CEF (ChromiumEmbeddedFramework). Gibt auch nen schönen .NET Wrapper dafür: https://cefsharp.github.io/
Das wäre natürlich am geilsten. Aaaaber die Zeit mich da reinzufuchsen.... die fehlt z.Zt.
-
@bruder sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
@hustbaer sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Das klingt mir jetzt eher nach einem Fall für etwas wie CEF (ChromiumEmbeddedFramework). Gibt auch nen schönen .NET Wrapper dafür: https://cefsharp.github.io/
Das wäre natürlich am geilsten. Aaaaber die Zeit mich da reinzufuchsen.... die fehlt z.Zt.
ich übersetze das mal: ich bin einfach scheiße faul und habe da keine lust drauf!
-
@bruder Wie viel Zeit hast Du schon damit versch**** das ver***** Fenster zu finden??
-
Ich hatte damals mit CEF recht schnell einen funktionierenden Prototyp. Kommt natürlich drauf an was man alles erlauben/verbieten bzw. gegenüber dem Standardverhalten ändern möchte. Aber ein Versuch schadet mMn. nicht.
-
@Swordfish sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
@bruder Wie viel Zeit hast Du schon damit versch**** das ver***** Fenster zu finden??
Zu viel. Mit Spy++ und so. Ich kann natürlich nicht ausschließen, dass ich Fehler gemacht habe. Bin zurzeit recht ungeduldig was programmieren betrifft.
-
Wenn Du möglichst genau beschreibst was Du erreichen willst (NICHT wie) dann kann Dir vermutlich besser gehelft werden.
-
@hustbaer sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Ich hatte damals mit CEF recht schnell einen funktionierenden Prototyp. Kommt natürlich drauf an was man alles erlauben/verbieten bzw. gegenüber dem Standardverhalten ändern möchte. Aber ein Versuch schadet mMn. nicht.
Das stimmt, ein Versuch schadet nicht. Versuch macht "kluch" lol.
Werde mir auf jeden Fall deinen Link mal speichern und in der nächsten, längeren Freizeit mal reinschauen, danke dafür.
-
@Swordfish sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Wenn Du möglichst genau beschreibst was Du erreichen willst (NICHT wie) dann kann Dir vermutlich besser gehelft werden.
Mir ist schon ganz schön dolle gehilfert worden gehabt sein tun freu
Deinen Tipp und den von Wade habe ich verfolgt, und so. Es läuft. Danke.
-
@Wade1234 sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
@bruder sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
@hustbaer sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
Das klingt mir jetzt eher nach einem Fall für etwas wie CEF (ChromiumEmbeddedFramework). Gibt auch nen schönen .NET Wrapper dafür: https://cefsharp.github.io/
Das wäre natürlich am geilsten. Aaaaber die Zeit mich da reinzufuchsen.... die fehlt z.Zt.
ich übersetze das mal: ich bin einfach scheiße faul und habe da keine lust drauf!
6 setzen!
fg
-
Ich hatte damals mit CEF recht schnell einen funktionierenden Prototyp. Kommt natürlich drauf an was man alles erlauben/verbieten bzw. gegenüber dem Standardverhalten ändern möchte. Aber ein Versuch schadet mMn. nicht.
Und schon geht der Spaß los!
Fehler CS0234 Der Typ- oder Namespacename "WinForms" ist im Namespace "CefSharp" nicht vorhanden. (Möglicherweise fehlt ein Assemblyverweis.) CefSharp.MinimalExample.WinForms
Hülfäää!
Habe mir das Minimalbeispiel von https://github.com/cefsharp/CefSharp.MinimalExample runtergeladen
-
Hülfäää = Hilfe!
-
push
-
@bruder
Mach den NuGet Package Manager auf. Der sollte dir sagen dass Packages fehlen. Dort klickst du dann auch "ja bitte tu die mal für mich runterladen/wiederherstellen". Das macht der dann auch glatt. Danach kannst du komischerweise erstmal immer noch nicht bauen. Zumindest ging es bei mir nicht - immer noch die selben Fehler. Ich musste erst noch das Projekt explizit "cleanen". Danach ging das Bauen dann auf einmal.Was lernen wir daraus: immer erst nen Clean Build probieren bevor man verzweifelt/fragt. Und "Clean Build" heisst nicht "Rebuild" sondern vorher auf "Clean" und danach auf "Build" klicken. Ja, ernsthaft. Und wenn das auch nicht hilft als nächste den ganzen Itermediate und Output-Folder löschen und dann nochmal probieren. Und ja, auch das meine ich ernst. Das ist nicht bloss ein "one in a million" Zufall dass das hier funktioniert hat - sowas kommt öfter mal vor. Wenn du lang genug programmiert hast wirst du vermutlich auch wissen wieso - weil du dann selbst mal Programme geschrieben hast die Fehler hatten die mit ähnlichen Workarounds zu beheben waren.
Falls du auch das WPF Sample bauen willst wirst du noch das brauchen: https://stackoverflow.com/questions/8360209/how-to-add-system-windows-interactivity-to-project/56240223#56240223
Würde aber vorschlagen dass du dir das erstmal sparst, ist ein bisschen mehr Fummelei. WPF ist nicht sehr einsteigerfreundlich.
-
@bruder sagte in Mit einem C# Konsole Programm abwechselnd zwei Browser in den Vordergrund holen.:
push
pop
-
queued