@ JAck30lena
mouseleave bringt nicht viel, weil das auch beim Button-Überfahren innerhalb der Form stattfindet 😦
Du würdest ja rausbekommen ob das Event beim Button-Überfahren auslöst, oder eben wann Du es wirklich brauchst (einfach Prüfen ob an der Mouse location nen button ist oder nicht).
Ich denke das geht auch ohne Global-Hook.
//kalleberlin
Hallo Siassei,
ich würde einfach mittels WinPcap einen kleinen Sniffer basteln, der sämtlichen eingehenden Traffic abhört.
Da Du dadurch direkten zugriff auf die Pakete hast, sollte es recht simpel sein daraus den Traffic abzuleiten.
//Kalleberlin
Gerade eben beim Surfe 😉
[DllImport("user32.dll")]
private static extern Int32 EnableMenuItem ( System.IntPtr hMenu , Int32 uIDEnableItem, Int32 uEnable);
private const Int32 HTCAPTION = 0×00000002;
private const Int32 MF_BYCOMMAND =0×00000000;
private const Int32 MF_ENABLED =0×00000000;
private const Int32 MF_GRAYED =0×00000001;
private const Int32 MF_DISABLED =0×00000002;
private const Int32 SC_MOVE = 0xF010;
private const Int32 WM_NCLBUTTONDOWN = 0xA1;
private const Int32 WM_SYSCOMMAND = 0×112;
private const Int32 WM_INITMENUPOPUP = 0×117;
protected override void WndProc(ref System.Windows.Forms.Message m )
{
if( m.Msg == WM_INITMENUPOPUP )
{
//handles popup of system menu
if ((m.LParam.ToInt32() / 65536) != 0 ) // 'divide by 65536 to get hiword
{
Int32 AbleFlags = MF_ENABLED;
if (!Moveable)
{
AbleFlags = MF_DISABLED | MF_GRAYED; // disable the move
}
EnableMenuItem(m.WParam, SC_MOVE, MF_BYCOMMAND | AbleFlags);
}
}if(!Moveable)
{
if(m.Msg==WM_NCLBUTTONDOWN) //cancels the drag this is IMP
{if(m.WParam.ToInt32()==HTCAPTION) return;
}
if (m.Msg==WM_SYSCOMMAND) // Cancels any clicks on move menu
{
if ((m.WParam.ToInt32() & 0xFFF0) == SC_MOVE) return;
}
}
base.WndProc(ref m);
}
Hallo herbivore,
Insofern lag ich also doch richtig. 🙂
Das is ja das schlimme, Du hast fast immer recht 😄.
@Benni83,
da stimme ich Dir voll und ganz zu. Aber es ist halt auch so, solange man die genaue Syntax nicht kennt, kann man sich eben auch eine ganze menge Ärger einfangen.
Und Fakt ist auch, Regex ist ziemlich langsam!
Kalleberlin
Hallo alle,
also ich hab es jetzt so gelöst, das ich alle "lerrräume" die länger als 1 leerzeichen sind auf 1 gekürzt habe. so matcht er auch alles richtig wenn ich die leerzeichen ins pattern reinschreibe.
danke für eure hilfe.
@Benni83,
danke für den Tip, ich bin noch ziemlich blutiger anfänger in regex.
BTW: ich bin bis jetzt auch nicht davon überzeugt. langsam, schwer in der handhabung - da ist es für mich persönlich leichter das per hand zu implementieren. schneller wäre es dann auch. denke das war vorerst mein letzter regex ausflug^^
Kalleberlin
Hallo herbivore,
zwischen den letzen beiden Ziffern ist definitv immer (mindestens) ein Lerrzeichen.
Die Ausgangssituation ist so wie ich sie euch geschildert habe.
Kalleberlin
Hallo xxxprod,
wenn ich da jetzt Lerrzeichen rein setze, matcht gar nix mehr.
Ich habe den pattern ja auch mit dem Regex Tester getestet. Es funkioniert ja auch alles wunderbar. nur eben das letzte Ende ist falsch.
Hallo herbivore,
ich hatte in meinem Pattern noch nie lerrzeichen drin stehen. Und wie oben erwähnt, wenn ich die einsetze, matcht gar nix mehr.
Ich hab jetzt mal nur "([0-9]+) ([0-9]+)" hier ein leerzeichen eingesetzt, dann trifft auch nichts mehr...
Vielen dank für eure hilfe, aber nun bin ich verwirrt 🙁
Kalleberlin
Guten Morgen 😃,
Mein aktuelles Pattern:
protected const string SearchPattern =
@"([0-99]{2}\/[0-99]{2}\/[0-9999]{4})" +
@"([0-99]{2}\:[0-99]{2}\:[0-99]{2}\.[0-99]{2})" +
@"([0-99]{2}\:[0-99]{2}\:[0-99]{2}\.[0-99]{2})" +
@"([A-Z])" +
@"([0-99]{4}_[0-99]{16})" +
@"([A-Z][0-9])" +
@"([0-9]+)" +
@"([0-9]+)"
Mein aktueller String:
"09/08/2008 16:58:06.61 00:00:00.49 R 0000_0000000164750397 A4 3 90"
Mein aktueller debug im Anhang.
Gruß,
Kalleberlin
Hallo herbivore,
ich habe den Sourcecode leider gerade nicht da (auf Arbeit). Ich Sende morgen mal ein Screenshot vom debugger.
Den Wert selber hole ich mir mittels int.Parse aus der der Gruppe[index].
Ich hatte mein pattern (am ende) vor dem Forums eintrag so:
@"([0-99]$)" + //Hier happerts
@"([0-99]$)";
Ich denke mal das ich xxxprods pattern getestet habe, allerdings bin ich mir gerade ziemlich unsicher, da deine Aussagen so gut wie immer Hand und Fuss haben 😄.
Danke,
Kalleberlin
Hallo herbivore,
ohne dein Regex-Tester, hätte ich den suchpattern niemals so zustande bekommen 😄.
Und wegen 3 bzw 39, er matcht definitiv auf 39, sonst hätte ich mich nicht gemeldet 😉.
Ist es "falsch" das ich nur in die Gruppen schaue?
Kalleberlin
//edit:
In deinem Regex-lab, matcht es ja auch richtig 😕