Laden...

Profil von Regenwurm

myCSharp.de - Member Mitglied seit

Alle Beiträge

Hi Michael,

Perfekt!
Nun ist die null Überprüfung dann wohl überflüssig.

Vielen Dank!

Hi Michael,

Das mti dem Count ist mir vorhin gerade auch aufgefallen.. beträgt dieser < 1 wird eine Exception geworfen. Ich habe nun auch eine entsprechende If-Abfrage vorne hingesetzt.

Wie meinst du das genau mit dem Any?
Die Funktion muss nur überprüfen ob eine Person in einer bestimmten Tabelle bereits existiert.

Gruess,
Regenwurm

Hallo,

Ich habe eine LINQ Abfrage vor mir.
In der Abfrage sollen 4 Werte (je 2) miteinander verglichen werden.
Leider ist bei einer Abfrage der eine Typ als int vorhanden & der andere als string.

Wenn ich entweder ein Int.ToString() oder Convert.ToInt32() resp. Int32.Parse in die Abfrage setzen will, erhalte ich eine Exception > Fehlermeldung:

Exception Details: System.NotSupportedException: LINQ to Entities does not recognize the method 'Int32 Parse(System.String)' method, and this method cannot be translated into a store expression.

Was kann ich dagegen tun (ohne den Datentyp explizit in den Klassen zu ändern)?

        bool bInPersonTable =  (CompPerson.LoadPersonList().First(
                                    p => p.PersId == Int32.Parse(pNew.PersonenId) || p.UserID == pNew.UserId)
                                ) != null);

Gruess,
Regenwurm

€: ja pNew.PersonenId könnte ich vor der Abfrage konvertieren - aber geht das nicht anders? 😃

Hallo herbivore,

Meine Applikation soll sich nur auf passive FTP-Server beschränken. 😃

Gruess

Hallo herbivore,

Danke für die Antwort!
Die Frage stellt sich jetzt wie soll der Client dann die Variante 2 'erstellen'?
Die Daten liegen nur auf einem FTP Server bereit.

Ich habe gerade mit einem Kollegen die Thematik besprochen.
Wir sind zu folgenden 2 weiteren Möglichkeiten gekommen.

Möglichkeit a)

Auf dem Server liegt immer nur eine 'aktuelle Version' der Applikation auf dem Server (komplett).
Der client überprüft nun welche Dateien er schon lokal auf dem neusten Stand hat & welche nicht.
Diejenigen die nicht aktuell sind werden vom FTP-Server heruntergeladen & ersetzt.

Möglichkeit b)
... ist eigentlich komplett unüberlegt wenn ich mir Möglichkeit a) nochmals durchlese. 😉

€: Möglichkeit a) macht dann aber auch nur bei kleineren Programmen sinn.
Alles andere ist reiner Speicherverbrauch.

Hallo zusammen,

Angespornt durch das updateSystem.NET von Maximilian will ich mich gerne mal an einem eigenen Updater-Projekt probieren.

Nun stellt sich mir die Frage, wie behalte ich die Struktur auf den FTP-Servern möglichst übersichtlich & wie vermeide ich eine grosse Redundanz?

Meines erachtens sind das genau 2 Gegensätze die einander 'ausbremsen'.
Zum einen könnte ich pro File aus dem Projekt was aktualisiert werden muss, beispielsweise eine Textdatei mit der Version o.ä. erstellen & die dann überprüfen & gegebenfalls herunterladen.
Zum anderen könnte ich komprimierte Download-Container erstellen die alle benötigten Dateien beinhalten.

Bei dere 1ten Variante stellt sich das Problem der Übersichtlichkeit.
Bei der 2ten das Problem der Redundanz - Beispiel:

Die Applikation ist momentan auf dem Stand der Version 1.03.
Es gibt ein Updatepacket 1.04 und ein Updatepacket 1.05

1.04 beinhaltet eine neue Library & die aktualisierte .exe Datei.
1.05 beinhaltet nur die aktualisierte .exe Datei.

Da im Container 1.04 noch eine benötigte Library steckt muss ich zuerst 1.04 & dann 1.05 runterladen.
Ergo ich lade .exe Datei 2x runter -> Redundanz.

Um das möglichst in Grenzen zu halten könnte ich in jedem Update eine Version einsetzen die benötigt wird um das Update zu installieren.
So werden nur die vorherigen Packete runtergeladen die auch wirklich gebraucht werden.

Habt ihr noch andere Vorschläge wie Updates möglichst Effizient vollzogen werden können?

Gruess,
Regenwurm

Hoi gfoidl,

Google habe ich bereits komplett abgesucht - so ziemlich ohne Erfolg.
Aber der richtige Link geht mittlerweile wieder. 😃

Gruess

Hallo zusammen,

Ich probiere seit mehreren Tagen mir die Installshield Limited Edition (welche ja kostenfrei sein soll) herunterzuladen.
Leider funktioniert der Link nicht, der mir in Visual Studio angezeigt wird; http://go.microsoft.com/fwlink/?LinkID=158007&lang=1033&ver=prem .

Hat jemand dasselbe Problem, oder ist dies nur bei mir?
Oder gibt es die LE mittlerweile gar nicht mehr?

Gruess

Hi Th69,

Mit der Initialisierung scheinst du recht zu haben.
Es ergibt keinen Sinn wenn ich die initialisiere, obwohl es ein Union ist. 😉

Ouch, das mit den Klassen tut natürlich weh. 😃
Das sollten selbstverständlich structs sein (die 6 ushorts siehst du ja weiter unten auch definiert).

Somit ist auch der Fehler weg. 😃

Merci!

Hallo zusammen,

Ich habe nun ein 'C#-Union' mittels dem LayoutKind.Explicit Attribut & dem FieldOffset Keyword.
Leider erhalte ich beim Ausführen folgende Exception:

Could not load type '_event' from assembly 'ISS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because it contains an object field at offset 0 that is incorrectly aligned or overlapped by a non-object field.

Meine "Haupt-Klasse" sieht in etwa folgendermassen aus:

public class ISSrequestRecT
        {
            public ushort EventIndex;
            public EventClass myEventClass = new EventClass();


            [StructLayout(LayoutKind.Explicit/*, Size = 372*/)]
            public class EventClass
            {
                [FieldOffset(0)]
                public TKHeventRecT tkhEvent = new TKHeventRecT();
                
                [FieldOffset(0)]
                public RAKeventRecT rakEvent = new RAKeventRecT();

                [FieldOffset(0)]
                public PASeventRecT pasEvent = new PASeventRecT();

                /* ..... */
            }
        }

Der Fehler erscheint bei dem rakEvent.
Das RakEventRecT beinhaltet selber auch wieder ein Union (ich kopiere hier die ganze Klasse rein, weil sich laut der Fehlermeldung der Fehler darin befindet).

public class RAKeventRecT
        {
            public ushort RAKIndex;
            public _event myevent = new _event();


            [StructLayout(LayoutKind.Explicit,  Size = 12)]
            public class _event
            {
                [FieldOffset(0)]
                public ushort RAKcuvBunkerEmpty;

                [FieldOffset(0)]
                public ushort RAKcuvBunkerOk;

                [FieldOffset(0)]
                public ushort RAKcoverOpen;

                [FieldOffset(0)]
                public ushort RAKcoverClose;

                [FieldOffset(0)]
                public ushort RAKvoltageError;

                [FieldOffset(0)]
                public ushort RAKvoltageOk;

                [FieldOffset(0)]
                public RHCinserted myRHCinserted = new RHCinserted();

                [FieldOffset(0)]
                public RHCremoved myRHCremoved = new RHCremoved();

                [FieldOffset(0)]
                public ushort RHCinTray;

                [FieldOffset(0)]
                public ushort RHCoutTray;

                [FieldOffset(0)]
                public ushort trayStatus;  // RHCtrayTTT status (see above)

                [FieldOffset(0)]
                public ushort RAKerror;

                [FieldOffset(0)]
                public ushort errorCode;

                public class RHCinserted
                {
                    public ushort insertSlot;
                    public ushort insertCodeLW;        // Lo Word of 32bit Integer
                    public ushort insertCodeHW;        // Hi Word of 32bit Integer
                    public ushort insertStatus;        // RHCrackTTT status (see above)
                    public ushort realRakinsert;       // GENrldef True (1), False (0)
                    public ushort rakCount;
                }

                public class RHCremoved
                {
                    public ushort slotNumber;
                    public ushort removeCodeLW;        // Lo Word of 32bit Integer
                    public ushort removeCodeHW;        // Hi Word of 32bit Integer
                    public ushort removeStatus;        // RHCrackTTT reason why it was removed (see above)
                }

            }
        }

wo liegt hier der Fehler?
Die Attribute müssen alle auf FieldOffset 0 liegen, da das Ganze ein Union darstellt.
Die Klassen sind auch richtig initialisiert worden.

Gruss,
Regenwurm

Hi,

danke vielmals 😃
Geht das auch in die andere Richtung (Struct -> Byte Array)?
Oder kann mir da jemand einen Hinweis für den richtigen Weg geben?

grüess

Hallo zusammen,

in StructLayoutAttribute.Size Field steht zu dem Size Feld folgendes:

Indicates the absolute size of the class or structure.

Soweit so gut.
Wenn mein struct aber als LayoutKind 'Explicit' vorweist & die einzelnen Elemente in meiner Klasse / in meinem Struct auf dem gleichen FieldOffset liegen, muss ich dann immernoch die volle Grösse angeben (sprich die Grösse von jedem einzelnen Member addieren), oder kann ich einfach den grössten Wert angeben?

Gruess,
regenwurm

Hallo zusammen,

sorry für die späte Antwort aber das Ganze ging irgendwie total an mir vorbei. 😃
Die oben genannten Methoden funktionieren perfekt wenn es sich um ein normales Struct handelt.

Doch wie sieht es bei einem C++ struct aus, welches noch ein Union beinhaltet ?.

    struct ANAeventRecT{
        unsigned short int ANAIndex;
        union event{
            unsigned short int ANAwsAcuvConveyorEmpty;
            unsigned short int ANAwsAcuvConveyorOk;
            unsigned short int errorCode;
        } myevent;
    };

In C# muss ich dann ja bei einem struct als LayoutKind das Attribut 'Explicit' angeben (Is there a kind of union structure in C Sharp?).
Dann funktioniert die oberhalb genannte Methode leider nichtmehr.

Gruess

Wenn ihr daraus eine Web-Anwendung macht sollte die Gefahr des Dekompilierens doch kein Problem sein. 😉

GC.Collect() vergessen.. verstanden! 😉

Und das mit den CLR-Objekten ist jetzt auch klar.

Danke vielmals euch beiden! 😃

Hi quantitec,

Ein typedef gibt es unter C# nicht.
Trotzallem kannst du das in etwa gleich umsetzen (Is typedef available in C# ? ).

Danke vielmals für eure Antworten - das hilft mir schon ungemein weiter. 😃
Ich denke noch viel detailliertere Informationen über Stack & Heap finde ich in gfoidl's Links.

Trotzallem bleiben mir noch 2 Fragen.
CLR ist ja quasi der Teil der mir den Source Code in CIL umwandelt.
Was genau ist dann ein CLR-Objekt?
Objekte aus dem .NET Framework (DateTime, HTTPWebRequest & was es halt alles noch gibt. 😃 )?

Wie ist das jetzt mit GC.Collect()?
Normalerweise braucht man es ja nicht - aber unter welchen 'Spezialfällen' ist dies nötig?

Gruess

Hallo zusammen,

Ich bin gerade dabei mich etwas mehr über die Speicherverwaltung von Programmen zu informieren.

So wie ich das mitbekommen habe wird auf dem Heap & dem Stack gearbeitet.
Den Heap gibt es pro Prozess einmal.
Den Stack hingegen pro Thread einmal (Stimmt es dass die max. Grösse 1MB beträgt??)

Der Heap wird in 2 'Varianten' unterteilt -> Managed- & Unmanaged-Heap.

Im Managed Heap kümmert sich der Garbage Collector vom .NET Framework um die Verwaltung des Speicherbereichs.

Was ist gemeint mit (Zitat: 'Dort landen die Instanzen der Reference Types von .NET')?

Im Unmanaged Heap bearbeitet der Garbage Collector nichts.
Der Unmanaged Heap wird für folgendes gebraucht (Zitat: 'Dort bedient sich die CLR sowie die eigene .NET-Anwendung immer dann, wenn eine Win32-Ressource eingebunden wird').
Was ist damit gemeint? Bzw. was ist eine Win32 Ressource? WinApi Aufrufe? Strukturen aus der WinApi?

Die Elemente auf dem Stack werden ja - sobald die Funktion verlassen wird - zerstört.
Ist dies auch richtig so?

Irgendwo habe ich auch gelesen dass man - wenn möglich - nur auf dem Stack arbeiten soll.
_Ist das so richtig? _

Wie entsteht ein Heap-Overflow?
Ist das die Folge auf einen Memory Leak?

Soviel zu den Speicherfragen.

Der Garbage Collector ist soweit ich verstanden habe dafür da um den Managed Heap zu verwalten.
Er überprüft zyklisch (oder doch nicht?) ob er nun Speicher freigeben muss oder nicht.
Wenn ja, dann löscht er alle Referenzen die nirgendwo hin zeigen.
Wenn er dies sowieso automatisch macht, warum ist die Methode GC.Collect statisch?
Oder gibt es Fälle in denen wir selber den Speicher freigeben sollten?

Ich hoffe ihr könnt mir ein wenig Klarheit verschaffen,
oder mir ein paar gute Links geben. 😃

Grüsse

Hallo Community,

Ich frage mich seit längerem wie genau die Technik bei Audiostreaming funktioniert.
Ein Beispiel dafür wäre unter www.technobase.fm.

Ein DJ mixt live seine Tracks, und via Livestream kann man da mithören.

Ich habe mir das in etwa so vorgestellt;

Sagen wir mal der Real-In Eingang wird vom Programm "abgehört" & die Daten werden kontinuierlich in einen buffer gespeichert.
Wenn der Buffer voll ist, werden die Daten dann entweder an einen Server - welcher die Daten weiterverteilt - oder gleich direkt an den Endbenutzer gesendet.

Nur, wie ist es möglich dass das Ganze unterbrechungsfrei läuft?
In der Zeit in der der Buffer voll ist bis zu der wenn das Socket die Daten absendet wird ja weiter Musik gespielt welche nicht aufgenommen wird.

Oder stecken da ganz andere Techniken dahinter?

Gruess,
Regenwurm

Mir fehlt es eindeutig am Wissen.. 😃
Keine Ahnung inwiefern der GC eine Rolle spielt.
Ebenfalls frage ich mich ob der QWORD eine Rolle spielt ( den String den man daraus bekommt hilft mir auch nicht weiter :S )

Hallo zusammen,

Ich bekomme von einem Server ein byte-array gesendet, dass ich direkt in ein struct kopieren möchte (ohne die einzelnen Bytes, Words, etc auszulesen).

Ist dies mit irgend einem cast o.ä. möglich? Ich habe im Hinterkopf dass da das Keyword "fixed" eine Rolle spielt.

Gruess,
Regenwurm

Hi Abt,

Wow danke!
Das Ganze gefällt mir visuell wirklich sehr gut, auch wenn hier Flash im Einsatz ist.

Ich denke dass nehme ich 😃

grz

Super, alles klar. 😃
Ich schaue mir das Ganze mal an - vielen Dank für eure Hilfe. 😉

Hi,

Das dachte ich mir leider. 😕
Denkst du mittels Flash würde sich das ganze lösen lassen?

grz

Hallo zusammen,

Ich bin gerade dabei mich wieder in bisschen mit ASPX auseinander zusetzen.
Nun wollte ich im BackEnd Bereich meiner Webseite einen Menupunkt einrichten, bei dem der User eigene Gallerien erstellen & verwalten kann.

Doch hier gibt es bereits das erste Problem. - Wie stelle ich dem User einen FolderBrowserDialog (wie in WinForms) zur Verfügung (ohne ActiveX!)?

Anstelle von - sagen wir mal 20 - verschiedenen FileUpload Controls soll der User einfach einen Ordner angeben können.
Alle Bilder in diesem Ordner sollen dann auf den FTP hochgeladen werden.

Doch wie stelle ich das Ganze an?
Ich finde leider keine gescheiten Lösungen.

Gruess,
Regenwurm

Ok, war einwenig komisch ausgedrückt.

Generell die Windows(?)Messages abfangen, die ein anderes Programm an meines mittels dem WinAPI Befehl "PostMessage" sendet.

Hallo zusammen,

Wie kann ich in einer C# Konsoleapplikation Postmessages abfangen?
Ich bin mittels Google auf eine Funktion (PreEventFilter - oder so 😉 ) gestossen. Leider half mir diese auch nicht wirklich weiter.

Beste Grüsse,
Regenwurm

02.02.2011 - 13:08 Uhr

Salü 😃

Also ich denke ein i3 wird reichen (-> Dieses NB hier: http://digitec.ch/ProdukteDetails2.aspx?Reiter=Details&Artikel=207606).
Dazu habe ich dank CUDA noch die Möglichkeit die GPU einzusetzen.

Das NB wird sowieso nur als Zweitrechner dienen und ausschliesslich für PSD und Flash benutzt werden (Sprich max. 15h / Woche).
Ich habe auch nicht vor die Software zu wechseln sobald etwas neues auf den Markt kommt (bspw. CS6).

Dazu werde ich mir noch die 120GB SSD (im 1. Post verlinkt) hinzulegen.
Denkt ihr das geht so in Ordnung?

Gruess

02.02.2011 - 12:29 Uhr

Hallo

Danke vielmals für eure Beiträge.
Das NB wird vllt. 10-15h / Woche benutzt (wenn überhaupt).

Ich habe sonst hier noch zwei i5er gefunden:

Was ist denn mit denen?
RAM könnte man ja im nachhinein noch aufrüsten.

Sollte ich mich für einen der oberen entscheiden, so käme die SSD wohl im Moment eher nicht in Frage. 😕

gruess

02.02.2011 - 11:31 Uhr

Zudem würd ich dir als Prozessor einen I5 Empfehlen, die haben einen TurboBoost (ja wie in den 90ern) was für den Laptop ganz praktisch ist. So hast du wenn du mit Aktueller Stromversorung arbeitest noch ein bisschen mehr Leistung wenn dus brauchst.

Also so alt bin ich nun doch nicht =D
Hast du da einen Link für mich?

Jedoch denke ich dass die i5 + 6GB RAM mein Budget um Längen sprengen werden.

gruess

02.02.2011 - 10:59 Uhr

Hallo zusammen,

Da ich mich immer mehr für Webdesign & Flash interessiere habe ich mich dazu entschieden mir ein Notebook zuzulegen.
Dies sollte nicht zu gross sein ≤ 15.6".

Programme die darauf flüssig laufen sollten wären:

  • Adobe Photoshop CS5
  • Adobe Flash CS5
  • ( Microsoft Visual Studio 2008 (vllt. auch 2010) )

Ausserdem sollte ich mir darauf dann auch noch Filme anschauen können (sollte ja machbar sein, wenn die anderen Dinge auch darauf laufen 😉 ).

Als Budget habe ich mir 700 CHF gesetzt.

Ich habe mir mal folgende Notebook rausgesucht:

Was haltet ihr von denen?
Ausserdem spiele ich noch mit dem Gedanken die Festplatte durch eine SSD zu ersetzen (http://digitec.ch/ProdukteDetails2.aspx?Reiter=Details&Artikel=194602 - Ich denke 120GB sollte für meine Zwecke reichen).

Habt ihr sonst andere Vorschläge (wenn möglich bei www.digitec.ch oder http://shop.stegcomputer.ch/ nachschauen 😃 )?

Gruess

26.01.2011 - 11:47 Uhr

Hi,

Ich gehe mal davon aus dass du meinen vorherigen Beitrag damit ansprichst. 😉

Der Grund warum ich das Ganze obfuscate ist der, dass ich mit meinem Programm etwas kleines nebenverdienen will.
Das Programm wird auch nicht an "Grosskunden" ausgeliefert, sondern an Privatpersonen in einem Online-Community Bereich.
Dort ist die Chance > 80% dass die User die Software lieber kostenlose hätten.
Wäre das Programm nicht obfuscated würde halt jemand kurz das ganze mittels dem .NET Reflector dekompilieren und die benötigten Wert verändern -> Zack braucht man nicht mehr dafür zu bezahlen.

In meiner Lehrfirma wird auch nichts verschlüsselt. 😉

cheers

Der Client ist selbstverständlich obfuscated.
Ja, die Implementierung besteht bereits.

ok.. das ist natürlich - sch... 😉

gruss

Hallo zusammen,

Wie vielleicht aus meinem letzten Thread [erledigt] Eigentliches Programm über eine Server-Applikation starten. herauszulesen war, probiere ich mein Programm vor unbefugtem Zugriff "zu schützen".

Nun, da ihr mir von der Methode des direkten Programmes über einen Launcher laden abgeraten habt, dachte ich mir, dass ich wichtige Packete die vom Server -> Client gesendet werden einfach verschlüssle.

Jetzt ist die Frage, wie sicher ist das Ganze?

Das Ganze ist so aufgebaut dass der Server & der Client einen identischen public Key besitzen (sei es mal 1234).

Sobald der Client sich nun mit dem Server verbindet, sendet der Server dem Client einen private key (der jedesmal neu & einzigartig generiert wird).
Dieser wird jedoch nicht roh übergeben, sondern mit dem public key verschlüsselt.
Alle weiteren wichtigen Packete die der Server dem Client senden muss, werden nun mit dem private key verschlüsselt.

Der Sinn dahinter wäre, dass niemand den Packetverlauf "einfach so" ablesen könnte.
Das einzige Problem was ich sehe ist, dass jemand irgendwie den hart gecodeten public key rausfindet. Ist das machbar?

Und wie sicher ist sonst das Ganze?

Gruss,
Regenwurm

Hallo,

Vielen Dank - ihr habt mich überzeugt. 😉

cheers

Aha, du kannst also garantieren, dass die Verbindung des Kunden zum Internet jederzeit gewährleistet ist (darauf zielten die vorherigen Fragen nämlich primär ab) ?!

Mein Programm ist nur eine - nennen wir es mal "Erweiterung" - für ein anderes Programm (welches NICHT von mir kommt).
Das andere Programm läuft auch nur mittels Internet.

Hat der User also kein Internet mehr, macht mein Programm keinen Sinn für ihn. 😉

cheers

Kannst du mir erklären was du genau mit einem TanSystem meinst?

Ich denke ich behalte einfach wichtige Infos die der Client benötigt auf dem Server zurück, und dann jeweils per Client angefordert werden müssen.
Dies geschieht ständig mit einer Lizenz-Abgleichung oder einem Username & Passwort.

Gruss

Es besteht natürlich auch die Möglichkeit die Software per Dongle zu schützen.

Nein sorry, das lohnt sich in meinem Fall überhaupt nicht. 😃

Hallo,

Also die bzgl. Login via Server & Registry Einträge:
Ich habe einfach "Angst" dass die Leute dass dann einfach via OllyDbg oder anderen Debugger umgehen.
Darum kam mir die Idee das Ganze per Server zu "verteilen".

cheers

Hallo zusammen,

@inflames
Ich gehe davon aus dass das Programm nicht mehr als 50 MB RAM in Anspruch nehmen wird.
Danke schonmal für den Assembly Typ.

@TheGear
Sprich auch wenn ich bspw das komplette App-Byte Array mittels XOR verschlüssle, ist der Cracker im Stande sich an dem Punkt einzuhacken wo das entschlüsselte Programm in die Assembly geladen wird?

@der-schlingel
Es ist ein reines "Sicherheitsbedürfnis".
Ich habe dies nur mal so gesehen und wollte mich mal informieren wo der Sinn des Ganzen liegt & wie das überhaupt funktioniert.

Ja, die Ressourcen wären immer vorhanden & es handelt sich um das Internet. 😉

Was gäbe es sonst noch für Möglichkeiten ausser einem Server / Client Login, seine Applikation zu schützen?
Ausser natürlich das übliche à la obfuscator etc.

cheers 😃

Das heißt im Ernst, du hast vor bei jedem Programmstart das eigentliche Programm ersteinmal herunter zu laden?

genau

Und vorallem, was ist wenn der Benutzer deinen Launcher Crackt?

Inwiefern sollte das funktionieren?
Der Launcher sendet jedesmal einen Lizenzschlüssel mit.
Dieser sollte dann vom Server überprüft werden. - Ist dieser nicht valid, so gibt es keine Antwort

Aber bei deiner Lösung bestände ja auch das Problem:

Nutzer startet Launcher -> Anwendung wird heruntergeladen -> Nutzer navigiert zum Programm und kopiert es.

Nun kann er es Problemlos starten.

Das war meine eigentliche Frage.. Der Server müsste quasi das Programm als komplettes ByteArray absenden & der Launcher lädt dies direkt in seinen RAM.
Somit hat der Benutzer keine Chance das abzuspeichern.

grz

Es geht mir vorallem darum um die App zu vor Cracks zu schützen.
Die Applikationen die so gestartet werden setzen Internet voraus. - Also das ist kein Problem 😃

Hallo zusammen,

Ich habe schon einige Programme gesehen die - aus Sicherheitsgründen - "Launcher" benutzen.
Sprich, man kauft sich eine Lizenz und sieht dann beim Launcher auf welche Applikationen man von dieser Firma Zugriff hat.

Nun wählt man eine Applikation aus, der Launcher synchronisiert den aktuellen Status mit einem Server, und startet dann die Applikation.
Es scheint so, als würde der Client einen Request an den Server senden, sodass er danach die Applikation wie 'runterlädt' und dann direkt startet.

Dies macht natürlich nur Sinn wenn die Applikationen selber nicht irrsinnig gross sind. 😉

Wie funktioniert das Ganze genau?
Was könnten für Probleme auftreten?

Gruss,
Regenwurm

Screen.AllScreens[1].Bounds

€: Bzw. bei > 2 Bildschirmen:

Das Array mit einer Schleife durchlaufen und mit der Eigenschaft 'Primary' überprüfen ob es sich um den Hauptbildschirm handelt.

grz

29.10.2010 - 09:02 Uhr
int y2 = rand() % 2; 
//... 
switch (y2) 
{ 
case 1: /*...*/ 
case 2: /*...*/ 
case 3: /*...*/ 
} 

X(

Hi,

Das Schema sollte in etwa so aussehen:

Client <---> Server <---> DB.

Der Server ist der einzige Teil der Kommunikation, der Zugriff auf die Datenbank hat.

grz

22.10.2010 - 16:20 Uhr

Unter Downsampling muss ich wohl folgendes verstehen:

Sagen wir ich habe eine PictureBox von 100x100.
Ich verkleinere das ganze auf 50x50.
Nun sollten jeweils 4 Pixel zu einem zusammengefasst werden.
Ist dies richtig so?

Wie realisiere ich dann das ganze unter .NET (ohne dass wenn ich das Bild wieder grösser mache, die Pixel aufgeteilt werden)?.

Gruss

22.10.2010 - 14:50 Uhr

Hi nochmals.

Wie stark aufbereiten sollte man die Buchstaben?
Ist bspw. sowas hier schon leserlich? (Sorry für die kleine Auflösung)

21.10.2010 - 12:50 Uhr

Hi,

Danke für die Erklärung der Exception. 😉
Funktioniert nun -> merci.

Das mit der DrawImage-Variante habe ich ehrlich gesagt nicht so ganz begriffen. 😕

grz