Programm soll KEIN Fokus kriegen

  • Ersteller Ersteller MuchasGrasias
  • Erstellt am Erstellt am
M

MuchasGrasias

Gast
Hi Leute,

ich habe folgendes Problemchen: Ich habe mir ein Programm geschrieben mit Microsoft Visual Studio Basic 2008 und ich hab es so geschrieben, dass sich dieses Programm immer Autom. öffnet (hat schon seinen Grund:p).

Doch nun ist es so, wenn ich z.B. ein Spiel spiele und mein Programm seinen Befehl ausführt, schmeißt er mich aus dem Spiel raus und setzt den Fokus auf mein Programm, was ich eigentlich im Hintergrund ablaufen lassen will.

Ich hab schon probiert mit me.hide und showintaskbar = false und sowas, aber dann ist das Programm einfach nur unsichtbar und schmeißt mich trotzdem aus dem Spiel raus.

Weiß jemand welchen Befehl ich geben muss, damit er seinen Befehl im hintergrund ausführt ohne mich beim zocken zu stören?

Danke schon im voraus.
 
Und was macht das Programm, wodurch es den Fokus bekommt?
 
Naja, es öffnet sich einfach nur, führt den Befehl aus den ich dem gegeben hab und schließt sich dann wieder wie geplant. Aber es bekommt dadurch den Fokus von Windows und nicht mehr mein Spiel, wodurch er dahin wechselt, als ob ich Alt+Tab gedrückt hätte.
 
Erstell mal eine Verknüpfung und starte diese versteckt oder minimiert. Vielleicht erübrigt sich das Problem dadurch schon.
 
darf man fragen für was es die form braucht
 
Evtl. mal als Dienst ausführen.

Gruß Uwe
 
Naja, ob mit Form oder ohne Form, dann aber halt mit cmd, das Ergebnis bleibt das gleiche, er setzt den Fokus auf die Form bzw. die Konsole die dann den Befehl ausführt und schmeißt mich dann aus der Anwendung raus.

Wie meinste das, als Dienst.
 
Jedes Programm kriegt "Fokus", es sei denn es ist ein Dienst oder ein Rootkit.
 
Dienst und Form dürfte Probleme machen...

und mein Programm seinen Befehl ausführt, schmeißt er mich aus dem Spiel raus und setzt den Fokus auf mein Programm, was ich eigentlich im Hintergrund ablaufen lassen will.
Ein wenig konkreter könntest du schon sein... ich versteh nicht, was dein Programm macht und kann deshalb auch nicht sagen, warum dein Programm den Fokus bekommt...
 
Also, die Aufgabenplanung von Microsoft hat einen eintrag, dass mein Programm an der gegebener Uhrzeit starten soll.
Das Programm öffnet sich und erhält den Fokus.

Das Programm selber ruft eine Seite, die über http:localhost zugreift und sich eine Information abholt, auf.
Dies soll jetzt im Hintergrund laufen, dass es aber immer noch einen Wert holt und ihn in eine datei speichert.

Ist es schon etwas verständlicher geworden, was ich machen möchte ?
 
Als ja, da würde sich ein Windows-Dienst absolut anbieten...

Und was ein Dienst ist - sorry - das kann dir Tante Google ischer auch erklären...
 
MuchasGrasias schrieb:
Das Programm öffnet sich und erhält den Fokus.
Erstell dir einen Nutzer in der Verwaltung und öffne das Programm unter diesem Account. Mach ich genauso mit meinen täglichen Backups und ich bekomme keine Fenster.
 
Okay gut, also eure Ideen sind so schon korrekt. Ich hätte wohl erzählen müssen das ich mein Programm extern über JD starten lasse. Und den sagen, dass er die Datei als n anderen Benutzer öffnen soll, da bin ich überfragt.
Sorry
 
Wenn du schon ne Form hast, dann mach die doch einfach schon beim Start auf, und nicht erst, wenn dein Programm loslegt (den Task ausführt), dann ändert sich der Windowstate nicht -> kein Fokus.

EDIT:
A bit too late, wird also zum Starten gebracht, wenns benötigt wird...
Wie wärs mit cURL oder so, sodass du keine Form mehr brauchst?
 
Du musst nur einen Task in der Aufgabenplanung erstellen. Zum Starten erstellst du einfach eine Verknüpfung mit der Kommandozeile C:\Windows\System32\schtasks.exe /run /tn "<Pfad>".
 
Die ganze Geschichtee mit Curl und Live Header und weiß der Kuckuck, funktioniert bei mir nicht.
Haben wa schon x-mal durchgekaut. Deshalb hab ich mir mein eigenes Reconnect-Programm geschrieben, das JD nur über Extern auszuführen braucht und tada der Reconnect Funktioniert. Nur jezte hab ich halt dieses Problem.
 
Kannst du das Form nicht über das Visual Studio Funktions Framework gefrickel öffnen, sondern über die Windows API Funktion ShowWindow unter Verwendung des Parameters SW_SHOWNOACTIVATE?

Damit müsste das Form ohe Focus angezeigt werden.
 
Zurück
Oben