Die assembly:AssemblyDescription wäre ein Ansatz ist jedoch nur mit strings möglich was anderes bekomm ich nicht hin....
Kann ich irgendwie die Build Time einer Assembly rausbekommen, wenn ich nicht die automatische Versionierung verwende?
Falls nein, irgendwelche Vorschläge wo man die Build Time ablegen könnte um sie zur Programmlaufzeit wieder auszulesen?
Danke
Für mich sieht das so aus, als würde beim schreiben etwas schief gehen.
"Entlädst" Du das Bild in einem anderen Thread oder Disposed den Stream zum Bild? (Während das Save durchgeführt wird?
Ja das ist möglich.
Deine Hauptassemby muss die entsprechende Culture wählen dann wird darauf zugegriffen.
Ich würde einen exemplarischen Fall durchführen, um ein Sattelite zu haben, welches dann in andere Sprachen lokalisiert werden kann. Diese neuen Sattelites kannst Du dann einfach in den entsprechenden Unterordner legen und in der Hauptassembly die entsprechende Culture wählen.
Jemand eine Idee wie ich auf die ManagedThreadID komme?
Verwende folgendes als "ThreadId"
System.Threading.Thread.CurrentThread.ManagedThreadId
wie komme ich in einer WinFormApplication an die ID des Hauptthreads?
Ich meine den Thread in dem z.B. auch die Forms erstellt wurden. (Im Debugger als Hauptthread markiert)
Ich habe in einem Programm ein Dictonary<int, valueObject> (int ist die ThreadID>. Ich möchte nun auf den Value zur ID des Hauptthread zugreifen.
hast du mal bei gif geschaut
das hat doch immer 4 bit.
Zumindest was ich noch weiss
@ herbivore
ich kann zwar keine Kritik aus meine Post herauslesen stimme Dir aber durchaus zu, den Einsatz eines solchen Mechanismus nur nach reiflicher Überlegung/Abwägung anzuwenden.
Im Sinne einer Lösungsfindung meines Problems würde ich gerne diese Diskussion beenden bzw. auf PM ausweichen.
Hallo sarabande,
ManagementClass mc = new ManagementClass("Win32_Processor");
das funktioniert noch da ich im LOG die Ausgabe "mc: Win32_Processor" habe.
Wenn die "mc" NULL wäre dann würde die LOG-Ausgabe so aussehen: "mc: "
Es muss also etwas anderes NULL sein.
Wie könnte ich denn möglichst einfach folgendes
Ich würde erst einmal überprüfen, ob WMI überhaupt noch auf dem Rechner des Kunden funktioniert.
durchführen?
@herbivore
schade dass Du mir keinen sachlichen Hinweis zu meinem Problem geschrieben hast. Ich schätze Deine Fähigkeiten und Erfahrungen sehr. Aber in diesem Falle gibt es für mich berechtigte Zweifel, ob ein "Spendenmodell" oä für mich in Frage kommt.
//EDIT: Nein es handelt sich um ein ganz normales Notebook
Für meinen Lizenz Mechanismus lese ich die CPU ID des Rechners aus und benutze diese um die Hardware zu bundeln. Mit folgendem Code geschieht das Auslesen:
get
{
string id = "";
ManagementClass mc = new ManagementClass("Win32_Processor");
logging.Debug("mc: " + mc); //Diese Ausgabe habe ich noch im LOG
foreach (ManagementObject mo in mc.GetInstances())
{
id = mo.Properties["ProcessorId"].Value.ToString();
logging.Debug("id: " + id); //Diese Ausgabe fehlt (steigt vorher aus)
return id;
}
m_Logger.Debug("return \"KEINE ID\" ");
return "KEINE ID";
}
Bisher hat das auch ohne Probleme funktioniert. Bei einem Rechner, auf den ich leider keinen unmittelbaren Zugriff habe, ist jetzt jedoch ein Problem aufgetreten. Konkret tritt eine NULL Ref. Exception auf, welche ich in der aufrufenden Methode fange. Zwischen meinen beiden Kommentaren im Log ist irgendwas NULL.
Habt ihr irgendwelche Ideen warum da etwas NULL sein könnte bzw. habt ähnliches gehabt?
Ja klasse so hatte ich es noch nicht versucht.
Aber das war der entscheidende Hinweis.
Danke Dir.
Verstanden habe ich zwar noch nicht warum das so ist, aber gut.
Hatte die Fehlermeldung in dem anderen Thread nicht gefunden, da ich nach der englischen gesucht hatte....
TcpChannel habe ich schon verwendet.
Port 0 geht auch nicht.
Hier mal mein Server:
// Creating a custom formatter for a TcpChannel sink chain.
BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
// Creating the IDictionary to set the port on the channel instance.
System.Collections.IDictionary props = new Hashtable();
props["name"] = "tollerChannel";
props["port"] = 1234;
props["secure"] = false;
// Pass the properties for the port setting and the server provider in the server chain argument. (Client remains null here.)
TcpChannel chan = new TcpChannel(props, clientProvider, provider);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(CacheDB),
"CacheDB",
WellKnownObjectMode.Singleton);
Und hier mein Client:
// Creating a custom formatter for a TcpChannel sink chain.
BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
// Creating the IDictionary to set the port on the channel instance.
System.Collections.IDictionary props = new Hashtable();
// Pass the properties for the port setting and the server provider in the server chain argument.
//TcpChannel chan = new TcpChannel(props, null, provider);
props["name"] = "tollerChannel";
props["secure"] = false;
//props["typeFilterLevel"] = "Full";
TcpChannel tcpCH = new TcpChannel(props, clientProvider, provider);
ChannelServices.RegisterChannel(tcpCH, false);
ICacheDB db = null;
bool isConnected = false;
do
{
try
{
db = (ICacheDB)Activator.GetObject(typeof(ICacheDB), string.Format("tcp://{0}:1234/CacheDB",m_server));
isConnected = db.IsConnected;
}
catch (Exception)
{
isConnected = false;
}
}
NetworkInterface[] networkCard = NetworkInterface.GetAllNetworkInterfaces();
if (networkCard.Length > 0)
{
ClientCopyObjekt cl = new ClientCopyObjekt();
db.RegisterClient(cl, networkCard[0].GetIPProperties().UnicastAddresses[0].Address);
}
Console.ReadLine();
Console.Write("Starte sofort....");
db.StartAllClients();
ICacheDB sieht folgendermassen aus:
public interface ICacheDB
{
void RegisterClient(ClientCopyObjekt client, System.Net.IPAddress ipAdress);
void StartAllClients();
bool IsConnected { get;}
}
Und zur Vollständigkeit mein Objekt, welches ich an den Server übergebe:
public class ClientCopyObjekt : MarshalByRefObject
{
public void StartToCopy(string pfad)
{
DirectoryInfo dir = new DirectoryInfo(pfad);
FileInfo[] allFiles = dir.GetFiles();
foreach (FileInfo fi in allFiles)
{
File.Copy(pfad, Path.Combine(@"C:\temp", fi.Name));
}
}
}
Die Methode StartAllClients() sieht folgendermassen aus:
public void StartAllClients()
{
foreach (ClientCopyObjekt client in alleClients)
{
client.StartToCopy(@"localhost\temp_dateien");
}
}
"alleClients" ist eine Liste in die sich jeder Client mittels RegisterClient(ClientCopyObjekt) eingetragen hat.
An der Stelle
client.StartToCopy(@"localhost\temp_dateien");"
schifft mir das Prog ab mit oben genannter Exception
Hi Rainbird
könntest Du mir das mit dem Objekt übergeben noch etwas genauer erläutern?
Ich möchte eine Dateioperation auf dem Client anstossen. Wenn mehrere Clients vorhanden sind, dann bei allen gleichzeitig.
Ich habe folgendes versucht:
Auf Serverseite
Auf Clientseite
This remoting proxy has no channel sink which means either the server has no registered server channels that are listening, or this application has no suitable client channel to talk to the server.
Ich denke ich habe irgendwo einen Denkfehler.
Bzw. wird die Methode zur Dateioperation auf dem Client ausgeführt?
Servus,
ich habe ein älteres Java Projekt in welchem ich HTML Parser zum parsen von Webseiten eingesetzt habe.
Ich möchte diese Projekt nun etwas erweitern und dabei den bestehenden Teil nach .NET portieren.
Kennt jemand einen HTML Parser mit vergleichbarer Funktionalität bzw. vielleicht sogar ähnlicher Benutzung (könnte dann evtl. Teile meines Codes wieder verwenden)?
Es gibt einen ganz anschaulichen Webcast über "Remoting".
Einfach mal auf der msdn Seite nach webcast + remoting suchen.
Danke herbivore.
Vieles war mir so nicht klar gewesen.
Das einfachste für mich wird erstmal sein das Context Menü so zu verschieben, dass es nicht mehr über das Control hinaus lappt.
Ich habe ein von UserControl abgeleitetes Control, in dem ich die Paint() Methode überschrieben habe.
Darin zeichne (mit GDI+) ich unter anderem an bestimmten Stellen des Controls eine Art Context Menü (DrawRectangle und ein paar DrawStrings darin). Dabei verwende ich das Graphics Objekt der Paint Methode.
Mein Context Menü soll natürlich über meinem Control angezeigt werden(draufliegen).
Bis hier ist alles gut.
Reicht mein Context Menü jedoch über den Rand meines Controls wird der darüber reichende Teil abgeschnitten. Klar das Graphics ist da zu Ende.
Verwende ich das Parent meines Controls und zeichne da drauf ist nur dort und nicht auf meinem Control etwas zu sehen.
Wie stelle ich es am besten an dass ich mein Kontext Menü über mein Control lappen lasse?
Einfach auffüllen mit nullen. So z.B.
String zweistelligeMinute = myTimeSpan.Minute.ToString().PadLeft(2, '0');
Hi,
ich habe das Brennen von CD`s mittels der Win API realisiert.
Eingesetzt haben ich dazu folgendes XPBurn.
Klappt alles wunderbar ich habe nur ein Problem:
Ich muss vorher kontrollieren, ob eine leere CD im Laufwerk ist.
Ich suche also eine Möglichkeit mit der geprüft werden kann, ob eine CD eingelegt ist.
DriveInfo hab ich schon durchforstet.
Irgendwelche Ideen? (wmi oder ähnliches?)
Ich möchte bei einem .NET Programm sicherstellen, dass dieses nur von einer CD aus gestartet werden kann.
Beim start könnte ich z.B. prüfen ob das ausführende Laufwerk ein CD Laufwerk ist.
Seht ihr da irgendwelche Probleme bzw. könnte man das irgendwie umgehen?
hmm???
Treiber um den Interrupt zu fangen?
Wenn ja wie sieht denn so einer beispielhaft aus?
Ich habe an meiner parallelen Schnittstelle ein LCD Display zur Ausgabe von Statusmeldungen meines C# Programms.
Das Display steuer ich über die inpout32.dll (die auch in http://www.codeproject.com/csharp/csppleds.asp verwendet wird) an.
Ich würde jetzt gerne über einen Taster das Starten einer Routine in meinem C# Programm realisieren.
Der Taster soll an die par. Schnittstelle.
Hier gibt es mehrere Möglichkeiten, die ACK (Leitung 10) hatte mal einen Interrupt (IRQ7) der vom Drucker ausgelöst wurde.
Kann ich diesen irgendwie abfangen?
Ich würde gerne ein periodisches pollen von meinem Programm aus vermeiden.
da stellt sich mir doch glatt die Frage, ob du überhaupt schon in die Doku geguckt hast.
Da hast Du recht. Könnte man meinen.......
Dankeschön habs überlesen.
Ist es möglich dem standard TabControl ohne selbstzeichen beizubringen die Beschriftungen (Reiter) der einzelnen Pages unten, statt wie normalerweise oben, anzuordnen?
Schau dir mal den Fallback-Mechanismus an. (msdn)
Das was bei den Spaniern gleich ist kommt in die neutrale Spanische Kultur sp.
ein resx file kannst du schon umbenennen das Macht aber nur aeußerst selten Sinn.
Lieber die .resx der neutralen Kultur erstellen und dann die dazu benötigten spezifischen Kultueren anlegen.
Tach zusammen,
hat jemand eine Idee, wie ich bei einem Kalender (System.Windows.Forms.MonthCalendar) einzelne Tag farblich hinterlegen kann bzw. die Schriftfarbe ändern kann?
Leider konnte ich nichts derartiges finden.
Wie wäre es denn ein eigenes event zu erstellen was in den beiden ListViews ausglöst wir, wenn das ItemClickEvent ausgelöst wird.
Für dieses Event erstellst Du EventArgs, die Deinen Bedürfnissen entsprechen.
sorry, aber ich verstehe nicht ganz was Du erreichen willst.
Deine Überschrift war doch "Kompette Datenbanktabellenschema nach XML exportieren" und das hat funktioniert, oder nicht?
wie wäre es denn die DB in ein DataSet zu packen und dort dann mit WriteSchema das Schema zu schreiben?
schau dich doch mal bei tools wie visual localize und alchemy catalyst um.
musst du ja nicht gleich kaufen, aber da gibts ne menge lesenswertes zur lokalisierung und globalisierung.
Das ist schon richtig, nur wenn man eine Arbeit schreibt und diese einem halbwegs wissenschaftliche Anspruch genügen möchte, dann wäre es schon schön den genauen Unterschied zu kennen. 😉
Und da dachte ich mir: da frag ich doch mal in die Runde....
Aber so wie es scheint weiss niemand was dazu 😦
Keiner eine Idee?
Ja soweit klar.
Nur gibt es einen Unterschied zwischen beiden, oder ist es das gleiche Objekt mit anderem Namen?
Hallo zusammen.
weiss jemand was genau der unterschied zwischen der Invarianten Kultur und der Englischen neutralen "en" ist?
Ein Argument fiele mir ja noch ein, dass die Invariante auf jedem Recher mit .NET Framework verfuegbar ist.
Aber ist das wirklich schon alles?
MSDN sagt dazu: Die Invariante Kultur ist der englischen Sprache zugeordnet, aber ohne Bezug auf ein Land oder eine Region.
ich habe die Erfahrung gemacht, dass "Application.Restart();" sehr anfällig für Fehler ist.
Ich hatte das Problem mal folgendermassen gelöst:
-Die A Anwendung ruft ein Hilfsprog B auf.
-A startet B und übergibt den eigenen Pfad und seine Prozess ID.
-B prüft ständig ob die Prozess ID noch vorhanden ist.
-Wenn sich A beendet hat, dann Startet B das Programm aus dem übergebenen Pfad erneut.
Wenns Dir nur um die Forms geht dann schau Dir mal das Localizable und Language Property an. Unter Language einfach deine zweite Sprache waehlen und dann das Form bearbeiten.
VS legt dann eine satellite Ressource zu der neue Sprache an.
Diese kannst Du dann laden indem Du die CurrentUICulture bzw. Language deines Threads setzt.
Nur ein kurzer Anriss da gibts noch ne ganze Menge andere Sachen, aber am besten Du versuchst mal selbst.
Der Ansatz, der im obigen Links benutzt wird, ist schon ganz gut.
Abgesehen davon, dass der gute Mann ein falsches Property abfragt.
Ich möchte gerne das "Availability" Property eines WIN32_Printer bekommen.
Dieses ist aber leider nicht vorhanden. Obwohl angeblich durch Vererbung erhalten.
Ich kenne mich mit WMI noch nicht so gut aus kann mir da jemand einen Tip geben?
Ich möchte gerne vor dem Drucken prüfen, ob mein Drucker auch angeschaltet ist.
Der Benutzer wählt einen Drucker aus den InstalledPrinters und diesen würde ich gerne auf Verfügbarkeit testen.
Auch mit einem Netzwerkdrucker sollte das möglich sein.
Im Moment ist jeder "Druck erfolgreich", da die Print Methode, ausser bei falschem Drucker, keine Exceptions wirft.
Kann mir da jemand einen Tip geben?
Wie hast du denn den Status geändert??
Sorry blöde Frage RowState natürlich.
Das geht leider nicht, denn wie gesagt, dann fehlen ja in der neuen Haupt .resx die Felder welche in der satellite.resx nicht vorhanden sind.
Ich habe jetzt ein kleines Prog geschrieben was nur die doppelt vorhandenen Felder vertauscht. (Sofern es keine Standard Nodes in der resx sind.)Auf diese Art tauscht man einfach die Sprache. Die felder von vorher sind immer noch in der default.resx vorhanden, und der Fallback mechanismus kann wieder greifen.
Dann files umbenennen und im Projekt die neue Version registrieren.
Was ist los keiner ein Kommantar für mich?
Oder noch nie jemand in den .resx Files gewühlt?
Ich habe jetzt eine Idee, die ich euch kurz vorstellen möchte, um evtl. Probleme zu erkennen.
Es ist ja grundsaetzlich so:
Ist in einer gewaehlten Sprache in dem zuständigen Ressource File ein Feld nicht vorhanden dann wird das aus der Haupt-.resx genommen. (Fallback-Mechanismus)
Wuerde man jetzt einfach die Dateien umbenennen wuerden die Felder in der Haupt-.resx fehlen. Deshalb geht umbenennen nicht.
Man könnte aber doch evtl. alle Felder, die in beiden Dateien vorhanden sind, austauschen. Dann hätte man in der Haupt.resx die englischen Bezeichnungen und in der englische.resx die deutschen. Wenn man dann noch der Haupt .resx sagt dass es eine deutsch .resx gibt und deren Name auf de-DE anpasst (statt zuvor en-US) müsste es doch funktionieren?
Konntet ihr mir folgen?
Gibt es irgendwas was eurer Meinung dagegen spricht?
Ok soweit klar, nur wie passe ich die bis jetzt bestehenden Forms an?
Hintergrund ist wie gesagt: ich möchte Visual Localise zum übersetzen benutzen.
Dieses Tool unterstützt nur das übersetzen von der Default Language. Es ist nicht möglich eine bestehende Satellite Assembly zu übersetzen.
Ich möchte jetzt das was ich in meiner Satellite englisch habe, unter der Default Language finden und das was ich in der Dafault habe in eine Satellite auslagern.
Geht das oder muss ich unter der Default Language alles umbenennen?
Aber es gibt doch eine Defaultsprache die in einem Fallback Mechanismus verwendet wird, wenn zB. in einer satellite Assembly eine ressource nicht gefunden wird.
Diese Default möchte ich gerne verändern.
Hallo zusammen,
ich habe ein Projekt in VS05 (englische Version) , bei welchem die default Sprache deutsch ist. Das kommt daher, weil damit ursprünglich in einem deutschen VS03 angefangen wurde.
Über die localizabel Property und die Sprachwahl habe ich dann zB. eine englische Version erstellt. Zum zurückschalten bin ich immer auf die Default Language gagangen.
Ich möchte jetzt gerne das das Default englisch ist und nicht mehr deutsch.
Hat da jemand eine Idee wie das zu realisieren ist und auf was zu achten ist?
Oder sogar schonmal gemacht?
Danke laola