Laden...

Forenbeiträge von Kalleberlin Ingesamt 165 Beiträge

05.05.2009 - 12:16 Uhr

@ 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

20.04.2009 - 09:01 Uhr

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

24.02.2009 - 22:40 Uhr

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

02.12.2008 - 11:16 Uhr

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

02.12.2008 - 10:12 Uhr

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

02.12.2008 - 09:16 Uhr

Hallo herbivore,

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

Die Ausgangssituation ist so wie ich sie euch geschildert habe.

Kalleberlin

02.12.2008 - 09:10 Uhr

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

02.12.2008 - 08:50 Uhr

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

01.12.2008 - 19:30 Uhr

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

01.12.2008 - 19:18 Uhr

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 😕

01.12.2008 - 16:38 Uhr

Hallo xxxprod,

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

01.12.2008 - 16:15 Uhr

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.

01.12.2008 - 15:58 Uhr

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

26.11.2008 - 00:03 Uhr

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

Bestes Zeichen zum schlafen gehen 😁

Gute Nacht 🙂

25.11.2008 - 23:52 Uhr

Hallo herbivore 🙂,

du selbst sagst doch aber :

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.

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?

25.11.2008 - 23:44 Uhr

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 😄.

Kalleberlin

25.11.2008 - 23:37 Uhr

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

25.11.2008 - 23:22 Uhr

Hallo Alle 🙂,

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

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

25.11.2008 - 22:43 Uhr

Hallo muntablues,

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

Kalleberlin

03.11.2008 - 21:57 Uhr

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 🙂

28.10.2008 - 09:51 Uhr

Hallo rizi,

Kleines Tutorial.

Vielleicht reicht Dir das ja schon 🙂

Kalleberlin

11.10.2008 - 16:37 Uhr

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:

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 🙂

06.09.2008 - 00:46 Uhr

Hallo kyoko12,

vielen Dank für diesen Hinweis 🙂.

Gruß Kalleberlin.

05.09.2008 - 21:52 Uhr

Hallo Ihr 🙂,

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

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

05.08.2008 - 13:20 Uhr

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 =)

30.07.2008 - 14:37 Uhr

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

29.07.2008 - 16:06 Uhr

Hallo Xx tja xX 🙂,

kannst Du vll. das gesamte Projekt mal irgendwo hochladen?

12.06.2008 - 23:08 Uhr

Hallo alle zammen,

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

Vielleicht vorher selbst mal die Suchmaschine anschmeissen 😉.

Aber man kann vorher auf uint casten und dann shiften.

Danke, das wusst ich nicht 🙂

Gruß Kalleberlin - (was ein trauriges Fussballspiel 🙁 )

12.06.2008 - 15:53 Uhr

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 🙂

04.06.2008 - 15:10 Uhr

Hallo Andreas.May,

wie schauts aus? 🙂

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

Gruß Kalleberlin

03.06.2008 - 18:15 Uhr

Hallo alle zusammen,

also ich würde nicht behaupten das ich süchtig bin, aber mir macht es jede menge spass irgendwas zu entwickeln. Es macht einfach spass ein problem zu haben und das dann erfolgreich zu lösen 🙂

31.05.2008 - 19:55 Uhr

Während der Iteration würde ich das nicht machen. Merk Dir am besten welches element das Letzte war, und remove (List.Remove()) es dann.

19.05.2008 - 19:46 Uhr

Hallo Ihr, ich mal wieder 🙂.

Diesesmal hab ich ein irgendwie seltsames verhalten bei folgendem Code endeckt:


        public Stream ReadUrl(String url)
        {
            Uri uri = new Uri(url);
            WebRequest req = WebRequest.Create(uri);
            try
            {
                WebResponse resp = req.GetResponse(); //Um diese Zeile gehts.
                Stream stream = resp.GetResponseStream();
                StreamReader sr = new StreamReader(stream);
                return stream;
            }
            catch { }
        return null;
        }

Bei genannter Zeiler geschieht folgendes:
Beim ersten mal öffnen, funktioniert alles wunderbar. Beim zweiten mal öffnen bleibt allerdings die komplette Anwendung einfach stehen. Keine Exception, nix sie bleibt einfach stehen. Warum?

Gruß Kallerberlin

PS: Die Anwendung selbst ist komplett nackt (neues Project, das einzeige was drinsteht ausser dieser Methode ist


StreamReader sr = new StreamReader(ReadUrl(url));

//Tante Edit:

Ok, Die Anwendung stirbt nicht, es gibt "nur" ein WebException aufgund eines TimeOuts. Soweit sogut. Nur frage ich mich warum nachdem es einmal Funktioniert hat das ganze in einem TimeOut endet. Ich hab den TimeOut jetzt mal per Hand auf 3 sekunden gestellt, 5 mal versucht, jedes mal ein Timeout!

Bug? 😁

//Tante Edit 2:
Ok, des Rätsels Lösung:
Dispose!
Find ich zwar ziemlich gemein von MS das nicht zu verraten, aber scheinbar muss hier disposed werden.

mittels:


using(WebResponse resp = req.GetResponse())
{
    .....
}

gehts auch. Viel spass damit 😁

16.05.2008 - 19:02 Uhr

Vielen Dank Ihr beiden, das war genau das wonach ich gesucht habe 🙂

Gruß KalleBerlin

16.05.2008 - 16:16 Uhr

Hallo Ihr 🙂,

gibt es so eine Methode wie im Titel beschrieben? Sinn der Sache soll sein das ich sehe wer diese Methode aufgerufen hat. So das ich zum Beispiele sehe :

GetMethodCaller().ToString() wäre als Ergbeniss dann irgendwas Foo.Aufrufer.

Gibt es sowas? Ich hab leider irgendwie nicht die richtigen Suchbegriffe.

Danke und Gruß
KalleBerlin 🙂

08.05.2008 - 11:39 Uhr

Hallo jogibear9988


if(invoke)
else
do.Something.

Gruß Kalleberlin

08.05.2008 - 11:07 Uhr

Hallo wololo,

poste doch am besten mal den Inhalt deiner Schleife 🙂. Ich denke anders kommen wir hier nicht weiter 😉

Gruß Kalleberlin

08.05.2008 - 10:54 Uhr

Hallo wololo,

for(int i= 0; i < 26; i++)
{
    Console.WriteLine("i = " + i.ToString());
}

Sollte das auch nochmal veranschaulichen.

08.05.2008 - 10:39 Uhr

Also, die Schleife die Du hier gepostet hast, ist vollkommen i.O. .

Vielleicht hast Du irgendeine Abbruchbedingung in deiner Schleife?

Gruß Kalleberlin

08.05.2008 - 10:34 Uhr

Hallo wololo,

funktioniert die Schleife generell nicht, oder meinst Du er hört bei 25 auf?

Gruß Kalleberlin

08.05.2008 - 09:22 Uhr

Hallo Scarecraft,

kannst Du dazu mal ein wenig code posten?

Gruß Kalleberlin

06.05.2008 - 13:50 Uhr

Man muss wie immer nur den richtigen Suchbegriff kennen 😄.

Danke Fzelle, das Control trifft schon ziemlich gut was ich wollte. Dank source kann ich das auch fix auf meine Bedürfnisse umstellen.

Danke und Gruß
Kalleberlin 🙂

06.05.2008 - 09:08 Uhr

Hallo blackcoin,

genannte Seite hab ich natürlich schon geprüft, aber leider nix gefunden 😦. Und selber machen wollte ich mir sparen 🙂.

Gruß Kalleberlin

30.04.2008 - 11:27 Uhr

Hallo Ihr 🙂

wie die Überschrift bereits ankündigt, suche ich nach einem TabControl, das folgendes feature hat:

Vielleicht kennt Ihr ja diese + knöpfe bei manchen News seiten. So das man den Inhalt aufklappen kann. Sowas wär schick.

Aber wenn Ihr noch ein anderes, gutes TabControl kennt, immer her damit 🙂

Gruß Kallerberlin

//Edit:

Hehe, ich dachte ich bekomme gleich 1000 Links gepostet, kennt keiner sowas in der Art? 😉

28.04.2008 - 08:57 Uhr

Rom war auch nicht an einem Tag erbaut 😁

25.04.2008 - 08:34 Uhr

[EDIT]Abgeteilt von Datenbank Fehlermeldungen im Forum[/EDIT]

Hallo herbivore,
Wie wird man eigentlich "Power-User" ?

Gruß Kalleberlin

25.04.2008 - 08:25 Uhr

Hallo ANSI_code,

wenn die ICQ Komponenten die selben Classnamen haben, haben sie dann auch den selben Titel? Darüber könnte man noch filtern. Wenn das auch der Fall sein sollte, kannst Du auch noch die Position mit einbeziehen.

Zum Thema Interagieren:
Was möchtest Du denn machen? Was schreiben, was drücken oder schliessen?

Schau Dir dazu mal SendMessage(),PostMessage() oder SendInput() an (um nur einige zu nennen). Denke damit solltest Du weiter kommen.

Dann noch eine Frage, warum packst Du das in einen unsafe Kontext?

Gruß Kalleberlin

24.04.2008 - 10:25 Uhr

Hallo Andreas.May,

nichts leichter als das 🙂.
Assembla benutze ich für meine SVN projekte. Performance ist gut, eigentlich immer erreichbar, kostenlos (nicht! umsonst 😄) und hat eine menge Funktionen 😉.

Gruß
Kalleberlin

24.04.2008 - 09:05 Uhr

Hallo Andreas May,

sehr, sehr cooles Projekt 🙂.
Was würdest Du denn von einem Public SVN halten? Im jetzigen status wird es denke ich noch nicht so schwer sein mit einzusteigen, und jeder der lust hätte mitzuwirken, hätte ruckzuck den Code bei der Hand 🙂.

Im moment stecke ich leider noch meinem aktuellen Projekt fest, aber so eine skin komponente wollte ich schon immer mal machen.

Gruß Kalleberlin 🙂

23.04.2008 - 11:20 Uhr

Hallo Th69,

das hatte ich schon versucht, aber vielleicht auch falsch? Das wäre natürlich eine elegantere Lösung. Naja, es läuft erstmal 😁