Hallo
@ JimStark das ist leider C++ ich suche Lösungen für C#. Bin ich im falsche Forum gelandet oder verstehe ich was nciht richtig?
Mit freundlichem Gruß
yooti
Hallo,
nach vielen vielen Jahren habe ich wieder angefangen zu Programmieren und jetzt brauche ich wohl in der Königsklasse Hilfe.
Meine Programmierkenntnisse sind ehr sehr bescheiden bzw. grauenhaft. Das was ich habe Programmiert habe ich aber erfolgreich zum laufen bekommen.
Im Grunde geht es um ein Macrorecorder. Maus und Tastatur funktionieren schon. Jetzt geht es an die Pixel.
Als erstes bräuchte ich eine Micro Forms Anwendung wo ich mit der Maus auf dem Desktop klicke und mir dort die Infos
zu dem einem Pixel die Koordinaten x und y erhalte und die Farbe als #FFFFFF.
Als zweites. In meinem eigenen Macrorecorder will ich das dann in einer Schleife auswerten.
zu dem beiden Punkten brauche ich Infos wo ich was nachlesen kann oder es gibt mir einer den Code den ich hoffentlich auch verstehe. Wo ich mir nach und
nach alles zusammen bauen kann.
Mit freundlichem Gruß
yooti
hallo
kann ich mit dem Performance Counter auch auf andere Rechner drauf zugreifen wie mit WMI ?
Beispiel:
try
{
ConnectionOptions connection = new ConnectionOptions();
connection.Username = userNameBox.Text;
connection.Password = passwordBox.Text;
connection.Authority = "ntlmdomain:DOMAIN";
ManagementScope scope = new ManagementScope("\\\\192.168.0.204\\root\\CIMV2", connection);
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_PerfFormattedData_PerfDisk_LogicalDisk instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("AvgDiskBytesPerWrite: {0}", queryObj["AvgDiskBytesPerWrite"]);
}
//Close();
}
catch (ManagementException err)
{
MessageBox.Show("An error occurred while querying for WMI data: " + err.Message);
}
catch (System.UnauthorizedAccessException unauthorizedErr)
{
MessageBox.Show("Connection error (user name or password might be incorrect): " + unauthorizedErr.Message);
}
Wenn ich das mit dem PerformanceCounter auch machen könnte wäre es gut und wenn wie mache ich dann das ?
mfg yooti
danke für deine antwort
dann dürfte ich ja hier genau richtig sein oder ?
http://www.codeproject.com/KB/cs/perfgrid.aspx
Hallo
Ich habe eine Server (kein Server BS) der nichts anderes macht als ein paar daten zur verfügung stellt (Netzwerkfreigabe). Dieser Server hat mehrere Platten, auf den alle daten gleich sind (Quasi gespieglet).
Eine ClientApp soll vor dem Download herausfinden welche Festplatte auf dem Server am wenigsten ausgelastet ist und von dieser dann den download beginnen.
Hat jemand ne gute und einfache Idee wie ich auf einem fremdrechner die Festplattenauslastung herausfinde ?
yooti
Hallo
BeispielProjekt:
nehmen wir mal an ich habe auf einer Form 10 Labels.
label_01
label_02
label_03
usw.
in der Form_Load soll aus einer "config.xml" abgefragt werden ob das ein oder andere Labels sichtbar sein soll oder nicht.
mit einen haufen schreibaufwand bekomme ich das auch realisiert, also nicht das problem.
Mein ziel ist also das mit so wenig wie möglich code zu bewerkstelligen.
ICH WEISS das der code hier unten nicht ganz schlüssig ist.
meine Idee bisher ist:
labelvisible lvis = new labelvisible();
private void Form1_Load(object sender, EventArgs e)
{
lvis.sichtbar();
}
die Klasse labelvisible
private void labelvisible()
{
if (File.Exists(configDatei))
{
XmlNode temp_xmlRead01 = xmlDoc.SelectSingleNode(@"/Config/label_01/Visible");
string temp_xmlRead02 = temp_xmlRead01.InnerText;
if (temp_xmlRead02 == "true")
{
// funst natürlich nicht
label_01.Visible = true;
}
if (temp_xmlRead02 == "false")
{
// funst natürlich nicht
label_01.Visible = false;
}
}
}
soweit ist erst mal meine gedankengang !
Ich hoffe Ihr habt mich verstanden was ich machen möchte.
vieleicht gibt es ja auch ganz andere lösungsansätze
mfg
yooti
Hallo @All
hier mal mein test Code
string test1 = listBox_Festplatten.SelectedItem.ToString();
int len = test1.Length - 1;
MessageBox.Show(test1.Substring(1, len));
dieses beispiel arbeitet so wie es sein soll ! das erste Zeichen wird von dem string ordnungsgemäß abgeschintten
sobald ich aber die zahl 1 erhöhe z.B. auf 2 geht irgendwas schief
MessageBox.Show(test1.Substring(2, len));
Was ist hier los und warum funktioniert das nicht ?
mfg yooti
nach 3 wochen suchen und testen googeln und verzweifeln hab ich fast das gefunden was ich suche
hier ist ein auszug meiner recherche
ManagementObjectSearcher hdd = new ManagementObjectSearcher("root\\CIMv2", "SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in hdd.Get())
{
try
{
Console.WriteLine("Caption HDD: " + disk.GetPropertyValue("Caption").ToString());
Console.WriteLine("Model: " + disk.GetPropertyValue("Model").ToString());
Console.WriteLine("Name: " + disk.GetPropertyValue("Name").ToString());
Console.WriteLine("Partitions: " + disk.GetPropertyValue("Partitions").ToString());
Console.WriteLine("Größe: " + disk.GetPropertyValue("Size").ToString());
Console.WriteLine("SerialNumber: " + disk.GetPropertyValue("SerialNumber").ToString());
Console.WriteLine("PNPDeviceID: " + disk.GetPropertyValue("PNPDeviceID").ToString());
Console.WriteLine("-----------------------------------------------------");
}
catch
{
}
}
Console.WriteLine("//ende hdd---------------------------------------------------------------//");
ManagementObjectSearcher hdd2 = new ManagementObjectSearcher("root\\CIMv2", "SELECT * FROM Win32_DiskPartition");
foreach (ManagementObject disk in hdd2.Get())
{
try
{
Console.WriteLine("Caption HDD: " + disk.GetPropertyValue("Caption").ToString());
Console.WriteLine("Größe: " + disk.GetPropertyValue("Size").ToString());
Console.WriteLine("DeviceID: " + disk.GetPropertyValue("DeviceID").ToString());
Console.WriteLine("-----------------------------------------------------");
}
catch
{
}
}
Console.WriteLine("//ende hdd2---------------------------------------------------------------//");
ich wollte zwar das ergebnis "\Device\Harddisk3\Partition1" aber damit kann ich auch was anfangen "Disk #3, Partition #0"
hilfreich war auch was bei codeprojekt
http://www.codeproject.com
das Thema kann tehoretisch geschlossen werden außer es doch noch jemand eine idee wie ich direkt an "\Device\Harddisk3\Partition1" ran komme !
mfg yooti
kann das sein das mir hier diese seite weiterhilft ?
An in-depth look at WMI and Instrumentation: Part II
mfg yooti
nicht ganz das richtige was ich suche !
ich hab eine Form die nur 2x2 pixel groß ist (incl.Button) und die liegt ganz oben links mit topmost=true als panikbutton für dismount
desweiternen bietet mir der buttom ein contexmenu um nur die platte einzubinden die ich wirklich brauche und nicht alle die ich habe.
ich hab mal mein projekt gezipt !
der quellcode von truecrypt ist ja offen da sollte es doch eine möglichkeit geben herauszufinden welche platte unter \Device\Harddisk0\Partition1 eingebunden ist
hier der link zum quellcode: http://www.truecrypt.org/downloads2
ich hab da schon mal reingeschaut ! aber nur gucke ich da wie ein schwein ins uhrwerk und hab kein plan
ps. ich hab letztes jahr erst angefangen zu proggen und bis jetzt habe ich mir alles allein beigebracht
mfg yooti
hallo @ all
bin gerade dabei mir ein zusatztool für "TrueCrypt" zu basteln, zum mounten der komplett verschlüßelten Festplatten
wenn mann mehrere Festplatten mit der selben größe ist es schwer heraus zu finden welche platte welche ist und wo sie eingebunden werden soll.
ich hab mir eine funtion geschrieben die schon mal herusfindet mit welcher Festplatte ich überhaupt rede
das beispiel:
private void Form1_Load(object sender, EventArgs e)
{
ManagementObjectSearcher mang = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity");
foreach (ManagementObject obj in mang.Get())
{
if (Convert.ToString(obj["Name"]) == "SAMSUNG HD300LJ ATA Device")
{
MessageBox.Show("Samsung 300GB Platte gefunden");
}
}
}
soweit ist erst mal alles gut !
jetzt muß ich aber herausfinden wo genau die platte im system eingebunden ist ! aber nach folgendem muster: \Device\Harddisk0\Partition1 !!! Die ein und die selbe platte wird mal als Harddisk0 und nach eine neustart des rechnes als Harddisk1 oder Harddisk5 eingebunden oder wie auch immer ( fast jedes mal wo anders )
was gibt es für möglichkeiten heraszufinden wo die platten im system eingebunden werden ?
dies brauch ich für die funktion zum schnellen mounten der Festplatten mit dem richtigen laufwerksbuchstaben
das Beispiel
string platte_01 = "";
string truecrypt_pfad = @"C:\TrueCrypt\TrueCrypt.exe";
private void Contex_menu_01_Click(object sender, EventArgs e)
{
Process.Start(truecrypt_pfad, @"/v " + platte_01 + @" /ld /q");
}
ich hoffe ihr könnt mir in iregendeiner weise helfen
mfg yooti