Laden...
V
Benutzerbeschreibung

Forenbeiträge von veasel Ingesamt 327 Beiträge

12.09.2007 - 08:19 Uhr

Hallo,

wie läßt du die dateien denn im grid anzeigen?
also wie kommen deine informationen in das grid?

datasource, datamember?

du solltest dir irgendwo in einer spalte die nicht zu sehen ist den komplenten pfad der datei merken und dann die der löschen methode die datei löschen und dann erst die zeile aus dem grid.

ist erstmal nur eine überlegung. hab ich selbst auch noch nie gemacht...

grüße von der ostsee

04.09.2007 - 10:39 Uhr

hi,

bin zwar nicht so erfahren in asp, aber ich denke, dass er dir nicht den nutzer anzeigt sondern den dienstprozess...

guck dir mal das an...

http://www.microsoft.com/germany/msdn/solve/knowhow/howto/cliententwicklung/WiekannichvoruebergehenddieIdentitaeteinesanderenBenutzersannehmen.mspx

oder schreib mal noch ein bißchen mehr was du machen willst.

22.08.2007 - 16:38 Uhr

danke das hilft mir schon enorm weiter...!!

22.08.2007 - 10:06 Uhr

da hab ich schon gesucht...

und nix gefunden,dass dem passt...

aber ich guck gerne nochmal!!

22.08.2007 - 09:58 Uhr

Hallo zusammen,

mal eine kleine Frage.
Wie kann ich erkennen, dass ein neuer Process gestartet wurde?
Gibts da eine Möglichkeit.

Hintergrund ist der, dass ich eine Auflistung der startenden Prozesse in Echtzeit machen will.

DANKE!!!

11.08.2007 - 12:19 Uhr

nochmal herzlichen dank!!!

ihr seit doch die besten und die schnellsten!!!

einen schönen Tag!!

11.08.2007 - 11:50 Uhr

herbivore,

bitte entschuldige...ich sitze hier schon seit 9 und mach nichts anderes...

aber du bist wie immer der beste!! 👍 👍

DANKE!!

[Solved]
nur falls einer sich auch nochmal so anstellt wie ich 😉

			if (!aLongTask.DoWork())
			{
				e.Cancel = true;
			}

Bye

11.08.2007 - 11:42 Uhr

okay wir kommen der sache langsam näher 😮)

das e.cancel muss ich dann aber in abhängigkeit vom e.Result setzen, oder?

aber was steht da drin?

weil wenn ich das einfach auf true setze, ist es auch true wenn ich nicht abbreche...

hmm...

11.08.2007 - 11:29 Uhr

Hallo herbivore,

das kann es nicht sein, bringt kein Unterschied auch wenn du recht hast.
das ist natürlich auch ein fehler meinerseits!!
e.Cancelled ist aber trotzdem immer false, ob ich abbreche oder durchlaufen lasse.

11.08.2007 - 11:20 Uhr

hallo,

ja hab ich!

ich poste sonst mal die ganze klasse:

	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
			backgroundWorker1.WorkerReportsProgress = true;			// -> default = false!!
			backgroundWorker1.WorkerSupportsCancellation = true;	// -> defalut = false!!
			backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
			backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
			backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
		}

		void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
		{
			//eine Änderung bei dem Prozess
			this.progressBar1.Value = e.ProgressPercentage;
			label1.Text = e.UserState.ToString();
		}

		void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
		{
			//Worker fertig
			if (!e.Cancelled) //->hier ist immer false!!
				MessageBox.Show("Fertig!");
			else
				MessageBox.Show("Abbruch!");

		}

		void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
		{
			//Aufgabe anstoßen
			BgTask aLongTask = new BgTask(this.backgroundWorker1);
			aLongTask.DoWork();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			backgroundWorker1.RunWorkerAsync();
		}

		private void button2_Click(object sender, EventArgs e)
		{
			this.backgroundWorker1.CancelAsync();
			//setzt die CancellationPending Property auf true
			//muss dann abgefragt werden
		}
	}

und das was im Hintergrund gemacht wird:

	class BgTask
	{
		private BackgroundWorker _bgWorker;

		public BgTask(BackgroundWorker bgWorker)
		{
			this._bgWorker = bgWorker;
		}

		public void DoWork()
		{
			for (int i = 0; i < 100; i++)
			{
				if (!this._bgWorker.CancellationPending) // abfragen, ob abgebrochen wurde
				{
					Thread.Sleep(100);
					this._bgWorker.ReportProgress(i, i + "x mal gepennt!");
				}
				else
				{
					//ggf. aufräumen und Dinge rückgängig machen!

					this._bgWorker.ReportProgress(100, "Abgebrochen!");
				}
			}
		}
	}
11.08.2007 - 10:50 Uhr

Hallo zusammen,

ich habe nen Prozess in nen BackgroundWorker gepackt.
Soweit auch alles schick.

Jetzt will ich das e.Cancelled Property im RunWorkerCompleted Event abfragen und egal ob ich den Prozess abbreche oder er durchläuft e.Cancelled ist immer false!

ist das ein Bug?

hab Framework 2.0

Danke!

Poste gerne Code, wenn jemand was dazu sehen will. nur sagen was.

10.08.2007 - 19:48 Uhr

Hallo,

vielleicht CAS wenn ich da Netzwerk lese aber wie herbivore schon erwähnte wäre eine genaure beschreibung und der Fehler vielleicht nicht schlecht!!

lg

09.08.2007 - 16:43 Uhr

jo...denke ich auch!!

eine "feini" für Friedel!!

Grüße

09.08.2007 - 16:28 Uhr

hallo,

@preli
solange das ein block ist, ist eine gute idee...aber wenn von den 1000 zeilen jede 2. um einen nach oben verschoben werden soll, fangen die probleme an.
und wenn ich das richtig verstanden habe, soll das möglich sein, oder?

ich weiß, meckern kann jeder...nee gute lösung hab ich auch noch nicht...

aber ich denke drüber nach!

grüße von der ostsee

09.08.2007 - 16:22 Uhr

deswegen ja auch ein "anmerkung" davor...!

naja, banane!!

09.08.2007 - 16:13 Uhr

hmm...
ist das schicker als die Bitamp-Lösung? oder egal?

			Image img = Image.FromFile(@"c:\test.jpg");
			img.Save(@"c:\test.bmp", ImageFormat.Bmp);

grüße von der ostsee

09.08.2007 - 16:08 Uhr

@knub
meine Post sind antworten auf deine Posts...
was ist daran so schwer?
du stellst eine Frage und ich geb eine antwort...wenn es direkt darunter steht muss ich doch nicht nochmal deine ganze Frage wiederholen, oder?

kannst du bei OwnerDrawText nicht auch mit e.Graphics.FillRectangle() einen Hintergrund zeichnen?

Ja, das habe ich in meinem Bsp. genau so gemacht!

09.08.2007 - 16:04 Uhr

hallo,

da sollte aber unbedingt ein

ImageFormat.Bmp

dazu!!

sonst ist das auch bloss ein jpg mit .bmp am ende!!

		private void Jpg2Bmp()
		{
			Bitmap bmp = (Bitmap)Image.FromFile(@"c:\test.jpg");
			bmp.Save(@"c:\test.bmp", ImageFormat.Bmp);
		}
09.08.2007 - 15:36 Uhr

anmerkung...

das ist genau das was ich auch gemacht habe!!

->geht also!!

09.08.2007 - 15:22 Uhr
		void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
		{
			if (e.Node.IsSelected)
			{
				SizeF size = e.Graphics.MeasureString(e.Node.Text, this.treeView1.Font);
				Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, (int)size.Width, (int)size.Height+3);
				e.Graphics.FillRectangle(Brushes.LightBlue, rect);
				e.Graphics.DrawString(e.Node.Text, this.treeView1.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y);
			}
			else
			{
				e.DrawDefault = true;
			}
		}

ist bestimmt nich gerade elegant aber funzt!! 😮)

die +3 sind dafür, damit man die eigentliche seletionsmarkierung nicht mehr sieht!

aba nicht meckern.... =o)

Grüße

09.08.2007 - 15:00 Uhr

hallo,

evtl. codeoptimierung beim compilieren oder sowas...?

ist nur eine idee?

mache nicht so viel mit der taskliste!

EDIT:
Habs mal untersucht...das ist es wohl auch nicht!

09.08.2007 - 14:51 Uhr

ehh...na ist steh ja aufm schlauch!!!
sorry!!!

logisch abonieren...

this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);

my fault!!

09.08.2007 - 14:37 Uhr

Original von knub
du kannst TreeView.DrawNode abonnieren

Was meinst du mit abonieren?

09.08.2007 - 14:27 Uhr

hallo,

mit "rumgespielt" meinte ich nicht, dass ich das gleiche Problem habe, sondern überlegt habe wie eine Antwort auf das Problem aussehen könnte....

und mit Codebeispiel meine, was du mit abbonieren meinst?

dass man zum zeichnen e.Graphics braucht, das weiß ich auch!

vielen schonmal!!

09.08.2007 - 14:24 Uhr

ist auch meine meinung.

laut deiner bescheibung würde es ja sowieso keine parallelen berechnungen geben, sonst kommst ja mal vor, dass du was umsonst berechnest wenn der nutzer abbricht.

also einen thread und dann immer auswerten wenn der fertig ist, ob abgebrochen wurde...

09.08.2007 - 13:33 Uhr

hallo,

ich hab daran auch gerade ein bißchen rumgespielt.
kannst da mal code posten...

danke!!

06.08.2007 - 13:33 Uhr

das ist richtig!
kommt eben darauf an was man wissen will.

06.08.2007 - 11:29 Uhr

joa mag qualitativer sein...funzt aber nicht ganz so wie du das da schreibst!

in "allowedAttributes" stehen dann alle möglichen Attribute drin, auch die die nicht belegt sind.

06.08.2007 - 10:50 Uhr

Hallo,

zwar schon lange her aber vielleicht hifts ja noch...
Ausgabe alle Eigenschaften und deren Werte.


foreach (System.Collections.DictionaryEntry prop in res.Properties)
{
	Console.WriteLine("Eigenschaft: {0}", prop.Key.ToString());
	foreach(object valueCol in (ResultPropertyValueCollection) prop.Value)
	{
		Console.WriteLine("Wert: {0}", valueCol.ToString());
	}
	Console.WriteLine();
}

22.06.2007 - 18:18 Uhr

hallo,

ohh, naja schaden kanns ja nie...

oder wie mein Teacher schon immer sagte:
"Code am Morgen, vertreibt Kummer und Sorgen"

die MSDN gibt da auch ein schönes Bsp. unter dem Stichwort "DirectorySecurity"

Grüße von der Ostsee...

22.06.2007 - 15:02 Uhr

Also ich muss das Problem nochmal aufgreifen...

ich habe immernoch das Problem, das diese fehlermeldung kommt...

"Es wurde versucht, einen nicht autorisierten Vorgang auszuführen."

Was soll mir das sagen?

Wie soll ich denn den Besitzer ändern, wenn ich mir nicht das DirecrorySecurity Objekt holen kann?

man find ich das doof... 😁

22.06.2007 - 13:04 Uhr

hallo,

über die FileInfo.GetAccessControl bzw. DirectoryInfo.GetAccessControl das
FileSecurity, DirectorySecurity holen und dann rechte setzen.

und dann FileInfo.SetAccessControl bzw. DirectoryInfo.SetAccessControl.

zum Beispiel Besitzer ändern:

DirectoryInfo info = new DirectoryInfo(path);
DirectorySecurity dirSec = Directory.GetAccessControl(path, AccessControlSections.Owner);
dirSec.SetOwner(new NTAccount("Administrator"));
info.SetAccessControl(dirSec);
21.06.2007 - 09:42 Uhr

Hey...

Die Zuordnung Lieferanten und Kunden würdest du doch sowieso in einer DB speichern, dann kannst du doch die Verlinkungen zur Karte auch dort positionieren, also dem Kunden nen Punkt auf der Karte zuordnen.

Dann bei OnClick auf den Punkt in der Karte eine Abfrage an die DB und du bekommst alle Zuordnungen zu dem Punkt zurück, gehst diese durch und läßt sie in der Karte anzeigen...
Das ganze in Abhängigkeit von dem was geklickt wurde Kunde oder Lieferant...

nur mal eine erste Idee von mir...

20.06.2007 - 20:53 Uhr

Hallo,

ich benutze gerne die landkarten aus MS Visio. Da hast du zwar nicht die Kreise aber immerhin schon mal die Bundesländer mit den Grenzen.

ist doch mal eine idee....

20.06.2007 - 18:45 Uhr

hey herbivore,

ja die CAS muss ich doch zum beispiel einstellen wenn ich die anwendung aus dem lan starte (.NET Configuration) aber das mach ich doch gar nicht...oder muss ich auch was einstellen wenn die anwendung im lan was machen will?
also im LAN auf eine Datei zugreifen will.
das ganze mache ich ja über UNC pfade...

wie mache ich das denn?

20.06.2007 - 17:36 Uhr

danke für die Antwort...

ja das weis ich auch

das heißt auch irgendwas mit ...OwnerPrevelege... oder so...

der fehler kommt ja auch nicht wenn ich den besitzer setzen will, sondern schon wenn ich mir das DirectorySecurity Object holen will.

ich lasse das Proggi aber unter dem DomänenAdmin laufen und der darf den Besitz übernehmen...
wenn ich das mit der Maus mache, geht das ja wunderschön...

kann ich meiner Anwendung noch irgendwie sagen, dass sie unter einem bestimmten nutzer läuft oder bestimmte nutzerrechte hat?

20.06.2007 - 16:05 Uhr

weis denn keiner Rat??

Schade...

warum frag ich bloß immer so schwierige sachen...? 😮)

20.06.2007 - 15:59 Uhr

hallo,

also ob das über remoting funzt kann ich dir nicht sagen aber ich hab das mal so gemacht...

		
//using System.Runtime.InteropServices;

[DllImport("advapi32.dll", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Ansi, SetLastError = true)]
public static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);

		
public bool Auth(string userName, string password, string domainName, string groupName)
{
	IntPtr intPtr = IntPtr.Zero;
	//Den Pointer holen über die API Funktion LogonUser
    LogonUser(userName, domainName, password, 3, 0, ref intPtr);
	if (intPtr.Equals(IntPtr.Zero))
	{
		//Fehler
		//Nutzerdaten falsch!
		return false;
	}
	else
	{
		WindowsPrincipal p =new WindowsPrincipal(new WindowsIdentity(intPtr, LogonUser", WindowsAccountType.Normal, true));
		return p.IsInRole(groupName);
	}
}

19.06.2007 - 15:45 Uhr

hallo,

ich raff gerade gar nicht was du da machst...
was machen die beiden prozesse bei button1?

PS:
vielleicht ist XML besser für deine Datei.

19.06.2007 - 15:17 Uhr

okay... an den UNC Pfaden schein es nicht zu liegen, hab es mal lokal mit UNC probiert und es klappt (\pc\c$\temp)

Aber wenn ich es auf dem Server mit dem Admin versuche kommt immernoch diese Fehlermeldung.

nichtautorisierter Vorgang

PS:
ich glaub ich weis warum!
weil der admin keine rechte auf den Ordner hat...aber da beisst sich doch die katze in den schwanz, oder?
wie soll ich denn ein DirectorySecurityObject holen um Rechte zu setzen wenn ich keine Rechte habe... ???

HILFE!!

19.06.2007 - 14:41 Uhr

okay..
ich habs mal lokal mit dem Temp Ordner versucht.
also grundsätzlich funktioniert das...bis auf, dass man das rekursiv in allen Verzeichnissen machen muss... 😮(

Kann ich dann meine Anwendung noch irgendwie andere Rechte zuweisen, also in einem anderen Context laufen lassen. Aber wenn ich sie als DomänenAdmin starte, müsste das doch reichen oder nicht?

und der DomänenAdmin darf auch den Besitz des Ordners übernehmen!

Hilfe...

ich versteh das nicht...

19.06.2007 - 14:17 Uhr

Hallo,

ich hab da mal wieder ein kleines Problem...
Ich will ein Proggi basteln, dass Profilordner von Servern löscht.

Das Problem, dass sich da bietet ist, dass der Nutzer unter dem das Proggi läuft (DomänenAdmin) nicht der Besitzer der Verzeichnissen ist, sondern ja der Nutzer selbst.
Der Admin kann den Besitz aber übernehmen.
Nur wie mache ich das im Code?

mein Ansatz war:

DirectoryInfo info = new DirectoryInfo(path);
DirectorySecurity dirSec = 
            new DirectorySecurity(info.FullName, AccessControlSections.Owner);
dirSec.SetOwner(new NTAccount("domain\\Administrator"));
info.SetAccessControl(dirSec);

Wenn ich die DirectorySecurity zuweisen will, kommt eine Exception, dass ein nicht autorisierter Vorgang ausgeführt wurde.

Was mache ist falsch?
Die DirectoryInfo ist über UNC Pfad gebunden, liegt es daran?

DANKE

15.06.2007 - 08:18 Uhr

hallo,
als erstes solltes du vor deinem

while (xmlr.Read())
{...}

ein

xmlr.ReadStartElement();

setzen, damit du erst nach dem Stammknoten anfängst mit dem Lesen.
Dann fehlt in deinem Aufbau der XML meiner Meinung nach eine Ebene, nämlich die der Tabelle.
Du hast da jetzt 2 Spalten drin, aber ReadXML weis nicht zu welcher Tabelle die gehören.

<Stammknoten>
<TabellenName>  
<Position>Position A</Position>
<Artikelname>Artikel 1</Artikelname>
</TabellenName>
</Stammknoten>

So gehts...
dann musst du nur dafür sorgen, dass beim Einlesen deiner Spalten auch nur die Spalten gelesen werden und nichts anderes... Der TabellenName ist auch von NodeType.Element.

nee idee, vielleicht nicht die schönste...
bei deinem Einlesen der Spalten auch auf den Namen prüfen.

//dtXML.TableName = xmlr.ReadString(); 
if (xmlr.NodeType == XmlNodeType.Element && xmlr.Name != dtXML.TableName)
{
	DataRow rw = dtSpalten.NewRow();
	rw[0] = xmlr.Name.ToString();
	dtSpalten.Rows.Add(rw);
}

ODER wenn du die Möglichkeit hast die XML Datei über dein Programm zu schreiben, dann mach das mit WriteXML und schreib das Schema mit weg.

dt.WriteXml(fileName, XmlWriteMode.WriteSchema);

Dann brauchst du dich um gar nichts kümmern, nur ReadXML aufrufen.
In der MSDN findest du ein gutes Beispiel dazu.

14.06.2007 - 10:00 Uhr

Hallo,

ich denke das Problem ist, dass du den Tabellennamen für dtXML leer lässt.
der muss aber so heißten wie die Tabelle, die die XML Datei repräsentiert, heißt, sonst weis XmlRead() ja nicht wo es die Werte eintragen soll.

Aufbau XML-Datei...

<Doc>
  <Tabelle>
    <Spalte1>WerteZeile1</Spalte1>
    <Spalte2>WerteZeile1</Spalte2>
  </Tabelle>
  <Tabelle>
    <Spalte1>WerteZeile2</Spalte1>
    <Spalte2>WerteZeile2</Spalte2>
  </Tabelle>
</Doc>

Du müsstest quasi den Tabellennamen auslesen und und die DataTable so benennen und dann sollte das funzen...
jedenfalls funzt es dann bei mir... 😮)

Poste sonst mal nen Ausschnitt aus deiner XML-Datei, dann kann ich das damit mal testen...

Grüße

12.06.2007 - 23:38 Uhr

int count = 0;
string str = "Hallo, das ist ein Test, der eigentlich 2 leifern sollte";
foreach(char c in str)
{
	if(c == ',')
	{
		count++;
	}
}
Console.WriteLine(count.ToString());
Console.ReadLine();
12.06.2007 - 23:31 Uhr

Hallo,

der Code hinter dem link den du da gepostet hast, ist doch genau das was du brauchst...anstelle des ausschreibens den Knotennamens mußt du bir dann nur einen if teil einfügen und auf das prüfen, was einen knoten für eine anderes icon qualifiziert und wenn das so ist, dann icon setzen.

hab auch ne weile gebraucht bis ich rekursion verstanden habe... 😮)

12.06.2007 - 23:28 Uhr

ich glaub ich hab das nicht richtig verstaden...
willst du, dass andere deine cds bewerten und du weißt dann, welche am meisten gewollte wird?
oder ist das deine eigene Rangliste?

12.06.2007 - 23:04 Uhr

hallo,
bin zwar nich der DB experte aber ich würde das ändern des ranges über ein update des datensatzes machen.
für die rangliste könntst du ja eine neue view machen (vielleicht sogar ne storedprocedure, hab ma gelernt man soll soviel logik wie geht in die db packen) wo du dann nach rang sortierst und dann vielleicht auch nur die ersten 10 anzeigen lässt...quasi Top10...

hilft das?

grüße

12.06.2007 - 21:01 Uhr

hallo,
die idee über den GlobalCatalog zu gehen hatte ich auch schon.
wäre super wenn du da mal gucken kannst!!

ist echt ein bißchen wichtig, weil es leider auch nicht privat ist... 😮)

DANKE!!

Grüße

12.06.2007 - 20:59 Uhr

hallo,

du kannst doch mit DataTable.ReadXml(dateiname) Daten aus einer XML Datei in eine Table lesen.
Mußt nur vorher dafür sorgen, dass du alle Spalten hast, die du brauchst, die kannst ja aus der Datei auslesen...
die Table bindest du dann an das GridView.

Schreiben kannst du die XML Datei dann wieder mit WriteXml