Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Kalleberlin
Thema: Form an Mauszeiger binden
Am im Forum: GUI: Windows-Forms

Zitat von axawd
@ 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

Thema: Datenmenge von allen Ports ermitteln
Am im Forum: Netzwerktechnologien

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

Thema: [Artikel] Custom Window Border für Form's
Am im Forum: Artikel

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);
}

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

Zitat von herbivore
Insofern lag ich also doch richtig. :-)

Das is ja das schlimme, Du hast fast immer recht :D.

@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

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

zwischen den letzen beiden Ziffern ist definitv immer (mindestens) ein Lerrzeichen.

Die Ausgangssituation ist so wie ich sie euch geschildert habe.

Kalleberlin

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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 :D.


Danke,

Kalleberlin

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

ohne dein Regex-Tester, hätte ich den suchpattern niemals so zustande bekommen :D.

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 :/

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo xxxprod,

ich sehe da jetzt gerade keine Änderung im vergleich zu meinem .

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo xxxprod,

danke für die schnelle Antwort :).

ok, ich poste nun doch den ganzen String :).

Ein Beispiel wäre

"09/08/2008 16:58:06.61 00:00:00.49 R 0000_0000000164750397 A4 3 90"


Mein Pattern dazu:

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]+)" + //Hier happerts
@"([0-9]+)";

Bei dem beispiel oben, hab ich 39 anstatt 3.

Thema: Regex match "falsch"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo liebe Gemeinde :),

kleines Problem, große Ursache:

Mein String kann so:

"3 90"

oder aber z.b:

"14 55"

so aussehen.

Wenn ich nun als pattern "[0-9]" angebe, bekomme ich die 3, aber nicht die 14 (ist dann 1). Wenn ich "[0-9]*" angebe, bekomm ich die 14, aber auch 39. Wie kann ich das anstellen das ich beides richtig bekomme?

Bitte nicht wundern das ich dafür Regex verwende, der String ist an sich wesentlich komplexer, nur hier happerts irgendwie :(.



Besten dank im vorraus,

Kalleberlin

PS: Ja ich hab das Regex-Tutorial hier im Forum schon gelesen, komme aber leider trotzdem nicht weiter...

Thema: Nur jeden vierten Index picken
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ach ich Idiot :D!!!
An i += 4 innerhalb der for-Schleife hab ich depp gerade natürlich nicht gedacht!!

Bestes Zeichen zum schlafen gehen

Gute Nacht

Thema: Nur jeden vierten Index picken
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore ,

du selbst sagst doch aber :

Zitat von herbivore
wenn man solche Schleifen baut, um dann im Rumpf auf a, a[i+1], a[i+2] und a[i+3] zuzugreifen, dann musst bei der Schleifenbedingung aufpassen. i < a.Length wäre dann fatal, wenn nicht sichergestellt ist , dass die Anzahl der Element durch 4 teilbar ist.[/quote]

Was wiederum eine weitere Prüfung nach sich ziehen würde...
Das vermeidet man mittels des % Operators.

Kalleberlin

//Edit:

Und ob warum soll i+=4 schneller als i % 4 == 0 sein?

Thema: Nur jeden vierten Index picken
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von 7.e.Q
b: was, wenn während eines Schleifendurchlaufs in einem anderen Thread das Array oder ein Eintrag geändert, verschoben, getauscht, etc. wird?

Ok, ich denke da hast Du recht. Ich weiss es zwar nur ganz genau wenn wir von einer List<T> sprechen würden (da würde es auf jedenfall knallen), deshalb denke ich Du hast da recht :D.

Kalleberlin

Thema: Nur jeden vierten Index picken
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo 7.e.Q,

vebesser mich wenn ich falsch liege, aber

a: Was ist daran nicht C# Werkzeug?
b: Was ist daran nicht Threadsafe?

Kalleberlin

Thema: Nur jeden vierten Index picken
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Alle ,

ich will jetzt nicht klugscheissen aber winSharp93 hat doch schon die (meiner Meinung nach) eleganteste Lösung verraten.

Zitat von winSharp93
in diesem Zusammenhang ist auch der Modulo Operator oft hilfreich.

for(int i = 0; i < Array.Length;i++)
{
    if(i % 4 == 0)
    {
        //muh
    }
}


Schneller, simpler und leserlicher gehts doch nicht, oder?


Kalleberlin

Thema: Trackbar mit 2:1 Übersetzung
Am im Forum: GUI: Windows-Forms

Hallo muntablues,

du kannst doch selber bestimmen wann und wieviel sich die Trackbar bewegt. In deinem Fall einfach den eigentlich Wert / 2 bewegen^^.


Kalleberlin

Thema: Datenpakete senden zu MAC Adressen
Am im Forum: Netzwerktechnologien

Hallo linoge,

ich weiss zwar nicht ob man mit dem Link, mit Kanonen auf Spatzen schiesst, aber ein Versuch ist es denke ich allemal Wert.

Damit kannst Du dir deine TCP Packets selbst erstellen, und verschicken wohin Du magst.

Das hier wäre ein Bespiel wie man das ganze bewerkstelligt. Ich selbst hab mit dieser Libary bisher nur gute Erfahrungen gesammelt.

Hope that helps,

Kalleberlin

Thema: 3d explosion in xna ? wie am besten
Am im Forum: Grafik und Sound

Hallo rizi,

Kleines Tutorial.

Vielleicht reicht Dir das ja schon


Kalleberlin

Thema: nonComVisibleBaseClass
Am im Forum: Rund um die Programmierung

Hallo ihr

Ich bin grad ein bissel am verzweifeln, bei dem versuch einen kleinen Wrapper mittels P/Invoke zu schreiben.

Folgende Struktur verwende ich im moment:

Eine Wrapper klasse, welche mit mittels DLLImport die Methoden zur verfügung stellen


public sealed class Wrapper
{
   DllImport
   static Foo(Object a, Object b)
   ....
}

Nun eine Zweite klasse, welche die methoden ausführen soll


public class WrapConsumer
{
   Public WrapConsumer(Object a, Object b)
  {
      Wrapper.Foo(a,b);
  }
}

Wenn ich das jetzt so aufrufe, bekommen ich o.g Exception.
Ein wenig blättern in der MSDN ergibt folgende aussage:
Zitat
Ursache:
Aufgrund von potenziellen Versionsproblemen kann die Laufzeit keine QueryInterface-Aufrufe für die Klassenschnittstelle oder die IDispatch-Standardschnittstelle einer in COM sichtbaren Klasse zulassen, die von einer nicht in COM sichtbaren Klasse abgeleitet ist. Beispiel: Falls der nicht in COM sichtbaren Basisklasse öffentliche Member hinzugefügt werden, wird die Konsistenz des Codes von vorhandenen COM-Clients, die die abgeleitete Klasse verwenden, möglicherweise zerstört, weil die vtable der abgeleiteten Klasse, die die Member der Basisklasse enthält, hierbei geändert würde. Bei expliziten Schnittstellen, die für COM verfügbar gemacht wurden, tritt dieses Problem nicht auf, weil deren vtable die Basismember der Schnittstellen nicht enthält.

Lösung:
Machen Sie die Klassenschnittstelle nicht verfügbar. Definieren Sie eine explizite Schnittstelle, und wenden Sie das ClassInterfaceAttribute-Attribut auf die Schnittstelle an.

So, jetzt dachte ich, ein einfaches "[ComVisibleAttribute(true)]" über meiner WrapConsumer klasse hilft. leider nicht

Ich wer aus den angaben der MSDN einfach nicht schlau :(. Leider gibts bei google auch keine Lösungsansätze.

Vielleicht wisst ihr ja wie man dem beikommen könnte

Danke

Thema: uint[] to void* ?
Am im Forum: Rund um die Programmierung

Hallo kyoko12,

vielen Dank für diesen Hinweis .

Gruß Kalleberlin.

Thema: uint[] to void* ?
Am im Forum: Rund um die Programmierung

Hallo Ihr ,

nach langer Zeit hab ich mal wieder eine Frage an euch :P.

Ich bin gerade dabei ein c++ libary nach c# zu portieren.
Diese lib ist "nur" ein Addon für ein grösseres Project, welches auch in c++ geschrieben is. Wie auch immer, dafür gibts einen Wrapper (für das grosse Project (aka Mogre)).

Lange rede kurzer Sinn:

Die Methode die Ich aufrufen möchte, hat folgende Parameter:


void writeData(uint offset, uint length, void* pSource,
					bool discardWholeBuffer) ;

In meinem fall ist pSource ein uint[] Array.

Ich hab jetzt schon einige Zeit gegoogled, hier im Forum gesucht, aber irgendwie komme ich partou nicht drauf wie ich mein Array nach void* casten kann. Ich hab Marshal.bla versucht.

Ich hab auch Varianten alla:


void Foo([MarshalAs(UnmanagedType.LPArray)] uint[] Arr);

versucht. Leider vergeblich :(.

Ich wär euch sehr verbunden wenn Ihr mir hier weiterhelfen könntet

Gruß Kalleberlin

Thema: Posted eure letzte Zwischenablage!
Am im Forum: Smalltalk

pass in quick on ex0 proto tcp from 10.3.201.64/27 to paup port = ms-wbt-server keep state

Was man alles so in der Zwischenablage hat =)

Thema: MusicMaker Projek Braucht hilfe
Am im Forum: Projekte

Hallo Xx tja xX,

versprecher hin oder her, Du bist leider mit keiner einzigen Silbe auf den Projekt source eingegangen.

Besteht die Möglichkeit das mal zu sehen? Denn nur mit deinem 2000+ Zeilen-Code-Monstrum kann man nicht wirklich was anfangen .


Gruß Kalleberlin

Thema: MusicMaker Projek Braucht hilfe
Am im Forum: Projekte

Hallo Xx tja xX ,

kannst Du vll. das gesamte Projekt mal irgendwo hochladen?

Thema: Shift Operator
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo alle zammen,

Zitat von markus.bodlos
Zitat
Sorry ich hab davon genau 0 Plan
ist ja egal aber eine Suchmaschine kannst sicher bedienen....

Vielleicht vorher selbst mal die Suchmaschine anschmeissen .
Zitat von frank#
Aber man kann vorher auf uint casten und dann shiften.

Danke, das wusst ich nicht


Gruß Kalleberlin - (was ein trauriges Fussballspiel )

Thema: Shift Operator
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo allerseits,

gibt es das von Java bekannte vorzeichenlose Right Shift >>> in C#?

Oder irgendwas äquivalentes?

Sorry ich hab davon genau 0 Plan

Gruß Kalleberlin

Thema: UtilitiesLib: Global Skinning, Widgets, DockingControler, Hooks
Am im Forum: .NET-Komponenten und C#-Snippets

Hallo Andreas.May,

wie schauts aus?

Ich werde demnächst wieder mehr Zeit haben, gibt es inzwischen schon SVN Zugriff?


Gruß Kalleberlin

Entwickelt mit ♥ und ASP.NET Core. Version 0.1.343+72512b0987 vom Uhr. Betrieben auf Azure App Service (debian.10-x64 mit .NET 6.0.0-rtm.21522.10)
Copyright 2003-2021 myCSharp.de - Alle Rechte vorbehalten. Benutzerinhalte unterliegen cc-by-sa 4.0