Integer (21.10.2014)
-
20.10.2014, 01:06 #1
- Registriert seit
- 01.12.2011
- Beiträge
- 135
Thanked 75 Times in 53 Posts...............
Hallo Leute, ich hoffe ihr könnt mir hier weiter helfen.
ich habe die globalKeyHook-Klasse und den Quelltext von folgender Seite entnommen: A Simple C# Global Low Level Keyboard Hook - CodeProject
Mein Code ist folgender
using System;
using System.Windows.Forms;
using Utilities;
namespace Bind
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
globalKeyboardHook gkh = new globalKeyboardHook();
gkh.HookedKeys.Add(Keys.A);
gkh.KeyPressed += new KeyEventHandler(gkh_KeyPressed);
}
void gkh_KeyPressed(object sender, KeyEventArgs e)
{
//Folgende Methode funktioniert einwandfrei
//MessageBox.Show("Du hast etwas gedrueckt");
//Bei der kopieren()-Methode tritt das Problem auf
kopieren();
e.Handled = true;
}
}
}
}
Das Problem ist, wenn ich die MessageBox.Show()-Methode ausführe, denn klappt alles wunderbar. Ich kann beliebig oft die A-Taste drücken und immer kommt eine Meldung.
Wenn ich allerdings die kopieren()-Methode anwende, denn funktioniert der A-Knopf nur einmalig. Sollte ich danach irgendwelche anderen Tasten drücken, so schmiert das Programm ab und ich erhalte eine Fehlermeldung:
Die Kopieren-Methode macht folgendes:
1. Sie kopiert eine .LOG-Datei und speichert sie als .txt-Datei.
2. Die .txt-Datei wird in eine Textbox geladen
3. Die Textbox wird von unten beginnend auf ein bestimmtes Zeichen untersucht
4. Wenn das Zeichen auftaucht, denn wird die Zeile, in der das Zeichen auftaucht, im string gespeichert.
5. Der string (Textzeile) wird in eine zweite Textbox übergeben
6. Die zweite Textbox wird als .CFG-Datei gespeichert
Soweit so gut: die kopieren()-Methode funktioniert ohne KeyHook soweit ganz gut...
private void kopieren()
{
//1. Schritt: Datei kopieren und neu speichern
string fileName = "qconsole.LOG";
string sourcePath = @"C:\Program Files (x86)\Soldier of Fortune II - Double Helix MP TEST\demo\MP\";
string targetPath = @"C:\Program Files (x86)\Soldier of Fortune II - Double Helix MP TEST\demo\MP\";
string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
string destFile = System.IO.Path.Combine(targetPath, "sbind.txt");
System.IO.File.Copy(sourceFile, destFile, true);
//string[] files = System.IO.Directory.GetFiles(sourcePath);
//2. Schritt: Datei wird in Textbox geladen
richTextBox1.LoadFile(@"C:\Program Files (x86)\Soldier of Fortune II - Double Helix MP TEST\demo\MP\sbind.txt", RichTextBoxStreamType.PlainText);
//3. Schritt: Textbox wird von hinten beginnend untersucht
string temp = "";
for (int i = richTextBox1.Text.Length - 1; i > 0; i--)
{
if (richTextBox1.Text[i] == ':')
{
//4. Schritt: Die Zeile in der das Zeichen ":" auftaucht wird im string temp gespeichert
for (int j = i + 1; j < richTextBox1.Text.Length; j++)
{
temp += richTextBox1.Text[j];
if (richTextBox1.Text[j] == '\n')
j = richTextBox1.Text.Length;
}
//5. Schritt: der string temp wird in der 2. Textbox gespeichert
i = 0; richTextBox2.Text = "say " + temp;
}
}
//6. Schritt: Die zweite Textbox wird gespeichert
richTextBox2.SaveFile(@"C:\Program Files (x86)\Soldier of Fortune II - Double Helix MP TEST\demo\output.CFG", RichTextBoxStreamType.PlainText);
}
Habt ihr vielleicht eine Ahnung?
Lieben GrußGeändert von Gast78236 (24.10.2014 um 12:35 Uhr)
-
21.10.2014, 13:33 #2
- Registriert seit
- 01.12.2011
- Beiträge
- 135
Thanked 75 Times in 53 PostsAW: C# KeyHook-Fehler: CallbackOnCellectedDelegate
Push it : ) :
Geändert von Gast78236 (24.10.2014 um 12:35 Uhr)
-
21.10.2014, 17:12 #3
- Registriert seit
- 12.10.2014
- Beiträge
- 23
Thanked 0 Times in 0 PostsAW: C# KeyHook-Fehler: CallbackOnCellectedDelegate
Hey, ich besuche eine HTL und wir programmieren auch mit C#, ich kann bei dem kleinen Stück code nichts anfangen, aber ich kann dir nur sagen debuggen debuggen debuggen... Oder einen try und catch block um das ganze.
-
21.10.2014, 18:11 #4
- Registriert seit
- 12.12.2011
- Beiträge
- 39
Thanked 24 Times in 16 PostsAW: C# KeyHook-Fehler: CallbackOnCellectedDelegate
Hast du bereits versucht, die Vorschläge aus der Comments Section umzusetzen?
A Simple C# Global Low Level Keyboard Hook - CodeProject
Weitere Informationen: callbackOnCollectedDelegate MDA
Das Problem scheint auch nicht immer aufzutreten, sondern eher zufällig, wodurch ein Reproduzieren des Fehlers schwer ist.Geändert von KrT (21.10.2014 um 19:22 Uhr)
-
The Following User Says Thank You to KrT For This Useful Post:
-
21.10.2014, 21:31 #5
- Registriert seit
- 26.10.2011
- Beiträge
- 1.196
- Blog Entries
- 2
Thanked 1.596 Times in 725 PostsAW: C# KeyHook-Fehler: CallbackOnCellectedDelegate
Geh mal so vor: Du kommentierst die letzte Codezeile von der "kopieren"-Methode aus. Gehts dann? Wenn nicht, kommentiere die nächste aus usw. Sobald es geht, weißt du so ungefähr an welcher Zeile es hängt. So mach ich das meistens, wenn debuggen nicht hilft.
Ansonsten, die "Kopieren"-Funktion mal asynchron aufrufen.
Hat es eigentlich irgendeinen Zweck die Datei erst zu kopieren, dann auszulesen und dann erst auf den Inhalt zu überprüfen? Warum nicht sofort die Sourcedatei auslesen und überprüfen?
-
21.10.2014, 21:50 #6
AW: C# KeyHook-Fehler: CallbackOnCellectedDelegate
Zitat von KrT
@TE
Du kannst erst einmal das aus der Comment-Section ausprobieren (einen Link dazu hat KrT bereits gepostet), ansonsten kannst du versuchen, mit der KeepAlive-Methode der Klasse GC, das Delegate keyboardHookProc am Leben zu erhalten.
-
22.10.2014, 00:34 #7
- Registriert seit
- 01.12.2011
- Beiträge
- 135
Thanked 75 Times in 53 PostsAW: C# KeyHook-Fehler: CallbackOnCellectedDelegate
Hey, erstmal herzlichen Dank für die zahlreichen Hilfestellungen! Ich werde das an einem anderen Zeitpunkt noch mal prüfen und dann berichten!
Die Datei wird von anderen Programmen verwendet und ich habe es anders erst mal nicht geschafft, die Datei einzulesen. Darum habe ich sie kopiert und dann eingelesen. Ich glaube aber auch, dass es Probleme gab eine .LOG-Datei in die Textbox zu laden.Geändert von Gast78236 (24.10.2014 um 12:35 Uhr)
Ähnliche Themen
-
[CS:GO] Fehler
Von Gangstersheep im Forum Counter StrikeAntworten: 0Letzter Beitrag: 03.11.2012, 22:24 -
SSL-FEHLER
Von Kingbubi2 im Forum SoftwareAntworten: 2Letzter Beitrag: 26.06.2012, 21:31 -
Fehler
Von helfen im Forum Fragen & ProblemeAntworten: 6Letzter Beitrag: 06.03.2012, 18:13 -
[Fehler] Aktivitätsbalken?
Von Invicible im Forum SupportAntworten: 1Letzter Beitrag: 15.02.2012, 17:27 -
CSS und PHP fehler
Von AnqeL im Forum SkriptsprachenAntworten: 15Letzter Beitrag: 21.07.2011, 21:35
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.