Laden...

Forenbeiträge von Tossi65 Ingesamt 85 Beiträge

10.06.2024 - 14:25 Uhr

In meinen MainForm habe ich eine Protokollfunktion:

private void Protokoll(String AMsg, Boolean bError = false)
        {
            //if(richTextBox1.TextLength > 0) richTextBox1.Text += Environment.NewLine;
            if (richTextBox1.TextLength > 0) richTextBox1.AppendText(Environment.NewLine);
            richTextBox1.SelectionBackColor = tmpColor;
            richTextBox1.SelectionColor = Color.Black;
            if (bError)
            {
                richTextBox1.SelectionBackColor = Color.Red;
                richTextBox1.SelectionColor = Color.White;
            }
            richTextBox1.AppendText(AMsg);
        }

In der MainForm wird ein DataPump ausgeführt:

 private void DoDataPump()
        {
            DataTable dtQuelle = GVKonfig.DataSource as DataTable;
            DataTable dtTemp = dtQuelle.Copy();
            dtQuelle.DefaultView.RowFilter = "Stammdaten = 1 and Tabellenname like 'p_%' and Folge > 0";
            DataTable dt = dtQuelle.DefaultView.ToTable();
            foreach(DataRow r in dt.Rows)
            {
                SQL.DoDataPump(r["Tabellenname"].ToString(), r["Datenbankname"].ToString(), chkDeleteFirst.Checked,chkGenerator.Checked);
            }
            ...
  }        

Hier ruhe ich in der statische Klasse den eigentlichen Datapump auf. Und hier würde ich gerne die Protokol Methode mit übergeben, damit ich eine Rückmeldung im Protokoll erhalte.

Gruß Torsten

10.06.2024 - 14:00 Uhr

Hallo,

ich möchte eine Klassen Methode auch einen Zeiger auf ein Prozedur / Funktion in der aufrufenden Klasse übergeben. Zum Beispiel eine Protokollmethode. Wie kann ich das machen?

Gruß Torsten

16.01.2024 - 14:07 Uhr

Verwendetes Datenbanksystem: MS SQL Server 2019

Hallo Kollegen,

ich habe da mal eine Frage. Ist es möglich eine Abfrage zu erstellen die auf eine Datenbank aber auf mehrere Server gerichtet ist?

Hintergrund: Wir haben eine Datenbank, die existiert auf mehreren Servern (Standorte). Zur Zeit gibt es eine Replikation, die aber immer wieder beim zusammenführen der Ergebnisse in die Zentraldatenbank crasht. Fehler liegt im Design der Replikation. Wir wollen diese auch loswerden.
Für eine Analyse gibt es aber Abfragen die über alle Standort die Daten auswertet. Hat jemand eine Idee?

Danke Torsten

16.06.2022 - 13:23 Uhr

Hallo glandorf,
die Replikation auf diese Art und Weise zu fixen kann keine gute Idee sein. Es muss aber einen Fix geben, da die Daten benötigt werden.

In diesem Fall soll ein Dienst auf dem Server eben die Daten an die Zieldatenbank schreiben, wenn neue Daten in der Datenbank eingetragen werden.
Es betrifft ja nur wenige Tabellen. Im Nachgang jetzt die Strukturfehler in der Datenbank zu beheben ist auch nicht ohne. Ist eine Produktions DB und schon sehr groß mit reichlich Anwendungen dran. Das ist der Umweg über einen Service getriggert durch die Datenbank das kleinste übel.

Gruß Torsten

16.06.2022 - 12:30 Uhr

Hallo Kollegen,
ich bin kein MS SQL Server Programmierer. Ich komme aus der FireBird Ecke. Und da gibt es eine sehr schöne Sache.
Den Eventalerter! Hiermit kann ich per Datenbank Ereignisse an Anwendungen schicken.

Ich bräuchte diese Eigenschaft auch für den MS SQL Server.
Gibt es so etwas und wie wende ich es an?

Hintergrund:
Wenn bestimmte Daten geschrieben wurden soll eine Benachrichtigung an einen Service generiert werden.

Aktueller Server: MS SQl Server 2012, wird aber demnächst der aktuellste sein.

Vielen Dank.

Torsten

21.03.2022 - 15:58 Uhr

Hallo,
sorry es handelt sich um eine .Net Core 6 Anwendung. Und dort finde ich eine RuntimeConfigDatei.Json. Aber darin befindet sich nicht das, was ich suche.

Ich habe unter den Einstellungen zum Projekt einen Eintrag "EMail", String, Anwendung gemacht. Diesen hätte ich dann unter Programmname.exe.confing wieder
gefunden. Ich benutze diesen Eitrag auch per Setting.Properties.....Email auch. Aber wo finde ich diesen im Programmverzeichnis??????

Ich benutze die immer beim Programm, wegen der Sucherei.

Danke Torsten

21.03.2022 - 08:20 Uhr

Guten Morgen Kollegen,

ich habe mir das neue Visual Studio 2022 Community genehmigt, weil ich die Core Sache näher untersuchen wollte.
Alles ok und bin auch ganz gut klar gekommen. Da habe ich gleich mal ein Progrämmchen zusammengebaut.
Wie in alter Marnier habe ich da in den Einstellungen ein paar Konfigurationssachen untergebracht,
um bei kleinen Änderungen nicht gleich wieder neu kompilieren zu müssen. Aber wo finde ich jetzt die Datei????
Eine Programmname.exe.config gibt es nicht mehr.

Wo finde ich diese Konfiguration???

Gruß Torsten

21.10.2021 - 11:33 Uhr

Hallo Kollegen,
ich will mich einem neuen Projekt widmen. Ich habe eine Anwendung VS 2010, Framework 4, Desktop. In dieser Anwendung habe ich auch einem
TabPage einen Bereich untergebracht, der eine geschlossene Einheit bildet. Diesen Bereich benötigt ich jetzt mindestens noch einmal. Meine Idee wäre,
daraus ein UserControl zu machen. Also habe ich ein Projekt für UserControl aufgemacht und den Bereich da hinein kopiert. Soweit so gut.
Aber:
Ich brauch für das UserControl noch Properties wie ConnectionString, Sprache, usw. Wie kann ich diese Anlegen, so dass sie in den Eigenschaften sichtbar sind??

13.08.2021 - 12:09 Uhr

Hallo Abt,
Yat ist ein OpenSource Tool für die verschiedenen Kommunikationsarten.

Das Projekt ist in C# .Net geschrieben. Dort habe ich nichts gefunden, das man ein Socket irgendwie auf "auto" stellen kann.

MFg Torsten

13.08.2021 - 11:04 Uhr

Hallo Leute,
danke für Eure Hilfe beim letzten Thema. Das Programm läuft. Aber es geht weiter.

Jetzt habe ich ein Problem mit einem anderen Programm. Diese soll per TCP/IP Datenempfangen. In Textform.
Dafür muss es so konfiguriert werden, das es Daten vom Scanner bekommt. Ich hätte jetzt erwartet, das mein Programm
sich als Client dort anmeldet. Pustekuchen, keine Verbindung. Also habe ich mit YAT getestet. Wenn ich YAT als Server (TCP /IP AutoSocket)
starte, können sie sich unterhalten. Aber was heisst: AutoSocket.

Ich habe im Internet nichts darüber gefunden.

Danke für Eure Unterstützung.

29.07.2021 - 13:34 Uhr

Danke für Eure Unterstützung.
Ich habe es jetzt hinbekommen.
Manchmal ist man einfach zu blöd für einfache Sachen.
TH69 hatte recht. Man muss lesen was man für Infos bekommt.

Danke

28.07.2021 - 17:52 Uhr

@inflames2k
Hey,
das hatte ich auch gedacht. Aber es ist eine List von byte[].
Bei der ToArray() meckert er rum da es sich um ein Array im Array handelt.

Gruß Torsten

28.07.2021 - 16:09 Uhr

Hallo,
hier ein Update: Einfache Befehlssequenzen gehen andere wieder nicht.
Was ich mit Strings habe, hier einen Erklärung:
In einer Datenbanktabelle liegen die Befehlssequenzen als String der Reihe nach vor.
Wenn ich nun an die Kamera etwas schicken will hole ich mir die Befehlssequenzen in der richtigen Reihenfolge,
bearbeite diese wenn nötig (zahlen tauschen JOBID) und will sie dann an die Kamera senden. Wenn die Kamera verstanden hat,
bekomme ich eine Antwort.
Um die Sequenzen umwandeln zu können, lade ich mir diese in ein StringArray gesplittet nach ' '.
Dann mache ich der Reihen nach aus den Einträgen ein UInt16, hole davon mit BitConvert das ByteArray und speichere mir das in eine List<byte[]>.
Die Anzahl der Elemente der List können unterschiedlich sein. Beispiel:01,00,00,00
Jetzt komme ich nicht weiter. WIe mache ich aus der Liste ein passendes Byte ARRAy?????
Der Vorschlag von dannoe:
var connectSequence = new byte[] { messageIdArray[0], messageIdArray[1], payloadLengthArray[0], payloadLengthArray[1] } funktioniert
Beispiel: Sequenz: 01 00 00 00 => 01 00 00 00 funktioniert
Beispiel: Sequenz: 41 00 00 00 => 29 00 00 00 funktioniert nicht
Beispiel: Sequenz: 01 00 00 00 => 02 00 00 00 funktioniert
Beispiel: Sequenz: 31 00 02 00 03 00 => 1F 00 02 00 03 00 funktioniert nicht.

Es macht Spass ist aber auch frustrierend, da natürlich gedrängelt, wann fertig.

Danke Torsten

26.07.2021 - 13:20 Uhr

Cool, danke. Schau ich mir an 😉

26.07.2021 - 12:07 Uhr

Guten Tag ,
ich habe folgende Idee:
Meine MainForm ist schon ziemlich voll. Das merkt man deutlich an der Ladezeit in der Entwicklung. Nun meine Idee.
Ich erstelle einen leeren Tab auf meiner MainForm.
Dann erstelle ich eine neue UnterFormular auf der ich alle Komponenten auf ein Panel ablege und die Funktionen usw. hier rein programmiere.
Kann ich dann zur Laufzeit dieses UnterFormular (UI) auf die MainForm umleiten?

Ich meien soetwas schon einmal irgenwo gesehen zu haben????

Danke Torsten

18.06.2021 - 12:55 Uhr

Ganz so schlimm ist es nu auch nicht.

18.06.2021 - 12:37 Uhr

Hallo Leute,

ich starte gerade ein neues Projekt und will mal etwas neues in Sachen UI versuchen. Dabei sind mir die Guna 2 UI aufgefallen.
Das Aussehen ist ganz nice. Runde Button, DIe WInForm auch gerundet. Ganz OK.

Aber:
Ich habe eine MDI Form erstellt mit runden Ecken und ohne Border. Links ein Panel mit Button. Über die Button aktiviere ich die CHilds.
Aber die passen sich nicht richtig in die Parentform. Beim Anzeigen des Childs bekommt das Parentfenster auf einmal oben die Titelbar und der untere
Chidfensterbereich geht tiefer als Parent. Folglich kommt eine Scrollbar.

Kennt sich jemand mit diesen Komponenten aus???

Mfg Torsten

17.06.2021 - 09:50 Uhr

Ich weiß, das ist nicht die feine Art. Mit einer FireBird Datenbank und einem Eventalerter hatte ich das Problem über die Datenbank gelöst.
Aber MS SQL ist hier ein wenig steif.

Mal weiterforschen. Die Kollegen verstehen einfach nicht, die Anwendungen nach Feierabend zu beenden.

17.06.2021 - 08:17 Uhr

Guten Morgen Kollegen,
ich erstelle und arbeite mit einer Software, die zentral auf einem Server installiert ist und die Clients haben dorthin ein Link zur Exe. Sie starten also die Exe aus dem Link heraus.
Alles schick. Während des Starts tragen sich die Clients in einer Tabelle der Datenbank ein. Da wir global agieren und ich die Software warten muss, kommt es vor, das vor Ort niemand
zu erreichen , aber die Software auf irgendeinem Client gestartet ist. Folge: Ich kann die Dateien nicht tauschen. Wenn dieser Client RDP nicht zulässt, habe ich die A..karte.

Meine Frage: Die Clients stehen in einer Tabelle drin. Gibt es eine Möglichkeit per .Net die Programme über das Netzwerk zu beenden?
Die Datenbank ist eine MS SQL Datenbank.

Mfg Torsten

16.06.2021 - 15:43 Uhr

Vielen Dank 😉

16.06.2021 - 15:09 Uhr

Hallo Leute,

ich möchte bei Klick auf einen Button auf wissen ob und welche Taste gedrückt wurde.
Wie komme ich an die Tasten ran?

Mfg Torsten

07.06.2021 - 12:48 Uhr

Danke für eure Hilfe. Ja ich werde mich mal mit Datentypen auseinander setzen. Aber jetzt gibt es wieder neue Probleme.

Danke

03.06.2021 - 15:11 Uhr

@dannoe

Das geht 😉 super.
Da wäre ich nie drauf gekommen. Die Kamera schickt mir eine Antwort. Diese muss ich nun wieder in einen String zurück wandeln.
😭

03.06.2021 - 14:05 Uhr

@dannoe


                    Byte[] bytes;
                    bytes = Encoding.UTF8.GetBytes("01 00 00 00");
                    client.Send(bytes);

Ich habe es auch schon mit AScci.Encoding versucht.

@inflames2k
Da liegst du leider nicht richtig. E§s muss die gesamte Sequenz übermittelt werden "01 00 00 00". Das sind dann mit Blanks 11 Zeichen.

03.06.2021 - 12:44 Uhr

Ach übrigends: YAT ist ein Tool mit dem man Client Server testen und nachstellen kann.
url: https://sourceforge.net/projects/y-a-terminal/

03.06.2021 - 12:23 Uhr

Ja das mit den Bytes beim versenden ist klar.
Hier ein Auszug aus dem Handbuch:

Zitat:
6.1.2 Aufbau einer Nachricht
Die meisten Nachrichtenelemente sind vom Typ UINT16 und bestehen daher aus 2 Bytes. Da Bytes über Ethernet sukzessive und die Nachrichtenelemente im "Little Endian"-Format übertragen werden, wird das niederwertigste Byte zuerst gesendet.

Jede Nachricht beginnt mit der Nachrichten-ID.

Es gibt drei verschiedene Kategorien von Nachrichten:

  1. Nachrichten von BVS Cockpit
    a. Statusnachricht
    b. Ergebniscontainer

  2. Nachrichten an BVS Cockpit ohne Antwort
    a. Disconnect
    b. Zeitstempel setzen
    c. Inputdaten setzen
    d. Ergebnisnummer setzen
    e. Inspektionsprogramm triggern
    f. Inspektionsprogramm starten
    g. Inspektionsprogramm anhalten
    h. Neustart auslösen
    i. Logeintrag schreiben

  3. Nachrichten an BVS Cockpit, die dann nach erfolgter Aktion eine Antwort sendet
    a. Connect
    b. Inspektionsprogramm umschalten
    c. Inspektionsprogramm-ID abfragen
    d. Zeitstempel holen

Alle Nachrichten haben dieselbe Struktur:
Länge in Bytes Struktur Bezeichnung
2 UINT16 Nachrichten-ID
2 UINT16 Nutzdatenlänge in Bytes
Nutzdaten
Nachrichten, die nicht dem vorgegebenen Format entsprechen (falsche Länge, unbekannte Nachrichten-ID), werden
ignoriert.

Connect
Die Connect-Nachricht stellt eine Verbindung her.
Länge in Bytes Struktur Wert Bezeichnung
2 UINT16 01hex Nachrichten-ID
2 UINT16 00hex Nutzdatenlänge in Bytes
BVS Cockpit antwortet darauf mit ihrer Connect-Nachricht.
Länge in Bytes Struktur Wert Bezeichnung
2 UINT16 01hex Nachrichten-ID
2 UINT16 02hex Nutzdatenlänge in Bytes
2 UINT16 02hex Protokollversion
Die folgenden Beispiele zeigen, wie die Nachrichten aufgebaut sind und wie sie übertragen werden.
Die Nachrichten-ID für Connect ist 01hex, als UINT16, "Little Endian": 01hex 00hex
Dann folgt die Nutzdatenlänge. Die Connect-Nachricht hat keine Nutzdaten, die Länge ist Null. Als UINT16 in "Little Endian" wird dies wie folgt übertragen: 00hex 00hex
Da es keine Nutzdaten gibt, ist die Nachricht fertig.
Der gesamte Connect-Befehl sieht folgendermaßen aus:
01hex 00hex
00hex 00hex
In der Programmiersprache C:
unsigned char[] connect =
{
0 x 01, 0 x 00,
0 x 00, 0 x 00
};
Nachricht vom Client an BVS Cockpit: 01 00 00 00
BVS Cockpit antwortet darauf mit: 01 00 02 00 02 00
Disconnect
Mit der Disconnect-Nachricht wird die Verbindung getrennt. Es werden fortan keine Ergebnis-Container und keine Statusnachrichten mehr gesendet; Nachrichten an BVS Cockpit werden ignoriert.
Länge in Bytes Struktur Wert Bezeichnung
2 UINT16 02hex Nachrichten-ID
2 UINT16 00hex Nutzdatenlänge in Bytes
Beispiel:
Nachricht vom Client an BVS Cockpit: 02 00 00 00

Zitat ende

Also wenn ich "01 00 00 00" senden will dann macht der Client daraus "4849324848324848324848" Byte und auf der Serverseitet sehen ich folgendes "30h 31h 20h 30h 30h 20h 30h 30h 20h 30h 30h 01h 00h 00h 00h". Also nicht was ich sehen will. Die FRage dabei ist doch was meinen die mit UInt16 Format!?!?

03.06.2021 - 10:49 Uhr

Hallo Leute,
ich muss zum ersten Mal eine Client/ Server Anwendung erstellen. Der Server ist eine Kameraanwendung, welche wir steuern möchten Dazu gibt es Befehlssequenzen,
die UIT16 sind und an die Kamera gesendet werden sollen.

Ich habe mit C# und SimpleTCPCLient Package einen Client erstellt. Die Programme finden sich auch.
Wenn ich nun folgenden Sequenz sende: 01 00 00 00 (Connect) reagiert die Kamera nicht.
Zum Testen benutze ich YAT und baue dazu eben die gleiche Verbindung auf und wenn ich damit die Sequenz sende reagiert die Kamera.

Zum besseren Verständnis habe ich YAT als Serverinstanz aus meinem 2. Testrechner laufen. Ich benutze die gleichen Einstellungen wie für das Kamerasystem. Ich sende mit dem Client die Sequenz(01 00 00 00) und siehe da, auf dem YAT Server sehe ich 01h 00h 00h 00h.
Sende ich nun vom Server die eigentliche Rückantwort(02 00 00 00) empfange ich auf dem Client 30h 32h 20h 30h 30h 20h 30h 30h 20h 30h 30h ????
Das ist die richtige Antwort aber in Byte eigentlich sollte 02h 00h 00h 00h da stehen.

Ich gehe davon aus, das das selbe Problem mit meinem Client und der Kamera besteht.

Ich brauch dringend Hilfe.

Danke Torsten

22.04.2021 - 13:14 Uhr

Danke für die Antworten. Das Problem hat sich erledigt.

20.04.2021 - 09:02 Uhr

Guten Morgen liebe Kollegen,

ich habe da ein interessantes Problem. Ich erstelle Programme für die Fertigungstechnik. Nun haben wir ein Programm bekommen mit dem wir kommunizieren wollen.
Dazu bietet sich der LAN Scanner an. Eine IP Adresse und Port, das war es. Aber natürlich erwartet das Programm als LAN Scanner ein echten LAN Scanner (Gerät).

Meine Frage jetzt: Kann man mit c# einen Simulation für einen solchen LAN Scanner erstellen?
Die Idee dabei ist doch, daß das Programm Daten mit der IP des LAN-Sacnner verschickt.

Ich habe keine Ideee. Was sagt ihr?

Mfg Torsten

29.12.2020 - 10:04 Uhr

Guten Morgen,
danke für die Antworten. Leider habe ich noch nicht mit BUlkCopy gearbeitet.

WIe schon gesagt, die Anwendung hat die Daten schon im Speicher, auch die Binärdaten. Ich will diese einfach nur in eine Entwicklerdatenbank kopieren. Ich versuche es mal mit einem typisierten Parameter.
SOnst gehen mir die Optionen aus.

Mfg Torsten

24.12.2020 - 13:11 Uhr

verwendetes Datenbanksystem: <MS SQL Server>

Hallo Leute,
ich brauche ein wenig Unterstützung. Ich habe mit in c# eine Datapump geschrieben. Ziel ist es Daten aus einer Produktiv DB in dein Test DB zu kopieren. Die Datenbankstruktur ist gleich.
Ich lese die Daten aus der Quell DB in mehrere Tables ein. Dann will ich die Daten von den Tables per SQL Parameter Query in die Ziel DB kopieren. Alles klappt super. Aber ich habe ein varbinary Feld dabei. Und da komme ich nicht weiter. Damit will es einfach nicht klappen.

Beispiel:


foreach(DataRow r in table.Rows)
{
   SQL.PARAMETER["binary"].Value = (byte[]) r["binary"];
...
}

Ich bekomme immer ein SQL Fehler wegen dem varbinary.

Danke und Frohe Weihnachten
Torsten

24.06.2020 - 16:16 Uhr

Hallo Leute,

ich soll folgendes in eine Integer wandeln "11110000". Ob Big- oder Little Endian weiß ich noch nicht. Antwort bekomme ich morgen. Gibt es dafür überhaupt eine Funktion oder muss ich das selber erstellen. Wir brauchen den Integer Wert für die Schnittstelle (Com Port). Die Gegenstelle (Fremdprogramm) wandelt dann wieder zurück in die Bit-Mask.

Mfg Torsten

14.06.2019 - 13:40 Uhr

Hey,
da würde ich auch gern vermeiden. Ich hasse das. Aber manchmal geht es nicht anders. Hat jemand vielleicht eine andere Idee???

14.06.2019 - 12:32 Uhr

Hey,
ok ob r Release oder runtime ist egal, hat der Schöpfer des Programmes so gemacht. Aber die unterschiedlichen Namen haben schon sehr oft zu Problemen beim Kunden und Testen geführt. Schlimmstenfalls sind beide Versionen in der Registry registriert 😭
Nein es gibt keine Fehlermeldeung und ich bin als Admin angemeldet.

Ich war der Meinung, wenn ich direkt in der Registry lösche sind die Einträge weg. Pustekuchen.

14.06.2019 - 12:22 Uhr

Hallo,
ich glaube Du hast da etwas falsch verstanden. Es geht nicht um GAC. Es geht um DCom DLL's.

14.06.2019 - 11:48 Uhr

Hallo Leut, ich brauche mal eure Unterstützung. Wir haben ein Programm, bei dem DLL registriert werden müssen. Diese DLL's gibt es in 2 Ausführungen (*d.dll und *r.dll, debug und runtime) Nun habe ich den Fehler, dass in der Registrierung(Registry.HKLM.ClassesRoot/CLSID) die falschen drin stehen. Debug stehen drin und im Verzeichnis sind die Runtime drin. Nun habe ich folgendes Problem:
ich habe ein Batch, welcher mir die Dateien registriert und unregistriert. Schlägt aber fehl, da die echten DLL's nicht im Verzeichnis sind!

Jetzt dachte ich, ich mach mir ein kleines Programm, lese die betreffenden DLL aus HKLM/ClassesRoot/CLSID aus und suche die dazu gehörenden Einträge per CLSID. Diese lösche ich dann beide. Aber nach dem Neueinlesen der Registry sind diese wieder drin?

Warum????

21.03.2019 - 15:09 Uhr

Hallo Leute,
ich installiere auf einem Win2012 Server R2 eine DCom basierende Anwendung. Ich habe in den DCom Einstellungen die Berechtigungen gesetzt, die Firewall ist aus.
Deti und Druckerfreigabe ist an.

Wenn ich das Programm starte bekommen ich folgenden Fehler:

Fehlermeldung:
DCOM was unable to communicate with the computer LLR1 using any of the configured protocols; requested by PID d94 (C:\Rodotec\bin\CxFrameR.exe).

Ich habe das Internet durchforstet und alles versucht nichts hilft. Hat jemand von Euch noch eine Idee????

BItte 😉

21.03.2019 - 15:02 Uhr

Hallo Leute,

ich habe mein Arbeitslaptop mit dem Standalone Converter virtualisiert.

Zu Hause habe ich dann das Image in meine VMWare 12 Workstation eingebunden und gestartet. Alles Super. Aber ich kann mich nicht einloggen, da keine Tastatur vorhanden ist. Die Maus ist da und funktioniert aber keine Tastatur 😭

Das Image will auch die neuesten Tools installieren aber ohne Tastatur??

Hat jemand eine Idee??

04.01.2019 - 13:41 Uhr

@Abt
Danke, beim nächsten Mal mach ich es richtig.

Ich bin jetzt ein ganzes Stück weiter. Ich kann deinstallieren und wieder installieren.
Aber ich will die Rechner nicht neustarten, da sie sich in einer Produktionsumgebun stehen. Also nach dem Fonttausch mit SendMessage dem System die Änderung mitteilen. Aber dabie friert die Anwendung ein:


   const int WM_FONTCHANGE = 0x001D;
   const int HWND_BROADCAST = 0xffff;
   SendMessage(new IntPtr(HWND_BROADCAST), WM_FONTCHANGE, IntPtr.Zero, IntPtr.Zero);

Woran liegt das? Ich habe schon gegoogelt aber nichts verwertbares gefunden.

03.01.2019 - 15:42 Uhr

Hallo Leute,
ich brauch mal wieder Unterstützung von Euch. Ich muss ein FontUpdate machen. Dieser soll auf dem Zielsystem eigene Fonts installieren. Ich habe schon einiges bei Google gefunden. Also das Installieren geht einfach, aber ich will die Schriftarten vorher auch deinstallieren. Dafür hole ich mir die Installierten Schriften und filtere unserer raus. Soweit so gut. Aber hier stehen nur die Beschreibung der Schriftarten drin und nicht die Dateinamen. Wie komme ich jetzt von der Bezeichnung zu dem Dateinamen.

Desweiteren wie lösche ich dann die Datei im Fontsverzeichnis??? Das ist ja irgendwie geschützt.

Danke für Eure Hilfe.

25.10.2018 - 13:30 Uhr

Es handelt sich um Cab Drucker(maschinen) welche Blechtypenschilder lasern.
Das Editorprogramm ist sehr gewöhnungsbedürftig. Man kann aber mit diesem halt ein plt- oder dxf Datei importieren. Also ist unser Gedanke, den Typenschildinhalt mit einem anderen Layoutprogramm zu erstellen und dieses dann als plt oder dxf Datei zu speichern.

So ist der Gedanke.

28.09.2018 - 10:24 Uhr

Danke für deine Antwort.
Wie gesagt ich hatte vorher schon gesucht und ich suche immer noch.

Ist doch schon verzwickt.

Mein Vorhaben:
Ich habe ein Bild(Grafik) mit mehreren Grafikobjekten erstellt und will das als Vectorgrafik an eine Lasermaschine(drucker) übergeben. Dieser kann nur PLT odr DXF.

21.09.2018 - 07:22 Uhr

Guten Morgen,

@Abt:
Bitte nicht gleich so feindselig. Ich habe schon mehrere Stunden mit Google verbracht und auch die gennanten Seiten und Konvertierer probiert. Alle mit einem negativen Erfolg.

Da habe ich auf die Community gesetzt. Viele Köpfe wissen viel. Aber trotzdem Danke.

20.09.2018 - 17:01 Uhr

Hallo Leute,
ich brauche Hilfe von Euch. Ich habe mit einer Komponente eine SVG Datei erstellt. Das Zielprogramm kann aber nur DXF oder PLT einlesen. Ich möchte ein kleines Programm schreiben, welches die svg nach plt umschreibt. Geht das überhaubt?? Wenn ja wie und womit???

Oder gibt es eine Möglichkeit einen Canvas als plt zu speichern???

Vielen Dank für Eure Hilfe 😉

01.08.2018 - 09:05 Uhr

Danke, jetzt geht es. Ihr seid die Besten 👍

01.08.2018 - 08:17 Uhr

Guten Morgen,
ich brauch Eure Hilfe. ich habe da folgende Struktur:


public struct WorkplanData
    {
        public string stationNr;
        public string workplanProcessStepNo;
        public string setupFlag;
        public string obligatoryConfirmFlag;
        public string erpGroupDesc;
        public string erpGroupNo;
        public int separationFlag;
        public int processLayer;
        public int qtyPsScrap;
        public int qtyWoOpen;
        public int fail;
        public int scrap;
        public string avo;
        public int pass;
        public int nextWorkstepConfirm;
        public int prevWorkstepConfirm;
        public int nextWorkstep;
        public int prevWorkstep;
        public int validTo;
        public int validFrom;
        public int threadNo;
        public int voucherNo;
        public int processStepNo;
        public int workstepNo;
        public string workOrder;
        public int qtyWoTotal;

        public WorkplanData(string stationNr, string workOrder, int workstepNo, int processStepNo, int voucherNo, int threadNo, int validFrom, int validTo, int prevWorkstep, int nextWorkstep, int prevWorkstepConfirm, int nextWorkstepConfirm, int qtyWoTotal, int pass, int scrap, int fail, int qtyWoOpen, int qtyPsScrap, int processLayer, int separationFlag, string erpGroupNo, string erpGroupDesc, string obligatoryConfirmFlag, string setupFlag, string workplanProcessStepNo, string avo);
    }

Diese Struktur wird als Array vom Strkturtyp gefüllt.
Soweit alles ok. Die eigentliche Auswertung läuft über eine For Schleife:


 for (int i = 0; workplanData != null && i < workplanData.Length; i++)
            {
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].workOrder: ") + "<" + workplanData[i].workOrder + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].workstepNo: ") + "<" + workplanData[i].workstepNo + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].processStepNo: ") + "<" + workplanData[i].processStepNo + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].voucherNo: ") + "<" + workplanData[i].voucherNo + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].threadNo: ") + "<" + workplanData[i].threadNo + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].validFrom: ") + "<" + workplanData[i].validFrom + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].validTo: ") + "<" + workplanData[i].validTo + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].prevWorkstep: ") + "<" + workplanData[i].prevWorkstep + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].nextWorkstep: ") + "<" + workplanData[i].nextWorkstep + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].prevWorkstepConfirm: ") + "<" + workplanData[i].prevWorkstepConfirm + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].nextWorkstepConfirm: ") + "<" + workplanData[i].nextWorkstepConfirm + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].qtyWoTotal: ") + "<" + workplanData[i].qtyWoTotal + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].pass: ") + "<" + workplanData[i].pass + ">");
                Console.Out.WriteLine(fillWithSpace("workplanData[" + i + "].scrap: ") + "<" + workplanData[i].scrap + ">"); ....

Das kann es aber nicht sein.
ich würde dies gerne besser lösen. Etwa so:


for (int i = 0; workplanData != null && i < workplanData.Length; i++)
            {
                //ListViewItem l = listView1.Items.Add(workplanData[a].GetType().Name);
                //l.SubItems.Add(workplanData[a].GetType());

                WorkplanData data = workplanData[i];
                FieldInfo[] infos = data.GetType().GetFields();

                foreach (FieldInfo fi in infos)
                {
                    object value = fi.GetValue(infos);
                    ListViewItem l = listView1.Items.Add(fi.Name);
                    l.SubItems.Add(value.ToString());
                    if (l.Index % 2 == 0) l.BackColor = Color.Beige;
                }
...

Die Datensollen in einer Listview angezeigt werden, anders als oben. Aber das ist nicht das Problem. Es muss doch eine Möglichkeit geben eine Struktur den Feldnamen und Wert herauszulesen. Laut Hilfe soll es gehen, aber ich bekomme immetr folgenden Fehler:

Fehlermeldung:
System.ArgumentException
HResult=0x80070057
Nachricht = Das für den Typ "com.itac.easyworks.api.idl.WorkplanData" definierte Feld "stationNr" ist kein Feld im Zielobjekt, welches Typ "System.Reflection.FieldInfo[]" hat.
Quelle = mscorlib
Stapelüberwachung:
at System.Reflection.RtFieldInfo.CheckConsistency(Object target)
at System.Reflection.RtFieldInfo.InternalGetValue(Object obj, StackCrawlMark& stackMark)
at System.Reflection.RtFieldInfo.GetValue(Object obj)
at iTacMII_Test.FrmMain.button1_Click(Object sender, EventArgs e) in C:\Projekte\iTacMII_Test\iTacMII_Test\Form1.cs:line 153
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at iTacMII_Test.Program.Main() in C:\Projekte\iTacMII_Test\iTacMII_Test\Program.cs:line 18

Kann mir jemend einen Hinweis geben?

Danke 😉

01.06.2018 - 11:53 Uhr

Ich habe wahrscheinlich selbst eine Möglichkeit gefunden. Ich will die Grafikobjekte in einer Liste speichern. Das klappt auch ganz gut. Zum Speichern will ich diese Serialisieren, aber ich bekomme immer einen Fehler.


[Serializable]
    public class MyLine : MyGraphicObject
    {
        public MyLine(Pen pen, Point start, Point end)
            : base(pen)
        {
            Path.AddLine(start, end);
        }
    }


S> Fehlermeldung:

ystem.Runtime.Serialization.SerializationException
HResult=0x8013150C
Nachricht = Der Typ "System.Drawing.Pen" in Assembly "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" ist nicht als serialisierbar gekennzeichnet.
Quelle = mscorlib
Stapelüberwachung:
bei System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
bei System.Runtime.Serialization.FormatterServices.<>c__DisplayClass9_0.<GetSerializableMembers>b__0(MemberHolder _)
bei System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)
bei System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder)
bei System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
bei System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
bei GrafikLayer.MainForm.button1_Click(Object sender, EventArgs e) in C:\Projekte\GrafikLayer\GrafikLayer\Form3.cs: Zeile171
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei GrafikLayer.Program.Main(String[] args) in C:\Projekte\GrafikLayer\GrafikLayer\Program.cs: Zeile21

wenn ich aber Pen als [Serializable] markiere meckert die IDE rum, das man das nicht machen kann!!!!

Weiß jemand rat?

31.05.2018 - 14:22 Uhr

Hallo Leute,
ich stehe vor einem interessanten Problem. Grafik ist nicht so mein Ding, aber eine Herausforderung.
Folgendes:
ich muss ein Programm erstellen, mit dem ich ein Bild anzeige und darüber einen Layer legen kann. Auf diesem Layer sezte ich Punkte und die muss ich ansprechen können und auch die Farbe wechseln. Also bis zum Bild laden bekomme ich hin und dann kein Plan.

Kann mir jemand helfen. Ist echt wichtig 😉

02.05.2018 - 11:58 Uhr

Hallo,
ich versuche ein Tutorial aus dem Internet nachzubauen. Das Projekt ist erstellt und ich will die Xamarin Vorrschau nutzen, aber diese ist unter Ansicht-> weitere Fenster
nicht zu finden. Ich befinde mich im Android Projekt. Woran liegt das?

Mfg Torsten

PS:

Meine Entwicklungsumgebung:

Microsoft Visual Studio Community 2017
Version 15.6.7
VisualStudio.15.Release/15.6.7+27428.2043
Microsoft .NET Framework
Version 4.7.02558

Installierte Version: Community

Visual C++ 2017 00369-60000-00001-AA970
Microsoft Visual C++ 2017

Visual F# Tools 10.1 für F# 4.1 00369-60000-00001-AA970
Microsoft Visual F# Tools 10.1 für F# 4.1

Allgemeine Azure-Tools 1.10
Bietet allgemeine Dienste für die Verwendung durch Azure Mobile Services und Microsoft Azure-Tools.

Application Insights-Tools für Visual Studio-Paket 8.11.10402.2
Application Insights-Tools für Visual Studio

ASP.NET and Web Tools 2017 15.0.40314.0
ASP.NET and Web Tools 2017

ASP.NET Core Razor Language Services 1.0
Provides languages services for ASP.NET Core Razor.

ASP.NET Web Frameworks and Tools 2017 5.2.51214.0
Zusätzliche Informationen finden Sie unter https://www.asp.net/.

Azure App Service Tools v3.0.0 15.0.40215.0
Azure App Service Tools v3.0.0

Azure Data Lake Node 1.0
This package contains the Data Lake integration nodes for Server Explorer.

Azure Data Lake Tools for Visual Studio 2.3.3000.4
Microsoft Azure Data Lake Tools for Visual Studio

Azure Functions and Web Jobs Tools 15.0.40405.0
Azure Functions and Web Jobs Tools

Azure Stream Analytics Tools for Visual Studio 2.3.3000.4
Microsoft Azure Stream Analytics Tools for Visual Studio

C#-Tools 2.7.0-beta3-62715-05. Commit Hash: db02128e6e3c4bdfc93e6ec425ac9162b4d4fe80
C#-Komponenten, die in der IDE verwendet werden. Je nach Projekttyp und Einstellungen kann eine andere Compilerversion verwendet werden.

Fabric.DiagnosticEvents 1.0
Fabric-Diagnoseereignisse

JavaScript-Sprachdienst 2.0
JavaScript-Sprachdienst

JavaScript Project System 2.0
JavaScript Project System

JavaScript UWP-Projektsystem 2.0
JavaScript UWP-Projektsystem

Merq 1.1.17-rc (cba4571)
Command Bus, Event Stream and Async Manager for Visual Studio extensions.

Microsoft Azure-Tools 2.9
Microsoft Azure-Tools für Microsoft Visual Studio 2017 – v2.9.51212.2

Microsoft Azure HDInsight Azure Node 2.3.3000.4
HDInsight Node under Azure Node

Microsoft Azure Hive Query Language Service 2.3.3000.4
Language service for Hive query

Microsoft Azure Service Fabric Tools für Visual Studio 2.0
Microsoft Azure Service Fabric Tools für Visual Studio

Microsoft Azure Stream Analytics Language Service 2.3.3000.4
Language service for Azure Stream Analytics

Microsoft Azure Stream Analytics Node 1.0
Azure Stream Analytics Node under Azure Node

Microsoft Continuous Delivery-Tools für Visual Studio 0.3
Die Konfiguration der fortlaufenden Buildintegration und der fortlaufenden Buildbereitstellung innerhalb der Visual Studio-IDE wird vereinfacht.

Microsoft JVM Debugger 1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft MI-Based Debugger 1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C-Assistenten 1.0
Microsoft Visual C
-Assistenten

Microsoft Visual Studio Tools for Containers 1.1
Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.

Mono Debugging for Visual Studio 4.9.11-pre (71eb098)
Support for debugging Mono processes with Visual Studio.

Node.js-Tools 1.4.11027.3
Fügt Unterstützung für das Entwickeln und Debuggen von Node.js-Apps in Visual Studio hinzu

NuGet-Paket-Manager 4.6.0
NuGet-Paket-Manager in Visual Studio. Weitere Informationen zu NuGet finden Sie unter "http://docs.nuget.org/".

Office Developer Tools für Visual Studio 2017 – DEU 15.0.27326.00
Microsoft Office Developer Tools für Visual Studio 2017 – DEU

ProjectServicesPackage Extension 1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

SQL Server Data Tools 15.1.61801.210
Microsoft SQL Server Data Tools

ToolWindowHostedEditor 1.0
Hosting json editor into a tool window

TypeScript-Tools 15.6.20202.3
TypeScript-Tools für Microsoft Visual Studio

VC-Paket für Microsoft Visual Studio 1.0
VC-Paket für Microsoft Visual Studio

Visual Basic-Tools 2.7.0-beta3-62715-05. Commit Hash: db02128e6e3c4bdfc93e6ec425ac9162b4d4fe80
Visual Basic-Komponenten, die in der IDE verwendet werden. Je nach Projekttyp und Einstellungen kann eine andere Version des Compilers verwendet werden.

Visual C++ für plattformübergreifende Mobile-Entwicklung 15.0.27428.2015
Visual C++ für plattformübergreifende Mobile-Entwicklung

Visual Studio-Tools für Apache Cordova 15.123.7102.2
Visual Studio-Tools für Apache Cordova

Visual Studio-Tools für CMake 1.0
Visual Studio-Tools für CMake

Visual Studio Code-Debugadapter-Hostpaket 1.0
Interopebene zum Hosten der Visual Studio Code-Adapter in Visual Studio

Visual Studio Tools für universelle Windows-Apps 15.0.27428.01
Mit den Visual Studio Tools für universelle Windows-Apps können Sie eine universelle App-Erfahrung erstellen, die auf jedem Gerät genutzt werden kann, das Windows 10 ausführt: Smartphone, Tablet, PC und viele weitere Geräte. Das Microsoft Windows 10 SDK ist in den Tools enthalten.

VisualStudio.Mac 1.0
Mac Extension for Visual Studio

Workflow Manager Tools 1.0 1.0
Dieses Paket enthält die erforderlichen Visual Studio-Integrationskomponenten für Workflow Manager.

Xamarin 4.9.0.753 (f0f46392f)
Visual Studio-Erweiterung, um Entwicklung für Xamarin.iOS und Xamarin.Android zu ermöglichen.

Xamarin Designer 4.10.96 (a702a9ceb)
Visual Studio extension to enable Xamarin Designer tools in Visual Studio.

Xamarin.Android SDK 8.2.0.16 (HEAD/a78295902)
Xamarin.Android Reference Assemblies and MSBuild support.

Xamarin.iOS and Xamarin.Mac SDK 11.9.1.24 (f62de47)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

13.02.2018 - 16:05 Uhr

Hallo Leute,
ich bekomme noch einen knall. Ich habe mehrere DLL's auf einem Remotecomputer. Diesen kann ich auch Remotedebuggen. Alles kein Thema, aber immer weider kommt es vor, das sich auf einmal einieg DLL's nicht mehr debuggen lassen, da die Symboldateien nicht mehr passen ?!?!?!? An den Projektoptionen ist nichts verändert worden. Weiss jemand was das ist?

Die DLL und pdb dateien sind zusammen erstellt worden. Codeoptimierung ist überall aus.

Ich suche mir hier einen Wolf.

Danke Torsten 8)

PS: Gerdae gefunden:
C:\Rodotec\Bin\CxRDLViewerControl.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
P:\CxPool\Bin\CxRDLViewerControl.pdb: Symbole wurden geladen.
Die Symboldatei enthält keine systemeigenen Symbole.

Was heißt das nun? Ich habe nichts an der DLL wissentlich verändert!!!!