Hallo Leute,
folgendes Szenario:
Auf dem Rechner läuft eine Applikation die unter anderem über ein P2P Netzwerk Daten austauscht. Wenn der Rechner durch den Benutzer in den Standby / Ruhezustand versetzt wird will ich mich noch ordnungsgemäß aus dem P2P Netzwerk abmelden. Unter XP hat man ja die Möglichkeit auf PBT_APMQUERYSUSPEND mit einem BROADCAST_QUERY_DENY zu antworten, um das Ganze zu verhindern, in Vista ist die Möglichkeit nicht merh gegeben. Aber die Zeit, die ich zwischen dem WM_POWERBROADCAST und dem eigentlichen Ausschalten habe reicht bei weitem nicht aus, um die Netzwerk-Kommunikation komplett abzuhandeln.
Hat irgendwer eine Idee, wie ich das Abschalten verhindern oder zumindest verzögern kann?
Grüße,
Marcus
Ich würde da einfach die Key-Events abfangen und nichts tun, alerdings kann sich der TrackBar dann vermutlich trotzdem bewegen und ein Changed-Ereignis auslösen; ansonsten könnte nach der Aktion mit dem TrackBar (MouseUp etc) ja der Focus auf ein anderes Steuerelement gelegt werden, somit sollten die Pfeiltasten dann nicht mehr den TrackBar verändern
Wie wird das bei Remoting gehandelt? Wenn ich ein Object bei Ref share.. und 2 cliente bspw. ein refenrez auf das objejt haben, und zur gleichen zeit die selbe methode aurufen? gibts da probleme?
Schönen guten Morgen,
danke. Genau so habe ich es doch auch gemacht. Das ich dem DataAdapter gleich nach der Abfrage alle Commands (Update/Insert/Delete) VOR dem nächsten Aufruf Fill übergeben muss, war mir nicht ganz klar. Nach genauerer Überlegung eigentlich logisch aber umständlich. Mit strong typed DataSet habe ich noch nichts gemacht. Werde mir das mal anschauen. Danke.
Gruß
Sven
loks schrieb:
Letzteres könnte auch zu erheblichen Problem führen wenn die so geänderten Funktionen wieder von anderen Klassen aufgerufen werden, sich aber plötzlich anders verhalten.
An das hab ih ehrlich gesagt gar nicht gedacht!
Aber du hast recht :-)! Merci
Hi guys,
How an Application konw an event is triggered in the DLL?
For example i have a time elapsed event implemented in a dll.
namespace timerEvent
{
public interface Inmea
{
void sendData();
}
private static Timer aTimer = new Timer(1000);
public void sendData()
{
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Enabled = true;
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
return "TimerEvent From DLL";
}
}
Then the function sendData() will be called by a C# App, How the application the event is triggered?
Or to say, how can i pass the value "TimerEvent From DLL" back to App, when every time the event is triggered in the dll
Thanks.
bag
Vielen Dank für deine Antwort Knuddlbaer.
Du musst keine Sätze fett hervorheben - und auf einen anderen Beitrag linken nach dem Motto "such Dir die Infos die Du brauchst selbst zusammen" fördert die Warscheinlichkeit einer Antwort nicht wirklich.
Ich habe die Frage fett hervorgehoben, weil ein anderer Thread im Forum ein wenig ins leere ging und an der eigentlichen Fragestellung vorbei. Auf den anderen Beitrag habe ich nur verlinkt, weil es wohl und sinnvoll und crossposting mäßig ist alles noch einmal zu schreiben. Ich habe auch nur auf den ersten Beitrag. Es sollte meine Fragestellung ledglich spezifieren. Trotzdem danke für den Hinweis. Jede Community sieht das ein wenig anders.
Beantworte Dir mal selbst die Frage, was ein Netzwerkprotokoll für eine Abhängigkeit zur Programmiersprache hat. Das beantwortet Dir dann die Frage, ob Du über ein Netzwerkprotokoll von xx nach yy kommunizieren kannst.
Das Netzwerkprotokolle unabhängig von Programmiersprachen sind ist mir schon klar. Allerdings ist es per TCP wohl doch relativ umständlich Methoden und ähnliches in C direkt aufzurufen und nicht gerade der vornehmste Weg. Ich wollte einfach nur eine Einschätzung, ob es mit C# möglich und vor allem empfehlenswert ist.
Beantworte Dir mal selbst die Frage, was ein Netzwerkprotokoll für eine Abhängigkeit zur Programmiersprache hat. Das beantwortet Dir dann die Frage, ob Du über ein Netzwerkprotokoll von xx nach yy kommunizieren kannst.
Danke!
dankeschoen - der ms server war heute morgen zu langsam - drum hab ich nicht sehr lange gesucht #gg
hmm - komisches ding - der findet in meinen assemblys keine "performance tools"
ich habe mich vorher nie mit profiling beschaeftigt, ich nahm an man laed ein assembly, startet das aus dem tool heraus, sodass zur laufzeit - wenn man rumspielt damit - ermittelt werden kann was wie lange dauerte /=
hab eben ma bei meinen TL geschaut, er hat dieses performance ding in seiner team blabla version - werds mir auch aus der msdn holn und das pro dadurch ersetzen
Hallo.
Habe eine Windows-Forms-Anwendung geschrieben und verwende eine DataGridView mit einer DataTable als Datenquelle um ein paar Informationen tabellarisch darzustellen.
Ich möchte, dass sich meine Hauptfensterbreite dynamisch an die Breite der darin enthaltenen Tabelle anpasst.
Dazu frage ich die Breiten aller Spalten der Tabelle ab und setzte die Summe aus diesen Breiten als neue Fensterbreite fest.
Nur leider liefert mir das Attribut für Spaltenbreite (DataGridViewColumn.Width) immer den Dafaultwert 100, obwohl die Spalten offensichtlich andere Breiten haben. Hier der Code:
private void BreiteAnSpaltenAnpassen(MappingForm mf)
{
DataGridView dgv = mf.MappingFormDataGridView;
int wdth = dgv.RowHeadersWidth + (int)(dgv.Columns.Count * 2);
foreach (DataGridViewColumn d in dgv.Columns)
{
wdth += d.Width;
}
dgv.Width = wdth;
//mf.Width = dgv.Width;
}
Wisst ihr was ich falsch mache ?
Danke.
habe ein GEmeinsames Interface zwischen Server und Cliente:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
namespace ClientInterface
{
[Serializable]
public class DeviceModule
{
public int m_ID;
public string m_Name;
}
public interface IClientInterface
{
List<DeviceModule> GetModuls();
void GetModul(int i,out DeviceModule tmp);
int Summe(int a, int b);
string GetModulString(int i);
}
}
nun will ich ein Objekt vom Typ DeviceModule übers netz schicken, oder am besten noch ne Liste aus diesen Objekten... das müsste doch gehen oder net?
Aber irgendwie nimmt er mir den SOAP Sericalisierung..müsste es aber binär machen.. jemand ne idee? oder muss ich das objekt aufm server selber serialisieren und aufm client deserialisieren?
System.Runtime.Serialization.SerializationException: Soap Serializer does not support serializing Generic Types : System.Collections.Generic.List`1[ClientInterface.DeviceModule].
EDIT: Würde gern ne klasse mit Objetlisten serialiseren in ein stream.. und denn dan über Remoting übers netz schicken.. und da wieder deserialiseren.. aber ich find nix im netz...
Leidiges Thema ich weiß Folgende unterschiedliche Varianten gelesen, was findet in der breiten Masse/Praxis Anwendung ?
Button button1 -> MSDN und VS generiert
Button btnOk -> ungarisch
Button OkButton
Ich finde kein überzeugendes Argument für eine dieser Nomenklaturen, eigentlich würde ich die zweite bevorzugen aber ungarisch ist ja pauschal pöse und um konsistent zu sein müsste man eigentlich auch alle anderen variablen so benennen...hm
Meinungen ?
PictureBox pb = Controls[key] as PictureBox;
pb.Image = Image.FromFile("C:\\turned.jpg");
Das führt zu nem Programmabsturz wenn Controls[key] keine Picturebox ist weil pb dann null ist. (das ergebnis von "as" ist null wenn das object nicht vom erforderten Type ist.)
Habe rumprobiert. kriegs aber irgendwie nicht hin. Eigentlich kann
ich doch mit der DataTable.Select() die daten filtern. Dann müssen diese Daten wieder mit dem DataAdapter.Fill() wieder neu geladen werden, oder? Das geht aber bei mir nicht. Genauso könnt ich doch das DataSet verwenden. Der Knackpunkt ist halt, das ich die gefilterten Daten nicht ins DataGridView oder in die gebindeten TextBoxen bekomme. Wer kan nmir dabei helfen? DIe gefilterten Daten
testTable.Select("Alias LIKE " + "\'" + txt_Artikelsuche + "\'");
müssen doch eigentlich nur an den DataTableAdapter neu geladen werden, oder sehe ich das falsch?
adapter.Fill(testTable);
Dann müßte sich ja das DataGRidView auch von selbst neu aufbauen.
BorisDieKlinge schrieb:
hehe;) Ja das stimmt... dongle wäre die letzte möglichkeit gewesen;)
ABER.. wenn ne .NET Anwendung decompiliert werden kann, kann auch die schnittstelle mit dem dongle gehackt werden oder net?
btw, auch nicht-Net Anwendungen können decompiliert werden, das heisst dan nur Disassembliert.
Ebenso könnte jemand mittels Logik Analyser den Dongle analysieren und nachbauen. Alles ist knackbar, die Frage ist der damit verbundene Aufwand, bzw die Formel:
if( Kosten < Nutzen )
{
Hack()
}
else
{
NoHack()
}
Schau Dir mal die letzten 10 Jahren Den Sender Premiere an. Die benutzen faktisch Dongles und sind noch immer in kürzester Zeit gehackt worden.
Mal ganz davon abgesehen das es in den meisten Fällen einfacher wäre Deinen Heimischen PC zu hacken und sich einfach die Original Sourcecodes zu holen.
"Seite auf existenz prüfen".
Was genau meinst du?
Das es den Host gibt? Das auch Port 80 offen ist? Das auf Port 80 ein http-Server läuft?
Je nach Host kann es halt sein, dass die Anworten lange auf sich warten lassen. Je nach anzahl der zu sendenden und empfangenden Pakete kann das sehr "lange" sein.
Prinzipiell würde sich da eine parallele abarbeitung mehrere Seiten anbieten, dadurch wird der Durchsatz erhöht und auch die Netzwerk-Bandbreite besser genutzt.
Zude, gibt es bei http neben dem GET auch ein HEAD Kommando, damit wird nur der Header ohne die eigentlichen Daten abgerufen, was auch Zeit und Bandbreite spart.
Solltest allerdings aufpassen, welche Seiten du scannst und auch wie häufig, sonst kann es schnell ärger geben