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 Little Tester
Thema: Wann wann darf man eine Frage auch in einem anderen Forum stellen?
Am im Forum: Smalltalk

Ich hatte keine Antwort bekommen und es war in einem anderen Forum zu einer anderen Sprache. Crossposting kann laut Abt unangenehme Folgen haben und ich bin auch niemand der sich nachsagen sagen will mehrere Communitys gleichzeitig zu beschäftigen oder zu ungeduldig zu sein. Nerven will ich auch nicht.
c# Datum umwandeln?
(Der Moderationshinweis)

Thema: Wann wann darf man eine Frage auch in einem anderen Forum stellen?
Am im Forum: Smalltalk

Wir hatten das Thema schon, deswegen frage ich hier auch nach. Ich habe in einem anderen Forum vor über eine Woche eine Frage gestellt, aber keine Antwort bekommen. Ich rechne auch nicht mehr damit. Das Problem konnte ich aber auch noch nicht lösen.

Ab wann ist es laut allgemeiner Netiquette legitim die Frage auch anderswo zu stellen ohne das es als Crossposting gewertet wird?

Thema: Wie eine vernünftige Anwendungsstruktur erstellen? Wie unnötige Dateien ausfiltern?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke Jompikumpi. Der Veröffentlichungsassistent sortiert diese Dateien bereits aus. Das ist gut. Ich habe auch rausgefunden, wie man den vernünftig nutzt und die .deploy-Endungen weglassen kann. Das erzeugt bereits ein richtig gutes Ergebnis. Noch störe ich mich an zwei Dingen:

- Die .application-Datei (NICHT .exe-Datei), die nicht funktioniert und auch nicht gebracht wird.
- Das automatisch die Unterordner "Application Files\Systeminventory_1_0_0_0" erstellt und dort die Dateien abgelegt werden. Ich kann zwar den Sinn dahinter verstehen, nämlich dass jede Version erhalten bleibt, aber ich müsste dann den Pfad des Installers dann immer anpassen.
- Bezugnehmend auf den vorherigen Punkt: Ist es möglich (ggf. durch eine Erweiterung) beim Veröffentlichen einer neuen Version das gesamte Projektverzeichnis extra abzuspeichern, also den Stand zu sichern? Das wäre super.

Zugegeben: Das sind alles Luxusprobleme. Man kann das alles von Hand machen. Automatisch wäre halt schöner.

@Abt: Ja, habe ich gelesen. Hätte aber sein können, dass es unter .Framework 4.x einfach anders heißt und / oder anders geregelt ist, ggf. externe Erweiterungen gibt. Deswegen hatte ich nochmal gefragt.

Ich habe jetzt auch schon mehrfach gemerkt, dass .Net 5.0 einiges anders macht und verbessert. Mit Abschluss dieser Version und dem erscheinen von VS 2022 und .Net 6 (=LTS-Version) wird umgestiegen.

Thema: Wie eine vernünftige Anwendungsstruktur erstellen? Wie unnötige Dateien ausfiltern?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke Abt.

Ich denke das Thema "Application publishing - .NET" und "Trim self-contained applications - .NET" ist das was ich brauche.
Das bezieht sich aber alles auf .Net Core, bzw. .Net 5, bzw. letzteres ist sogar nur dafür verfügbar, bei erstem ist es wohl das was ich suche?

Zitat
// https://docs.microsoft.com/de-de/dotnet/core/deploying/trim-self-contained
Hinweis
Beim Kürzen handelt es sich um experimentelles Feature in .NET 3.1 und .NET 5.0. Kürzen ist nur für Anwendungen verfügbar, die eigenständig veröffentlicht werden.
Mein Projekt ist noch .Net 4.8. Suche ich nach was anderem?

Thema: Wie eine vernünftige Anwendungsstruktur erstellen? Wie unnötige Dateien ausfiltern?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wenn man seine Anwendung mit VS startet gibt es im Release-Ordner bei mir folgendes Ergebnis. (Siehe Bild). Alles landet in einem Ordner ohne Unterordner. Soweit ja auch OK. Während der Entwicklung habe ich da gar nicht weiter drüber nachgedacht.

Jetzt will ich die Anwendung installieren.
Mit Inno-Setup gehe ich den Assistenten durch und wähle dann den Ordner aus. Inno Setup packt dann alle Dateien zusammen. Nach der Installation sieht der Installationsordner dann genauso aus, wie der Release-Ordner + halt die unins000.dat und unins000.

Bei keiner Anwendung habe ich bislang eine solche Struktur mit solchen Dateien gesehen. Normal gibt es Unterordner, wo das alles etwas aufgeräumt ist.
Ich habe mal die .pdb und .xml-Dateien entfernt. Damit sieht das schon eher aus, wie bei anderen Anwendungen. Meine Anwendung scheint auch zu funktionieren, so dass die entfernten Dateien scheinbar unnötig sind. (Ist dem so, wozu werden sie dann überhaupt erstellt?)
Jetzt würde ich die .dll-Dateien in einen eigenen Ordner packen wollen. Das macht die Anwendung aber nicht mit (Logisch)

Jetzt meine Fragen:
- Wie kann man eine ordentliche Ordnerstruktur erstellen?
- Wie kann ich sicherstellen, dass die entfernten Dateien wirklich nicht benötigt werden? (Ich habe die Anwendung natürlich getestet)
- Kann man die vorhandenen .dlls verkleinern. Ich greife ja vermutlich nur auf einen Bruchteil der darin enthaltenen Funktionen zu.

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Ich habe das ganze mal auf der Projektseite eingetragen. Sollen ja am ende alle was von haben.

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

So, erstmal ein rießen fettes Danke an Th69.
- dafür, dass er vorbehaltlos meiner programmiertechnischen Defizite analytisch an die Sache rangegangen ist.
- dafür, dass er rausgefunden hat, dass nicht versucht wird die AutoUpdater.NET.dll aufzurufen, sondern diese in das geschützte Verzeichnis zu schreiben.
- dafür, dass er die Lösung gefunden hat.


var currentDirectory = new DirectoryInfo(Application.StartupPath);
funktioniert.

Ich möchte aber zu meiner Verteidigung sagen, dass ich der Dokumentation gefolgt bin, weil so wie ich es geschrieben hatte steht es auch da.

Trotz alle dem bin ich jetzt irritiert, ob ich die Libray richtig einsetze? Ich bin der Beschreibung auf Startseite des Projekts gefolgt. Abt verweist hingegen auf dieses Script. Ich habe dieses Script übrigens als Teil von AutoUpdater.NET gesehen und nicht als Beispielcode zur Anwendung.

Übrigens: Bei nuget ist es tatsächlich als Autoupdater.NET.Official gelistet. Bei GitHub hingegen als AutoUpdater.NET und beim using wird AutoUpdaterDotNET; angegeben. Daher habe ich es halt so hier geschrieben.

Zudem wäre es schon interessant, was beim Autostart über die Registry anders läuft (und Environment.CurrentDirectory dann quer schießt), als beim manuellen Aufruf, bzw. beim Aufruf über die Verknüpfung im Autostart-Ordner.

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Stop Abt. Mit dieser Datei habe ich rein gar nichts zu tun.
Ich habe AutoUpdater.NET über nuget installiert und habe es exakt so verwendet, wie oben geschrieben. Klar halt noch das


using AutoUpdaterDotNET;
und dann halt die Pfadangabe


const string updatePath = "https://example.com/update/systeminventory/AutoUpdaterTest.xml";


            // Auf Update kontrollieren.
            // AutoUpdater.NET über NuGet installieren.
            try
            {
                AutoUpdater.Start(updatePath);
                AutoUpdater.ShowSkipButton = false;
                AutoUpdater.ShowRemindLaterButton = false;
                AutoUpdater.Mandatory = true;
                //AutoUpdater.UpdateMode = Mode.Forced;
                AutoUpdater.RunUpdateAsAdmin = false;
                 var currentDirectory = new DirectoryInfo(Environment.CurrentDirectory);
                if (currentDirectory.Parent != null)
                {
                    AutoUpdater.InstallationPath = currentDirectory.FullName;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Problem im Abschnitt Update");
            }

Was habe ich da jetzt falsch gemacht? Die Doku habe ich gelesen, ist ja auch sehr einfach gehalten.

Edit: Ich verwende auch die neuste Version von AutoUpdater.NET (Stand heute 1.7.0)

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Danke, dass du den Link noch dazu gepostet hattest. Ich bezog das WorkingDir auf VS und nicht auf Inno Setup und hatte schon wieder Angst ich kenne wiedermal eine Grundlage nicht und bekomme dafür Kritik.

Also das mit der Verknüpfung funktioniert sowohl mit {userstartup} als auch {commonstartup}.
Ich habe aber gelesen, dass diese Methode veraltet ist und man heutzutage die Registry nutzen sollte. Was meint ihr dazu? Workaround oder Lösung?

Zitat
[Icons]
Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\Systeminventory.exe"; WorkingDir: "{app}"

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

@Abt: Wie meinst du das? Was habe ich überlesen?

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Auch das feste Angeben eines Downloadpfad funktioniert nicht. Immerhin wurde jetzt aber was heruntergeladen und ich habe eine *.log-Datei, die ich hier mal einstelle:

Anwendung startet automatisch:

Zitat
Donnerstag, 19. August 2021 09:59:41

ZipExtractor started with following command line arguments.
[0] C:\Systeminventory\ZipExtractor.exe
[1] C:\Systeminventory\update.zip
[2] C:\Windows\SysWOW64
[3] C:\Systeminventory\Systeminventory\Systeminventory.exe

Waiting for application process to exit...
BackgroundWorker started successfully.
Found total of 20 files and folders inside the zip file.

System.UnauthorizedAccessException: Der Zugriff auf den Pfad "C:\Windows\SysWOW64\AutoUpdater.NET.dll" wurde verweigert.
bei ZipExtractor.FormMain.<>c__DisplayClass4_1.<FormMain_Shown>b__2(Object _, RunWorkerCompletedEventArgs eventArgs)

Wenn ich die Anwendung manuell starte:
Zitat
Donnerstag, 19. August 2021 10:00:59

ZipExtractor started with following command line arguments.
[0] C:\Systeminventory\ZipExtractor.exe
[1] C:\Systeminventory\update.zip
[2] C:\Systeminventory\Systeminventory
[3] C:\Systeminventory\Systeminventory\Systeminventory.exe

BackgroundWorker started successfully.
Found total of 20 files and folders inside the zip file.
Extracting AutoUpdater.NET.dll [5%]
Extracting AutoUpdater.NET.pdb [10%]
Extracting AutoUpdater.NET.xml [15%]
Extracting Flurl.dll [20%]
Extracting Flurl.Http.dll [25%]
Extracting Flurl.Http.pdb [30%]
Extracting Flurl.pdb [35%]
Extracting Flurl.xml [40%]
Extracting Interop.WUApiLib.dll [45%]
Extracting Microsoft.WindowsAPICodePack.dll [50%]
Extracting Microsoft.WindowsAPICodePack.Shell.dll [55%]
Extracting Microsoft.WindowsAPICodePack.Shell.xml [60%]
Extracting Microsoft.WindowsAPICodePack.xml [65%]
Extracting Newtonsoft.Json.dll [70%]
Extracting Newtonsoft.Json.xml [75%]
Extracting System.ValueTuple.dll [80%]
Extracting System.ValueTuple.xml [85%]
Extracting Systeminventory.exe [90%]
Extracting Systeminventory.exe.config [95%]
Extracting Systeminventory.pdb [100%]
Successfully launched the updated application.

Ich frage mich mittlerweile, ob ich nicht auf einen Bug gestoßen bin und ich es auf der Projektseite bei GitHub melden sollte? Was meint ihr? Interessant wäre halt zunähst raus zu bekommen, was beim Start der Anwendung über den Autostart anders läuft, als beim manuellen Start.

@dannoe: Wie kann ich das mit dem Debuggen und Anhängen eines Prozesses machen Die Anwendung läuft doch unabhängig von VS.


Edit: Der Vollständigkeit wegen hier noch das Installscript. Ich habe den Registry-Eintrag der Dokumentation entsprechend mal abgeändert.

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Systeminventory"
#define MyAppVersion "1"
#define MyAppPublisher "*****"
#define MyAppURL "https://www.*****"
#define MyAppExeName "Systeminventory.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{*****}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=C:\Systeminventory\{#MyAppName}
DisableDirPage=yes
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename=Systeminventory-Setup
SetupIconFile=C:\Users\*****\source\repos\setup.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "german"; MessagesFile: "compiler:Languages\German.isl"

[Files]
Source: "C:\Users\*****\source\repos\Systeminventory\Systeminventory\bin\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\*****\source\repos\Systeminventory\Systeminventory\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Registry]
 Root: HKA; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Systeminventory"; ValueData: """{app}\Systeminventory.exe"""; Flags: uninsdeletevalue 

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Danke dannoe. Klappt aber leider auch nicht. Mit


AutoUpdater.DownloadPath = Environment.CurrentDirectory;
(wie im Link vorgeschlagen) gibt es folgenden Fehler, aber auch nur wenn das Programm beim Login gestartet wird. Manuell gestartet läuft alles durch.
Zitat
---------------------------
System.Net.WebException
---------------------------
Ausnahmefehler während einer WebClient-Anforderung.
---------------------------
OK
---------------------------

Ich habe mal mit O&O RegEditor (x64) geguckt, wo der Installer den Autostarteintrag macht. Sieht wie folgt aus. Könnt ihr da was mit anfangen?

Schlüssel: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
Daten: "C:\Systeminventory\Systeminventory\Systeminventory.exe" /login
Habs auch ohne den Schalter "/login" probiert.

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Jetzt wo du es sagst... in dem Ordner schreibe ich nichts rein und es liegt dort auch gar keine AutoUpdater.NET.dll.
Wie kommt die Anwendung nur darauf das die dort liegen soll? Die AutoUpdater.NET.dll liegt dort, wo sie hingehört, nämlich im Verzeichnis der Anwendung zu der sie gehört (In dem Fall C:\Systeminventory\Systeminventory)

Edit: So setze ich AutoUpdater.NET ein:


            // Auf Update kontrollieren.
            // AutoUpdater.NET über NuGet installieren.
            try
            {
                AutoUpdater.Start(updatePath);
                AutoUpdater.ShowSkipButton = false;
                AutoUpdater.ShowRemindLaterButton = false;
                AutoUpdater.Mandatory = true;
                //AutoUpdater.UpdateMode = Mode.Forced;
                AutoUpdater.RunUpdateAsAdmin = false;
                var currentDirectory = new DirectoryInfo(Environment.CurrentDirectory);
                if (currentDirectory.Parent != null)
                {
                    AutoUpdater.InstallationPath = currentDirectory.FullName;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Problem im Abschnitt Update");
            }

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Hallo ihr lieben,

Ich habe mir mit Inno-Setup einen Installer für mein Programm gebaut und lasse es in den Autostart eintragen. Programm startet auch und tut was es soll.
Inno-Setup


[Registry]
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; \
    ValueType: string; ValueName: "Systeminventory"; \
    ValueData: """{app}\Systeminventory.exe"" /login"

Probleme gibt, es wenn eine neue Version zur Verfügung steht. Das erledige ich mit AutoUpdater.NET.
Wenn das Programm nach dem Einloggen dann startet und mir automatisch anzeigt, dass es ein Update gibt und ich updaten will, dann gibt es folgenden Fehler. Das Update wird auch nicht durchgeführt.
Zitat
---------------------------
System.UnauthorizedAccessException
---------------------------
Der Zugriff auf den Pfad "C:\Windows\SysWOW64\AutoUpdater.NET.dll" wurde verweigert.
---------------------------
OK
---------------------------

Starte ich das Programm ganz normal funktioniert das Update. Momentan arbeite ich mit Administratorrechten. An mangelnden Benutzerrechten kann es also nicht liegen, zumal das Programm ohnehin an einem Ort installiert ist, wo der Anwender Schreibzugriff hat und AutoUpdater.RunUpdateAsAdmin = false; gesetzt ist.

Ich habe keine Idee was ich machen kann oder warum das Problem auftritt. Debuggen geht ja auch nicht. Könnt ihr bitte helfen?

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Nennen wir es "Benutzerprivileg". Zumindest könnten dann (schonmal) eingeloggte Benutzer entscheiden was sie wollen. Gäste müssen dann halt dann nehmen, was das Team schlussendlich entscheidet.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Vielleicht besteht die Möglichkeit das die Benutzer das in den Einstellungen für sich festlegen können?

Thema: Deklaration, Definition, Initialisierung, Public, Private, Protected, Void
Am im Forum: Grundlagen von C#

Habe ich das so eigentlich richtig verstanden, damit es da keine Verwirrungen meinerseits gibt?

Eine Deklaration ist sowas wie:


string computerName;

Eine Initialisierung ist sowas:


const string emailAdress = "[email protected]"; // Variable unveränderbar
string emailAdress = "[email protected]"; // Variable änderbar

Eine Definition ist sowas wie eine Funktion, also beispielsweise das hier:


public void SendMail() {}

Was mir nicht klar ist: Wann in der Praxis verwendet man public und wann kommt private zum Einsatz und warum macht man nicht alles public? Dann gibt es noch protected, aber das scheint eine Sonderform zu sein, die ich kaum wo sehe, bzw. ich habe nur davon gehört, gesehen noch gar nie.

Bei Funktionen wird wohl immer public genommen. Beim Form_Load oder Button_Click nimmt VS automatisch private.

Bei Funktionen kenne ich nur den Zusatz "void". Gibt es noch andere? Welche und wann werden die in praktischen Fällen verwendet?

Thema: c# Datum umwandeln?
Am im Forum: Grundlagen von C#

Ja, aber DateTime soll man doch nicht nehmen, bzw. ist veraltet, bzw. an der Stelle auch das Falsche.
Arghs, das wird ja immer schlimmer.

Thema: c# Datum umwandeln?
Am im Forum: Grundlagen von C#

Auf Stackoverflow soll doch nicht diskutiert / Smaltalk gehalten werden, sondern nach Möglichkeit ausschließlich Code gepostet werden. Selbst meine Begrüßung im Erstposting wurde wegeditiert. Also anders als hier. Deswegen war das für mich kein Crossposting, sondern eine erweiterte Nachfrage zu einem existierendem Thema. Außerdem hat dort ja niemand mehr geantwortet und ich rechne auch nicht mehr damit. Dafür ist die Plattform zu groß und unübersichtlich, so dass mein Post irgendwo in den Untiefen untergegangen ist. Wundert mich eh, wie das funktioniert.

Beim Debug bekomme ich irgendwie überhaupt gar nichts.

Thema: c# Datum umwandeln?
Am im Forum: Grundlagen von C#

Ich bräuchte da nochmal eure Hilfe. Ich möchte nur das letzte Installationsdatum. Bei Stackoverflow hat man mir eine Lösung präsentiert, aber wenn ich die anwenden zu versuch, knallts wieder beim Datumsformat. Habs jedenfalls nicht hinbekommen.

Toll wäre also, wenn ihr mir sagen könntet, wie ich das maxDate in meinen Code einbauen kann oder nach Datum sortieren kann, womit ich dann ja auch automatisch das oberste bekommen würde. Letzteres würde die Möglichkeit offen halten (mit Version 2.0 meines Tools) einen Updateverlauf anzuzeigen.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Zum Thema Verlinkung: Finde neuen Tab auch besser. Ist eigentlich auch Standard, wenn auf eine fremde Seite verlinkt wird, die nicht zur eigenen Domain / Forum gehört. Denke nämlich meist auch nicht hier die mittlere Maustaste zu benutzen, weil wie gesagt das gefühlt 95% der Webseiten anders handhaben.

Thema: Wie Login-Mail deaktivieren?
Am im Forum: Wünsche und Kritik

Spamfilter anlernen und fertig. Manches läuft hier anders als in anderen Communitys

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Ja, hmmm. Irgendwie ist die Schrift nach dem Bearbeiten "silber" geworden. Hatte es danach bearbeitet und weggemacht, aber jetzt ist es wieder.

Edit: Grad nochmal rumprobiert: Lässt sich nicht reproduzieren...

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Tja, schreibt man allgemein heißt es, man sollte nicht für die Gemeinschaft sprechen, schreibt man für sich persönlich heißt es man sei "Ich"-bezogen. In jeder Community wollens die Admins und Mods anders haben und haben auch andere Vorstellungen davon, wie man sich auszudrücken hat. Man macht es immer falsch

Ich schreibe inzwischen so, wie es mir gerade liegt, weil ich der Meinung bin man sollte nicht auf die Sprache reduziert werden. Mittlerweile sollte man meinen Charakter ja auch ein bisschen kennen. Komme ich echt so "Ich"-Bezogen rüber? Eigentlich pflege ich schon den Communitygedanken, auch wenn ich oft "Ich" schreibe. Ich pflege einfache Sprache (Sieht man ja auch am Code und meinen gesuchten Lösungen) und verweigere auch im Berufsleben inzwischen das "gendern". Niemand kennt mich hier persönlich. Niemand von euch, weis ob ich ein Handicap habe, eine Behinderung, vielleicht deutsch nicht meine Muttersprache ist oder oder oder.. Also bitte hängt euch nicht daran auf, weil ein Beitrag, ein Satz oder gar ein Wort vielleicht nicht richtig gewählt sind oder ich mich nicht ganz so elegant, verschnörkelt oder gar unterwürfig ausdrücke.

Es ist schön, wenn von euch keine Gegenleistung erwartet wird. Ihr wollt ja auch keine Spenden (ja, ich hatte den Link angeklickt). Ich selbst habe diesen Anspruch an mich selbst, zumindest wenn so viel wie bei meinem Projekt nur dank Mithilfe der Community zustande kam. Deswegen möchte ich mein Projekt dann auch zumindest unter der Prämisse "Anschauungsprojekt" veröffentlichen. Aber logischerweise erst dann, wenn ich es selbst zu Version 1.0 erkläre und nicht irgendwas halbfertiges oder offensichtlich verbuggtes. (Dafür fehlen noch zwei Dinge)

Ich möchte mich auch nicht streiten, weil dafür kam hier einfach zu viel Hilfe und Entgegenkommen und hoffe auch weiter auf euch zählen zu dürfen. Ich möchte mich aber auch nicht anranzen lassen, weil ich es mir erlaubt habe ein Feature zu wünschen oder eine Mutmaßung zu äußern, die noch dazu auf der Mutmaßung eines anderen beruht. Das "Bitte bitte" war zwar bewusst doppelt (hätte ja auch ein Fehler sein können), sollte aber kein

Zitat
Ich will aber! Ich will aber!
sein, sondern Ausdruck dessen, dass mir das Feature wichtig gewesen wäre. Ich räume hinter mir nunmal gerne auf. Ist das verwerflich?

Edit: Und jepp, dass mein Datenbankdesign nicht ideal ist weis ich und sehe ich auch vollkommen ein. Mit Version 2.0 wird alles besser. Ich lerne ja.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

@Abt: Ich habe dein Nachtrag erst jetzt gelesen als ein neuer Beitrag kam, daher auch jetzt meine Antwort:

Ich weis jetzt ehrlich gesagt nicht, warum du mich derart angehst. Ich muss mir in solchen Fällen auch immer wieder anhören, dass meine Fehler schon im Design liegen, daher habe ich das mit Lächeln hier auch mal wieder gegeben. (Jaja, ist ein anderes Forum, aber du weist worauf ich hinaus will)

Natürlich weiß ich nicht, wie eure Datenbank im Hintergrund aufgebaut ist, aber wenn man PNs nicht löschen kann, weil "$begruendung" dann mag das vielleicht von euch so gewollt sein, schön ist es aber nicht. Das werde ich ja wohl noch sagen dürfen, oder darf ich als Noob und Hilfsbedürftiger vom Dienst keine eigene Meinung haben, bzw. die nicht äußern?

Auch, dass du mir zumindest indirekt vorwirfst ich wäre Ich-Bezogen und würde das Forum und die Community als für mich erstellt betrachten kann ich nicht nachvollziehen. Ja, ich frage momentan sehr viel, ja ich bin sehr hilfsbedürftig, ja ich habe mit der Programmierung meine Probleme und ja, vielleicht bin ich dafür auch nicht gemacht. Aber es interessiert mich, ich will es lernen und ich nehme dafür die kostenlose Hilfe dieser Community dankend an und ihr habt mich und mein Projekt enorm vorangetrieben und meine Motivation aufrecht erhalten, die zwischendrin etwas gesunken war. Um es klar zu sagen: Mein Projekt wäre ohne eure und auch deine persönliche Hilfe nicht da wo es jetzt steht und quasi fast einsatzbereit. Das verdanke ich euch und ich möchte den Quellcode am Ende, soweit das sinnvoll ist auch veröffentlichen. Ist ja schon fast ein Gemeinschaftswerk.

Ich habe gerade den Eindruck (möchte nichts unterstellen, es ist nur ein Eindruck, kann mich irren), dass du ne ganze Menge Frust gegen mich schiebst und mein Beitrag jetzt Anlass war dem freien Lauf zu lassen. Finde ich sehr schade, denn bislang war ich wirklich gerne Teil dieser Community und habe mich gut aufgehoben gefühlt und nicht von oben herab behandelt nach der Art "Lern erstmal die Basics und komm mit echten Problemen wieder". Dannoe der die Vermutung mit den PNs und nicht löschen ja zuerst aufstellte bist du jedenfalls nicht (auch) angegangen.

Soweit es in meiner Macht stand wollte ich auch was zurückgeben. So ganz ist das zwar nicht geglückt, aber könnte ja noch kommen und ich hoffe der Wille ist erkennbar.

Bitte denkt immer daran: Am Ende sitzt auch ein Mensch mit seinen Stärken, Schwächen und Gefühlen. Vielleicht wurde auch nur alles falsch aufgefasst. In dem Fall. Sorry.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Das finde ich aber doof. Ich würde meinen Postein- UND Ausgang gerne sauber halten. Wenn das nur möglich ist in dem die Nachricht bei beiden Parteien gelöscht wird dann ist das ein "Fehler im Design" wie man so schön sagt. Jede Partei sollte seine eigene Kopie der Nachricht haben, so wie das bei jeder Forensoftware die ich kenne der Fall ist.

Bitte bitte umsetzen.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

[Bug] Nachrichten im Posteingang löschen funktioniert. Nachrichten aus dem Postausgang löschen funktioniert nicht. Ist das wegen meines Benutzernamens?

Zitat
Fehler
Keine Nachricht mit der Id #46013 gefunden.
Hab mehrere Nachrichten die ich löschen wollte. Immer das Gleiche.

Thema: Drucker-Modell ermitteln per IP
Am im Forum: Netzwerktechnologien

Ich habe ja hier nachgefragt, WEIL ich über Google nichts gefunden habe Hätte ja aber sein können, dass sowas nicht oft gemacht werden will und entsprechend Informationen spärlich sind oder ich schlichtweg falsch gesucht habe.

Aber so wie ich eure Antworten deute ist es wohl so, dass man ohne die Hersteller API / Hersteller SDK nicht wirklich weiter kommt, zumindest auf meinem Level der Programmierung.

Thema: Tagsüber andere Aktionen als abends / Unterschiedliche Aktionen zu unterschiedlichen Zeiten
Am im Forum: Grundlagen von C#

Der Dienst soll ständig im Hintergrund laufen. In meinem Fall wollte ich, dass der Onlinestatus tagsüber alle X Stunden ausgegeben wird, nach Feierabend, wenn Rechner / Server i.d.R. entweder eh an oder aus sind und sich daran nichts mehr ändert wollte ich die Zeitspanne höher setzen. (Server sind natürlich eh immer an) Immerhin wird die Datenbank bei einem Webhoster gehostet und da muss man ja nicht ständig sinnlos Verbindung aufnehmen. K.A. ob das ins Gewicht fallen würde oder nicht. Der Dienst soll am Ende auf ~80-90 Rechnern laufen und ausschließlich mitteilen ob Rechner / Server online oder offline.

Momentan schwanke ich aber, ob das Vorhaben noch sinnvoll ist. Im Grunde würde es reichen den Onlinestatus bei den Workstations / Laptops beim Hochfahren zu ermitteln (mit meinem Tool, das ich entwickle) und bei den Servern das extra zu regeln. Es gibt aber einige Rechner die im Grunde immer an sind, wie beispielsweise meiner im Büro und es dann schon wichtig wäre zu wissen, dass dieser verwendet wird und nicht nur rum steht. Wenn ich den Rechner zwei Wochen nicht neu starte hat man in der Datenbank entsprechend stehen, dass der Rechner zuletzt vor zwei Wochen gestartet wurde, also kaum benutzt wird. Das dem nicht so ist würde man daran erkennen, dass er sich immer wieder Online meldet.

Nichts desdo trotz wollte ich den Code halt mit euch teilen, weil es der ein oder andere sicher gebrauchen könnte. Das er nicht ganz perfekt war und als Snippets nicht taugte ist ein anderes Thema

Thema: Mehrere Bildschirme ermitteln und getrennt! anzeigen und die echte Auflösung ermitteln
Am im Forum: Rund um die Programmierung

Jetzt bin ich vollends irritiert.

Ich wollte euch eben zeigen, dass der Code funktionierte (in dem Sinn, dass er beide Bildschirme ausgab) als ich die Konvertierung noch falsch gemacht habe und habe es entsprechend rückgängig gemacht.
Das Ergebnis ist dann als Textbox:

Zitat
// Wieso das doppelt ist verstehe ich nicht.
MSI MAG241 | ORIONMSI MAG241 | ORION
Als Label:
Zitat
// Das Ausgabeformat war erstmal ganz OK, wenngleich noch nicht brauchbar.
MSI MAG241 | ORION

Naja, ist ja eh falsch gewesen, also den richtigen Code genommen, also das mit


monitorModel += Encoding.ASCII.GetString(ufnASCIIBytes);

Je nachdem wie ich mir das ausgeben lasse erhalte ich unterschiedliche Ergebnisse:
Als textBox2.Text ist es:
Zitat
// Ergebnis wie erwartet und nachvollziehbar
MSI MAG241CRORION

Als label26.Text ist es:
Zitat
// Ergebnis wie erwartet und nachvollziehbar. Durch das += hänge ich ja einen String an.
label26MSI MAG241CRORION
Als monitorModel, das weiter unten dann dem Label zugewiesen wird, also "lblMonitorModel.Text = monitorModel;" ist es dann
Zitat
// Ergebnis nicht verständlich. Wieso wird der zweite Monitor jetzt unterschlagen?
MSI MAG241CR
Nimmt man das += raus und macht ein einfach = gibt es nichts aus.

Wisst ihr nun weiter? Von der Sache her werden doch eigentlich beide Bildschirme ermittelt und ausgegeben. ORION ist übrigens mein Fernseher der für diesen Test halt herhalten muss.


Edit: Achja, wenn ich mir das Trennzeichen am Ende hinmache, also


textBox2.Text += Encoding.ASCII.GetString(ufnASCIIBytes) + "|";
gibt es ein Ergebnis wie dieses: (Beispiel anhand von textBox2.Text)
Zitat
M|S|I| |M|A|G|2|4|1|C|R|O|R|I|O|N|
Mir ist aber klar warum, wollte es nur der Vollständigkeit halber noch dazu schreiben, weil ich es ja im Gegensatz zu oben dann rausgenommen hatte.