Mosima schrieb:
also der debugger zeigt mir ja auch kein fehler an. sprich code ist soweit in ordnung nur wenn ich das programm dann ausführe wird die messageBox ausgelöst
Du sollst einen Haltepunkt vor die betreffende Zeile setzen und den Debugger bis dahin laufen lassen, um Dir dann den Inhalt der Variablen anzusehen.
Mit einem Mutex kriegt man sowas hin.
using System;
using System.Threading;
namespace InstanceCount
{
class Program
{
static void Main(string[] args)
{
string uniqueUserName;
uniqueUserName = Console.ReadLine();
using (Mutex mutex = new Mutex(false, uniqueUserName))
{
if (!mutex.WaitOne(0, false))
{
Console.WriteLine("Eine Programminstanz für Benutzer {0} läuft bereits. Programm wird beendet", uniqueUserName);
Console.ReadKey(true);
return;
}
StartProgram(uniqueUserName);
}
}
private static void StartProgram(string uniqueUserName)
{
Console.WriteLine("Programminstanz für Benutzer {0} wird nun ausgeführt", uniqueUserName);
Console.ReadKey(true);
}
}
}
Der string uniqueUserName wird als Name des benannten Mutex verwendet. Somit kann ein Benutzer nur einmal das Programm starten wobei es insgesamt aber beliebig viele Instanzen geben kann.
Woher diese Benutzer-IDs kommen liegt bei Dir. Achte nur darauf, dass sie systemweit eindeutig sind und nicht mit Mutexen anderer Programme kollidieren (z.B. mit einer fest einkodierten GUID die immer an den Username angehängt wird)
Du hast die MSDN doch sicherlich auch bei dir lokal installiert (und dann in deutsch), oder? Und wenn nicht dann ersetze einfach im Link "en-us" durch "de-de" - voilà.
Aber laß dich nicht von den anderen verunsichern, dein Ansatz mit dem "Tag" ist schon in Ordnung so.
Ansonsten kannst du dir auch mal diesen FAQ-Beitrag vom myCSharp-Forum durchlesen: Variablennamen zur Laufzeit zusammensetzen.
Hallo,
zumindest eine Formel kann ich mal darstellen mit folgender Funktion:
private void Test()
{
Microsoft.Office.Interop.Word.Application app = Globals.ThisAddIn.Application;
Document activeDoc = app.ActiveDocument;
Range actRange = app.Selection.Range;
actRange.Text = "cos(\\alpha )";
actRange.OMaths.Add(actRange);
actRange.WholeStory();
actRange.OMaths.BuildUp();
}
cos (α) wird aber nur korrekt dargestellt, falls in der Zeile noch nichts steht. Steht da vorher irgendwas, erscheint nur der Lineartext ???? Hat irgendjemand eine Erklärung, einen Verdacht ???
Grüsse
@hustbaer stimmt schon, aber ich hatte da sowas verrücktes im Kopf:
// deklaration
template<typename T>
class A<T>
{
T &foo(T param);
};
// definition
T &A<[b]T[/b]>::foo(T param) {...}
Und da ist mir das T irgendwie beim C# Code mit reingerutscht, weil's halt doch noch in Signatur der Definition gehört. Ist natürlich falsch ... :p
Mit SlimDX habe ich das schon versucht, bzw ein Beispiel runtergeladen (http://spazzarama.wordpress.com/2011/03/14/c-screen-capture-and-overlays-for-direct3d-9-10-and-11-using-api-hooks/). Leider hängt sich das Programm beim Inject auf (Die Assembly "ScreenshotInject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6003822b3ebd1393" kann nicht gefunden werden). Ich bin in C# und directX nicht so fit um herauszufinden, woran es liegt. Ich komme aus der Java Ecke, aber das ist auch schon paar Jährchen her.
Eigentlich wollte ich auf die schnelle ein kleines Tool schreiben. Das hat auch so weit funktioniert. Nur leider kann man kein Form vor ein im Vollbildmodus laufendes Spiel setzen. Und selbst wenn, es würde nicht von Fraps erfasst werden. Und so erweist sich das, was mal ein kleine Tool sein sollte, als immer anspruchsvoller.
Ich bin schon am überlegen, ob ich die Informationen nicht mit einem Timer im Hintergrund speichere, und wenn ich fertig bin es dann abspiele und separat aufnehme. Da wäre aber auf die Dauer zu umständlich.
Dem Windows Service eine UI zu verpassen ist indirekt über WCF möglich, dann muss der WS diese dem Client als Server(WCF Service) anbieten. Also alles was die UI über den aktuellen Status der WS wissen möchte. Wenn es nur um das Starten und Stoppen/Pause geht, steht in VS für die UI (Client) ein SystemProcess.ServiceController zur Verfügung der im Grunde nichts weiter ist, als eine programmierbare Version des Dienste-Verwaltungs-Fenster der Systemsteuerung, also Starten/Stoppen/Pause/Contiune.
Wie gesagt, wenn mehr Informationen und Konfigurationsmöglichkeiten für einen WS benötigt werden, ist ein WCF Serivce eine brauchbare (oder bessere) Möglichkeit (Alternative) zu direktem Interop wie Pipes, COM, CORBA, etc...
Moin moin,
ich arbeite mich momentan etwas in C# und die WPF ein und habe ein kleines Verständnisproblem bzgl. der Transformationslogik von Objekten.
Ziel ist es, mir einen kleinen Viewer für 3D-Modelle zu basteln. Dazu hab ich einen Viewport3D, in denen einige Modelle (ModelVisual3D) liegen und die ich - abhängig von der Benutzereingabe - entsprechend transformieren möchte. Meine bisherige Erfahrung mit 3D-APIs/Engines/Frameworks war immer die, dass man die Transformation durch schlichtes Setzen einer Transformationsmatrix bewerkstelligen konnte, die dann auf eine Menge von Vertices angewandt wurde.
Nun habe ich einigen Artikeln entnehmen können, dass die Transformationen direkt am zu transformierenden Objekt gesetzt werden können, etwa so:
ModelVisual3D model = new ModelVisual3D();
... // Fülle model
var rotate = new RotateTransform3D (new AxisAngleRotation3D(new Vector3D(1,0,0),10));
model.Transform = rotate;
die dann am Objekt auch als State erhalten bleiben.
Da ich noch nicht wirklich den Überblick über alle möglichen Alternativen habe, frage ich an dieser Stelle mal naiv nach, welches denn die beste Möglichkeit darstellt, um Objekte zu transformieren:
(i) Ändere für jede Benutzereingabe die am Objekt gespeicherte Transformation entsprechend der Benutzereingabe? (schien mir etwas zu kompliziert)
(ii) Benutze das Animationssystem?
(iii) andere Möglichkeit... ?
Hi,
wünsch euch allen ein paar schöne Feiertage.
Hab leider nicht viel Zeit zum Feiern, das Abschlussprojekt ruft.
Hoffe aber Ihr könnt mir helfen.
Wenn ich ein leeres Window ein DataSet per Drag&Drop reinziehe, dann erstellt mir der Designer automatisch den XAML-Code und den C#-Code in der Code-Behind-Datei.
Wenn ich die gleiche Vorgehensweise bei einer Page versuche, erstellt er zwar den XAML-Code, jedoch nicht die Code-Behind-Datei.
Kann mir jemand erklären wieso und ob sich das irgendwie ändern oder umgehen lässt ?
Liebe Grüße :xmas1:
Hat sich erledigt, hab mich nochmals mit der Materie befasst und habe es nun wohl begriffen. War gestern wohl einfach ein wenig zu viel auf einmal
Grüssli
Hallo zusammen,
hat irgendjemand eine Idee, wo man eine verständliche Erklärung was bei ASP.NET Seiten in der web.config (und vor allem WARUM) stehen sollte finden kann ? Leider wird in den meisten Fachbüchern darüber so gut wie nichts gesagt und sobald man die fertige Seite auf den Server laden will geht nichts mehr.
Danke schonmmal im vorraus
Corax
Dravere schrieb:
Was spricht denn gegen sowas?
public class PersonViewModel
{
private List<AddressViewModel> m_addresses;
public IEnumerable<AddressViewModel> Addresses { get { return m_addresses; } }
}
Grüssli
Dagegen spricht das bestimmte Informationen erst später (sowohl bezogen auf die Laufzeit als auch bezogen auf die Entwicklung) hinzu kommen und konfigurierbar sind.
Bei mir gibt es beispielsweise einen Kontakt, was in der Regel eine Firma oder eine Person ist, die beliebige Adressen hat (soweit noch einfach), nun gibt es aber viele Teile die nur mit bestimmen Erweiterungen und einer bestimmten Rolle Sinn machen (z.B. Wenn es sich bei den Kontakt um einen Dozenten handelt noch Informationen wie die zu leistenden Veranstaltungsstunden...; Datenbankseitig sieht dies so aus das die abhängigen Elemente auf den Basisdatensatz verweisen).
Hier bietet sich vom bisherigen Verständnis Prism recht gut an, da ich ein sehr modularen Ansatz verfolge. Ich bin inzwischen so weit, das ich glaube die Lösung gefunden zu haben. In Prism kann man einer Region die aus mehreren Views besteht gemeinsame Daten über einen RegionContext halten (In meinen Fall beispielsweise einen Verweis auf den jeweiligen Basisdatensatz und beispielsweise den DbContext zu halten, über den die Speicherung erfolgt...).
juhu
Merkwürdiger Weise hatte ich erst noch das _KeyDown -Event drin. Bei dem hat e.Handled = true; nichts gebracht. Beim _KeyPress -Event gehts aber.
Vielen Dank!
Ich lese nicht wer Fragen stellt, da sowas irrelevant ist.
Googlen: http://www.google.de/search?sourceid=chrome&ie=UTF-8&q=Application.Idle+wpf
Erste Ergebnis führt zu Stackoverflow: http://stackoverflow.com/questions/2344398/application-idle-event-not-firing-in-wpf-application
Da ist ein Link zu: http://msdn.microsoft.com/en-us/library/aa348549.aspx
Dort nach Idle schauen und schon stößt man auf das: http://msdn.microsoft.com/en-us/library/system.windows.interop.componentdispatcher.threadidle.aspx
Es war so einfach zu finden, und die Fragestellung war so kurz und knapp, das roch alles danach als hattest du keine Lust selber mal zu Recherchieren.