Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 00:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#] Togglebutton Fehler.

Discussion on [C#] Togglebutton Fehler. within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2013
Posts: 40
Received Thanks: 0
Exclamation [C#] Togglebutton Fehler.

Ich habe ein kleines Anmeldeskript für einen Prozess namens game.bin geschrieben. Ich habe das ganze als Checkbox gemacht, um einen Togglebutton zu bekommen. Mit einem normalen Button hat soweit alles funktioniert(einziger Unterschied ist dass die Variable a immer gleich bleibt)
Ein zweiter Button diente dabei als Stop Button.

Es sollte zumindest bei einmaligem Klicken funktionieren!

Hier einmal der Teil des Toggle-Buttons:

Code:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            int a = 1;
            string pName = "game.bin";
            const uint WM_KEYDOWN = 0x0100;
            
            a = a - 1;

            Process[] processes = Process.GetProcessesByName(pName);

            foreach (Process p in processes)
                if (p.ProcessName == pName)
                {

                    while (a == 0) ;
                    ActivateApp(pName);
                    PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.E, 0);
                    System.Threading.Thread.Sleep(200);
                    PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.N, 0);
                    System.Threading.Thread.Sleep(200);
                    PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.D, 0);
                    System.Threading.Thread.Sleep(200);

                }
        }
End-of-Olymp is offline  
Old 06/30/2014, 15:51   #2


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
a ist lokal und kann daher nicht von einer 2. methode verändert werden, falls das, das problem ist.
dazu würde ich dir empfehlen mit Booleans zu arbeiten anstatt ints mit 1 und 0.
Requi is offline  
Thanks
1 User
Old 06/30/2014, 18:52   #3
 
elite*gold: 0
Join Date: Jun 2013
Posts: 40
Received Thanks: 0
Quote:
Originally Posted by Requi View Post
a ist lokal und kann daher nicht von einer 2. methode verändert werden, falls das, das problem ist.
dazu würde ich dir empfehlen mit Booleans zu arbeiten anstatt ints mit 1 und 0.

Ich habe die a Variable jetzt zusammen mit dem a=a+1 in die if klammer gepackt, aber nunmehr macht das Programm gar nichts mehr außer sofort freezen, wenn ich den start button klicke!

Könnte mir dazu jemand einen Tipp geben:
(und noch wichtiger: Momentan kann man kein zweites Mal auf start klicken, da man im Fenster sofort nichts mehr machen kann)

Wie kann ich den Wert einer Boolean ändern(also bspw. nach false )?

Code:
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            string pName = "game.bin";
            const uint WM_KEYDOWN = 0x0100;

            Process[] processes = Process.GetProcessesByName(pName);

            foreach (Process p in processes)
                if (p.ProcessName == pName)
                {
                    int a = 1;
                    a = a - 1;
                    while (a == 0) ;
                    ActivateApp(pName);
                    PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.E, 0);
                    System.Threading.Thread.Sleep(200);
                    PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.N, 0);
                    System.Threading.Thread.Sleep(200);
                    PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.D, 0);
                    System.Threading.Thread.Sleep(200);

                }
End-of-Olymp is offline  
Old 06/30/2014, 19:31   #4
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
while (a == 0) ;
Deswegen freezt dein Programm. Machst die ganze Zeit einfach nichts.
th0rex is offline  
Thanks
1 User
Old 06/30/2014, 19:33   #5


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by omitma View Post
while (a == 0) ;
Deswegen freezt dein Programm. Machst die ganze Zeit einfach nichts.
Und weil alle Methoden im UI Thread laufen.
Requi is offline  
Old 06/30/2014, 19:51   #6
 
elite*gold: 0
Join Date: Jun 2013
Posts: 40
Received Thanks: 0
Quote:
Originally Posted by omitma View Post
while (a == 0) ;
Deswegen freezt dein Programm. Machst die ganze Zeit einfach nichts.
Vielen Dank an euch beide. Das war es.
Nun funktioniert alles wie es gedacht war!

So ein simpler Fehler

Könntest du mir eventuell noch erklären, wie ich eine Boolean Variable von bspw. true nach false stelle?
Mit welchem Befehl mache ich das?
End-of-Olymp is offline  
Old 06/30/2014, 21:06   #7




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by End-of-Olymp View Post
Vielen Dank an euch beide. Das war es.
Nun funktioniert alles wie es gedacht war!

So ein simpler Fehler

Könntest du mir eventuell noch erklären, wie ich eine Boolean Variable von bspw. true nach false stelle?
Mit welchem Befehl mache ich das?
Code:
Boolean b = true; //ist am anfang wahr

b = false; // wird dann falsch
stotterer09 is offline  
Old 07/01/2014, 02:39   #8
 
elite*gold: 1
Join Date: Aug 2013
Posts: 1,898
Received Thanks: 1,346
Du brauchst doch gar keinen bool?
Code:
//private bool AllowChanges = true;
private string pName = "game.bin";
private const uint WM_KEYDOWN = 0x0100;

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
                Process[] processes = Process.GetProcessesByName(pName);

                while (checkBox1.CheckState == CheckState.Checked)
                {
                  foreach (Process p in processes)
                   {    
                       if (p.ProcessName == pName)
                        {
                            ActivateApp(pName);
                          PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.E, 0);
                           System.Threading.Thread.Sleep(200);
                           PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.N, 0);
                          System.Threading.Thread.Sleep(200);
                          PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.D, 0);
                          System.Threading.Thread.Sleep(200);
                     }
                 }
            }
  
        }
        
        
        
        
        private void stopButton_Click(object sender, EventArgs e)
        {
                checkBox1.CheckState = CheckState.Unchecked;
        }
Black Tiger ツ is offline  
Thanks
1 User
Reply

Tags
c#, problem


Similar Threads Similar Threads
So ein Fehler gibt es nicht, DB alels funzt ingame Fehler -.-
01/19/2012 - Metin2 Private Server - 6 Replies
Hey Com, ich habe alles gestartet (Hamachi Daroo Files). Navicat geht, alles funzt nur folgendes: Wenn ich mich mit falschen Logins einlogge: Dieser Account existiert nicht. Wenn ich richtige Daten eingebe: Fehler beim Verbinden mit dem Server
Infinite Aion: Fehler (1024) Fehler beim initialisieren des Spiels
06/09/2011 - Aion Private Server - 5 Replies
Hi Leute, ich hab ein Probem mit AION: jedesmal wenn ich starte, egal ob mit dem NCSoft Launcher oder mit dem Infinite Aion Launcher kommt die Meldung Fehler beim initialisieren des Spiels... Hab schon alle möglichen Sprachkombinationen durchprobiert, da es überall heißt man soll Region und Sprache beim NCSoft Launcher ändern und dann gehts... Alles probiert, und siehe da: geändert hat sich nichts... Immer noch der Fehler 1024... wäre nett, wenn mir da jemand helfen könnte und auch...
Fehler : java.net.socet.exception:connection reset fehler bitte um hilfe
12/21/2010 - Minecraft - 9 Replies
Hab denn java.net.socet.exception:connection reset fehler immer und immer wieder :( könnt ihr mir dabei vill helfen? :) LG DieVerrückteMango =)



All times are GMT +1. The time now is 00:47.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.