Ein gutes Tutorial mit dem Titel "Einführung in das Programmieren mit C#" findet sich hier:
http://www.uni-trier.de/fileadmin/urt/doku/csharp/v40/csharp4.pdf
Geeignet zum Lernen und Vertiefen.
Du hast offenbar ein Projekt mit vorkompilierten Headern gemacht. Wenn du nicht weißt, was das ist, solltest du es halt beim Erstellen des Projektes auch nicht anwählen; Microsoft kann da gar nichts dafür. Mach am besten ein neues Projekt und diesmal ohne Precompiled Headers...
Sorry, für die späte Rückmeldung.
Habe das Problem lösen können, in dem ich Code aufräumte und nach seinen Aufgaben verteilte.
Ein Teil war reine Debug-Funktionen bezüglich dem verwendeten SDK, andere waren grundlegende Definitionen fürs Messen. Und übrig blieb eine grundlegende Klasse zum Ansteuern eines Tachymeters mit dem verwendeten SDK.
So gefällt mir die Struktur nun besser.
G' Morgen,
das hat mich weiter gebracht, vielen, vielen Dank Habe zwar neue Probleme, aber da habe ich mich vermutlich irgendwo vertan, schaue ich heute morgen nochmal rein.
VG Torsten
Hallo,
also irgendwie ist im Netz nichts zu finden, dass jemand die Hintergrundfarbe dynamisch ändert. Ich fürchte, ich muss das mal Thema mal schieben.
Dennoch vielen Dank für deine Hilfe
VG Torsten
Zwei Programme sollen möglichst bald per Fernwartung bearbeitet werden.
Falls weitergehendes Interesse besteht, dies:
Für eine Reihe von Programmen sind Updates zu erstellen.
Einige bringen beim Kompilieren auch Fehler.
Die vorhandenen können auch als Lernobjekte genutzt werden, sofern diese beiden einwandfrei laufen, Entlohnung nach Absprache.
Könner bekommen gerne 40,00 € / Stunde. Spitzenpersonen nach Absprache auch 80,00 oder mehr.
hmm.. würde ich die ganze funktion einfach in einem neuen Thread wrappen
Task.Wait(new Task(()=> meinFunc());
wäre es besser, das Callback wird allerdings immer im UI Thread bearbeitet, das macht die API darunter so..
Hallo,
@DirkB hatte den richtigen Gedanken. Ich habe natürlich "nur" eine spanische Tastatur eingestellt, die Windows-Anzeige-Sprache aber nicht geändert. Das habe ich nun nachgeholt und siehe da, es erscheint ein <Ctrl> im Dateimenu.
War also doch eine doofe Frage meinerseits
Vielen Dank für eure Hilfe und ein schönes Wochenende noch.
VG Torsten
@hkdd So beim groben Überfliegen scheinen das doch schon sehr spezielle Probleme zu sein, mit denen du da kämpfst. Ohne dein Setup zu reproduzieren (schon etwas mehr als nur einmal den Compiler anzuwerfen und daher aufwändiger) wird es wohl nur bei sehr offensichtlichen Dingen jemanden geben, der dir nur vom Quellcode-Lesen her helfen kann.
Dennoch gut, dass du deine Erkenntnisse hier dokumentierst. Vielleicht hilft das ja irgendwann mal jemandem weiter
@hustbaer ,
ich habe auf meinem Laptop, auf dem auch Win10 und 11 parallel installiert sind, in der Win10 Registry gesucht, da steht sogar beim normalen Eintrag
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
bei ProductName: "Windows 10 Enterprise"
auch bei CompositionEditionID steht => Enterprise statt Pro
Und bei WOV6432Node steht auch überall Enterprise.
Wenn ich SystemInfo aufrufe, wird korrekt Windows 10 Pro angezeigt. Ach bei WinVer ist alles korrekt.
Hallo,
ich versuche meine Unittests auf der Kommandozeile mittels MSBuild.exe auszuführen und scheitere kläglich. Das Netz ist sonst voll von Tutorials, aber in diesem Fall ist es nicht so pralle.
Was ich gefunden habe, ist folgende Projektdatei, die ich schon mal soweit auf mein Projekt angepasst habe:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="KernelTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile=".\packages\MSTest.TestFramework.2.1.2\lib\uap10.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll" TaskName="Runner.MSBuild"/>
<Target Name="KernelTest">
<ItemGroup>
<SolutionToBuild Include="cSharpLibraries.sln"/>
<TestContainer Include=".\KernelTests\bin\Debug\KernelTests.dll"/>
</ItemGroup>
<MSBuild Projects="@(SolutionToBuild)"/>
</Target>
</Project>
Wenn ich MSBuild nun ausführe, bekomme ich folgende Fehlermeldung:
cSharpLibraries.test.csproj(9,3): error MSB4062: Die Runner.MSBuild-Aufgabe konnte nicht aus der ???\cSharpLibraries\.\packages\MSTest.TestFramework.2.1.2\lib\uap10.0\Microsoft.VisualStudi
o.TestPlatform.TestFramework.dll-Assembly geladen werden. Stellen Sie sicher, dass die <UsingTask>-Deklaration korrekt ist, die Assembly und alle zugehörigen Abhängigkeiten verfügbar sind und die Aufgabe eine öffentliche Klasse enthält
, die Microsoft.Build.Framework.ITask implementiert.
Hat jemand eine Idee?
Vielen Dank im Voraus
VG Torsten
Hi,
ich möchte die folgende Schleife als "CodeIterationStatement" abbilden.
int i = 0;
int j = 0;
for (i = 0; ((i < 10) && (j < 10)); ++i, ++j)
{
}
Allerdings unterstützt das "IncrementStatement" Property nur ein einzelnes "CodeStatement" anstatt einer Liste. In C++ ließen sich die beiden "++i" bzw. "j++" als "CodeBinaryOperatorExpression" abbilden mittles des Komma-Operators. Diesen gibt es unter C# aber nicht. Wie also lässt sich obiges Konstrukt in C# mittels der Klassen im CodeDom-Namespace abbilden? Jemand eine Idee?
https://learn.microsoft.com/de-de/dotnet/api/system.codedom?view=dotnet-plat-ext-7.0
PS: Es gibt zwar eine "CodeStatementCollection" aber diese ist nicht von der "CodeStatment"-Klasse abgeleitet. Lässt sich so also auch nicht (direkt) zuweisen.
PPS: Witzigerweise hat die ForStatementSyntax-Klasse aus dem CodeAnalysis Namespace eine Liste von Incrementoren wie man es erwarten würde (https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.csharp.syntax.forstatementsyntax.incrementors?view=roslyn-dotnet-4.3.0)
@hkdd sagte in Zeitstempel in Directorys und Dateien setzen:
Da der XP-Explorer offenbar keine Zeitumrechnungen macht und die Zeit so anzeigt, wie sie gespeichert ist (analog DIR), sind die gespeicherten Zeiten alle um eine Stunde nach vorn gesetzt
Nein, das stimmt nicht. Auch der Windows-XP Explorer macht ne Umrechnung. Und zwar von UTC nach lokaler Zeit. Er macht sie nur falsch.
@DocShoe sagte in Konsolen-Ausgaben unter Windows 7 und 8.1 (Encoding):
Wie startest du denn den Programm?
Jetzt habe ich es gefunden - das wusste ich eigentlich schon von einem anderen Programm, habe aber nicht gleich daran gedacht.....
CHCP 65001 - ist die eine Sache.
ABER => man muss im CMD-Fenster bei WIndows 7 und 8.1 die Schriftart auf eine umstellen, die auch UTF8 darstellen kann.
Voreingestellt ist = Rasterschriftart.
Das muss man ändern in => Lucia Console
Mein kleines Testprogramm sieht jetzt so aus und funktioniert:
using System;
using System.Reflection;
using System.Text;
using System.Management;
namespace ConsoleNET472Vm81
{
internal class Program
{
public static int WinVer = 0; //Windows-Version = 7, 81, 10, 11 oder 0 = nicht erkannt
static void Main(string[] args)
{
WinVer = GetOperatingSystem(); //Windows-Version = 7, 81, 10, 11 oder 0 = nicht erkannt
string Text =
"Fröhliches Ostern\n" +
"auf der grünen Wiese\n" +
"Eintritt: 5,00 €\n" +
"x²+y² = z²\n" +
"2³ = 8\n"+
"äöüß AÖÜ € @ °";
if ((WinVer == 10) || (WinVer == 11))
{
Console.OutputEncoding = Encoding.Default;
Console.InputEncoding = Encoding.Default;
}
Console.WriteLine(Text);
Console.ReadLine();
} // Main
//===================================================================
// Ermitteln, unter welchem Windows das Programm läuft
//===================================================================
static int GetOperatingSystem()
{
ManagementScope scope = new ManagementScope("root\\CIMV2");
SelectQuery query = new SelectQuery("Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject item in searcher.Get())
{
string sCaption = (string)item.Properties["Caption"].Value; // Operating System
if (sCaption.Contains("Microsoft Windows 11")) return 11;
if (sCaption.Contains("Microsoft Windows 10")) return 10;
if (sCaption.Contains("Microsoft Windows 8.1")) return 81;
if (sCaption.Contains("Microsoft Windows 7")) return 7;
}
return 0; // kein Windows 7, 8.1, 10 oder 11 gefunden
} // GetOperatingSystem()
}
}
Und schon können UTF8-Zeichen, wie das €-Zeichen angezeigt werden.
Auch unter Windows 7 klappt es...
Link Text
So genau habe ich mich damit auch noch nicht beschäftigt.
Auf die Schnelle habe ich aber folgende Links gefunden:
C++ – Obtain a list of partitions on Windows
C++ method for Diskpart list disk
drive.c (Code für USB-Zugriff)
Edit:
In How to list physical disks? stehen auch einige Möglichkeiten (besonders Zugriff auf "\\.\PhysicalDriveX" sowie mittels Registry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk\Enum).