Form "Anklicken" lassen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von dertobis.

    Form "Anklicken" lassen

    Hallo

    Wenn man von einer form wegklickt wird sie grau (da nicht mehr angeklickt)
    Gibt es eine möglichkeit das man die form (natürlich ohne anklicken) per timer wieder im "angeklickten" zustand stellt?

    Also :

    VB.NET-Quellcode

    1. Mit Beispiel.exe gearbeitet
    2. Weggeklickt auf desktop anderes programm ..... etc
    3. So und nach einer minute wieder "angeklickt" in den vorergrund


    Wie macht man das?

    Zum verständnis habe ich noch ein paar bilder hochgeladen
    Bilder
    • Angeklickt.png

      5,83 kB, 1.360×607, 128 mal angesehen
    • Nicht angeklickt.png

      6,15 kB, 1.360×608, 129 mal angesehen
    !! It's not a bug it's a feature !!
    Als erste Idee würde ich es mit einer Dauerschleife lösen, die zyklisch z.B. jede Sekunde prüft, ob die eigene Form noch im Vordergrund steht. Falls nicht einen 1-Minuten Timer auslösen, der nach dieser Zeit die Anwendung wieder in den Vordergrund bringt (Stichwort:Form1.Activate()).
    In diese Richtung würde mein erster Versuch gehen...
    Natürlich wäre alles einfacher, wenn es ein Event gäbe. Dazu müsstest du mal in den Events der Form-Klasse nachschauen.

    dertobis schrieb:

    Als erste Idee würde ich es mit einer Dauerschleife lösen, die zyklisch z.B. jede Sekunde prüft, ob die eigene Form noch im Vordergrund steht.

    Das wäre sehr ungut, denn Polling sollte man immer vermeiden, da es sehr unperformant ist und es immer eine Alternative (Events) gibt, wie Du auch angesprochen hast, das wäre LostFocus. Das hat der TE eigentlich im letzten Thread schon kennengelernt.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Gonger96 schrieb:

    Im LostFocus-Event den Focus setzen, entweder per Focus() oder SetForegroundWindow. Was soll das Ganze dem Nutzer denn bringen?


    Es wird ein Tagebuchprogramm das einen sicherheitsmechanismus haben wird (soll ja auch keiner die wichtigen sachen drin nicht lesen nicht?)


    dertobis schrieb:


    Schätzungsweise soll der (Internetcafe)Benutzer tunlichst daran gehindert werden eine längere Zeit eine andere Anwendung zu benutzen als die gestattete.


    Ich weiß nicht was du mir da unterstellen willst ... wie kommst du überhaupt darauf?

    Gonger96 schrieb:

    Dann ist soetwas eindeutig Schadsoftware, welcher Nutzer will soetwas?

    @Gonger96
    Darf ich mich wiederholen? : Ich weiß nicht was du mir da unterstellen willst ... wie kommst du überhaupt darauf?
    !! It's not a bug it's a feature !!


    Ich weiß nicht was du mir da unterstellen willst ... wie kommst du überhaupt darauf?


    Drum sagte ich ja auch "schätzungsweise". Aber dann tut es mir leid. Ich meinte mal vor kurze in einem anderen deiner Threads gelesen zu haben, dass es um Internetcafe-Software ging und da habe ich den Zusammenhang gezogen. Werde entsprechend editieren und nochmal sorry.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dertobis“ ()

    dertobis schrieb:


    Der Internetcafebetreiber (=Programmierer der Software?) hat aber wohl nachvollziehbarerweise ein Interesse daran die Verwendung seiner Rechner zu restriktieren. Ich sehe daran jetzt nichts Verwerfliches und schon gar nichts was man in Verbindung mit Schadsoftware bringen könnte.


    1.)Ich besitze aber dummerweise kein cafe...... ich weiß nicht wie du auf sowas kommst............

    2) @Gonger96 Die antivirenhersteller wollen neue viren da sie sonst keine käufer für ihre antiviren programme hätten

    3) Glaube ich nicht das meine Tagebuch.exe ein virus ist ( habe es immerhin selbst geschrieben ;) )
    !! It's not a bug it's a feature !!
    Für eine Art digitales Tagebuch wäre es genauso Quatsch. Lass den Nutzer sich anmelden mit Name & Passwort, Hash das Passwort (schön gesalzt und gepfeffert), speicher ihnirgendwo, wo er nicht austauschbar ist oder speicher ihn ggf. garnicht und verschlüssel die Texte mit eine Kombi aus Nutzername und Passwort. So kann keiner an die Texte ;)

    Gonger96 schrieb:

    Für eine Art digitales Tagebuch wäre es genauso Quatsch. Lass den Nutzer sich anmelden mit Name & Passwort, Hash das Passwort (schön gesalzt und gepfeffert), speicher ihnirgendwo, wo er nicht austauschbar ist oder speicher ihn ggf. garnicht und verschlüssel die Texte mit eine Kombi aus Nutzername und Passwort. So kann keiner an die Texte ;)


    Danke für den tipp (habe aber leider alles schon mehr oder weniger umgesetzt), außerdem bringt mir dein post in meiner thematik nicht weiter......... es wäre schön wenn du mir weiterhelfen würdest/könntest ;)
    !! It's not a bug it's a feature !!

    Gonger96 schrieb:

    Ist dir bewusst, dass man dein Programm komplett einsehen und ändern kann?


    Was hat das mit meiner aktuellen problematik zu tun? Und selbst wenn er es mit ILspy oder einem anderen programm ausliest, wen juckts?(was wollen die ausleser denn dann tun?)
    Außerdem brauche ich diesen befehl für mein "sicherheitsprotocol" das verhindern soll das man dann vergisst das man mein programm geöffnet hat.

    PS:
    "Ist es extrem nervig für den Nutzer"
    , Ist es nicht da du nicht wirklich weißt in welchem zusammenhang ich es benutze und außerdem hab ich diesen thread nicht erstellt um "designtipps" zu erhalten sondern lediglich um mein problem zu lösen.

    Trade schrieb:


    LostFocus. Das hat der TE eigentlich im letzten Thread schon kennengelernt.

    Stimmt jetzt sollte die form nur noch den "anklick-code" ausführen, den ich leider nicht habe. (also form im angeklickten zustand bringen)
    !! It's not a bug it's a feature !!

    PSPlover schrieb:

    Ist es nicht da du nicht wirklich weißt in welchem zusammenhang ich es benutze und außerdem hab ich diesen thread nicht erstellt um "designtipps" zu erhalten sondern lediglich um mein problem zu lösen.

    Dann wird dir auch keiner helfen, fertig. Wenn du fragst wie man am Besten Apfelkuchen mit Zitronen macht, wird man dir sagen "Nimm Äpfel".

    Gonger96 schrieb:

    Wenn du fragst wie man am Besten Apfelkuchen mit Zitronen macht, wird man dir sagen "Nimm Äpfel".


    Wie war nochmal meine fragestellung?

    Hier kannst du sie nachlesen : Form "Anklicken" lassen
    Das hat nichts mit Äpfel , Zitronen oder Kartoffeln zu tun!
    Wenn jemand ein programm programmiert und jetzt z.B: fragt: ,
    Wie werte ich das ergebnis einer messagebox aus?

    Kannst du auch nicht sagen:
    ​Messageboxen sind doch blöd! Benutze lieber eine eigene form


    Verstehst du? Ich will mein programm selber programmieren und daher frage ich welchen befehl man da verwenden muss. Außerdem brauche ich den befehl vielleicht später für ein anderes projekt.
    Ich habe niemanden gefragt was er von meinem Tagebuch/Notizprogramm oder meinen anderen programmideen hält.
    Desweiteren wäre es schön wenn du nicht wie ein spammer gleich immer schreist :
    ​OMG ER WILL NEN TROJANER PROGRAMMIEREN, THREAD GEMELDET!!!!!!!
    das ist einfach nur unsinnig da man (egal welchen befehl) als teil eines trojaners verwenden kann.Ich weiß das manche menschen in ihrer freizeit keine bessere tätigkeiten haben als anderen leuten etwas zu unterstellen bzw. irgendwelche verschwöhrungstheorien aufzustellen aber in diesen forum möchte man programmprobleme lösen und nicht leuten etwas unterstellen.(es sei den dieses forum heißt IL-Illuminatigeschichten.de v2.0, ich glaube du hast dich im forum geiirt)

    Ich hoffe das ich dich nicht angefahren habe, das war nicht persöhnlich gemeint aber ich hasse dieses gespamme in foren, und ich hoffe das du das in zukunft unterlässt.

    So und falls jemand die lösung für mein anklickproblem kennt wäre ich dankbar.
    !! It's not a bug it's a feature !!

    dertobis schrieb:


    Hast du dich schon mit der Lösung auseinandergesetzt, die Gonger96 in Post 3 geschrieben (hatte ich vorher auch bereits angedeutet) hatte?


    VB.NET-Quellcode

    1. ​Private Sub Form1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.LostFocus
    2. Me.Focus()
    3. End Sub


    Funktioniert nicht.
    Wenn ich neben dem programm (z.B aufn desktop klicke wird die form wieder grau)
    !! It's not a bug it's a feature !!
    Hab gerade

    VB.NET-Quellcode

    1. ​Private Sub Form1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.LostFocus
    2. Me.Activate
    3. End Sub


    Ausprobiert aber das ist echt hardcore , die ist ja immer instant vorne. Gibts da eine elegantere lösung?
    !! It's not a bug it's a feature !!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „PSPlover“ ()

    Da gibts afaik kein Event für, weil das ist ein Hack.
    Vorgesehen ist, dass der User bestimmt, welches Programm den Focus hat, und ebenfalls vorgesehen ist, dass klar erkennbar ist, welches das ist.
    Du willst dieses Standard-Verhalten abändern - hmm, ja, nennen wir es mal "ungewöhnlich".
    Und jdfs. ist nicht weiter verwunderlich, wenns keinen graden Weg dafür gibt, weil das verstößt gegen Grundkonzepte von Windows-Funktionalität.