der nach 100 ms das this.hide ausführt, aber das kann ja nicht sinn der sache sein ????
wenn das erste load-ereigniss der mainform eintritt führe ich ein this.hide() aus, nur bleibt die mainform weiterhin sichtbar ???? beim späteren ausführen von this.hide() z.b.: durch ein clickereigniss funktioniert es problemlos ...
hat jemand eine idee ????
aber wieso weiß die ToString-Methode das es ein DataView ist ....
ich hab ein Hashtable (HT) dessen Value´s DataView´s sind...
wenn ich mit
MessageBox.Show(HT[this.listView.FocusedItem.Text].ToString());
zeigt er mir auch an das es DataView´s sind ...
wenn ich aber folgendes probiere
foreach(DataRowView zeile in HT[this.listView.FocusedItem.Text])
{
}
kommt eine fm: " das object hat keine definition für GetEnumerator"!
setze ich dann ein (DataView) ein funtzt es, wieso ????
foreach(DataRowView zeile in (DataView)HT[this.listView.FocusedItem.Text])
{
}
hast du doch hunderte bis tausende artikelnummern, willst du die alle in der combobox unterbringen ???
warum machst du nicht 3 textfelder ???
ich hab ein DataSet mit 2 DataTable und mache von der einen DataTable ein select abfrage und bekomme ein DataRow[] ...
DataRow[] sortetList = TB2.Select(strExpr,strSort);
und nun versuche ich das DataRow[] in einem DataGrid anzuzeigen
also hab ich mir gedacht ich mach aus dem DataRow[] ein DataTable
aber sobald das Programm an diesen Punkt kommt, macht es in der Methode einfach nicht weiter ????
hier meine Versuche aus einem DataRow[] ein DataTable zu machen ....
TBEnd = das neue DataTable
SPT die Spalten vom Table
foreach(DataRow zeile in sortetList)
{
DataRow NewRow = TBEnd.NewRow();
for(int i = 0; i < SPT.Length; i++)
{
NewRow[SPT[i]] = zeile[SPT[i]];
}
TBEnd.Rows.Add(NewRow);
}
o.
foreach(DataRow zeile in sortetList)
{
TBEnd.Rows.Add(zeile);
}
Original von Xqgene
du fürst einfach deine MCP() Mehtode in einem Thread aus. dann brauchst du keine bremsen und dein form ist immer noch ansprechbar.private void MCP() { Thread thread = new Thread(new ThreadStart(MCP1)); thread.Start(); } private void MCP1() { Methode1(); Methode2(); Methode3(); }
ich starte eine methode, die sehr viel leistung frist aber möchte auch das die form weiter benutzt werden kann, ohne das sie ein starrer fleck auf dem desktop ist ....
wenn ich aus einer methode andere methoden aufrufe werde diese nacheinander abgearbeitet... z.B.:
private void MCP()
{
Methode1();
Methode2();
Methode3();
}
wenn ich aber eine von diesen Methoden in einem eigenem Thread starte, wie kann ich verhindern, das die Folgemethoden sofort und nicht nach beendigung der erst-methode gestartet werden ???
private void MCP()
{
Thread thread = new Thread(new ThreadStart(Methode1));
thread.Start();
Methode2();
Methode3();
}
ich will in diversen mp3-rar archive die mp3 info´s auslesen, gibt es möglichkeit die mp3´s temporär in ein virtuelles laufwerk zu entpacken ??? o. wenn das nicht gehen sollte, wie frage ich die temp-variable des system ab ????
oh , sorry hatte deine antwort nicht ganz gelesen ...
bool ist natürlich besser geeignet ...
dazu einen counter der beim programmstart 0 ist und bei jedem aufruf der gerätsuchmethode hochgezählt wird :
private void Gerätsuchmethode()
{
if(suchcounter == 0)
{
suche gerät ....
}
suchcounter++;
}
dann verstehe ich aber nicht warum du nicht einfach eine richtextbox nimmst ???
da kannst makieren, kopieren, einfügen, ausschneiden ???
du kannst es sogar per programm machen
this.textBox.SelectAll();
this.textBox.Copy();
this.textBox.Paste();
aber wenn es unbedingt ein label sein muß :
würde ich dem label ein click-event zuweisen
this.label.Click += new System.EventHandler(this.copieren);
und dann eine methode schreiben die den label.text in eine unsichtbare textbox kopiert...
this.unsichtbaretextbox.text = String.Copy(this.label.text)
und dann mit
this.unsichtbaretextbox.SelectAll();
this.unsichtbaretextbox.Copy();
in den zwischenspeicher kopieren....
((das wäre meine lösung, bestimmt geht es noch eleganter ???))
sehe ich das richtig das dudas händisch mit der maus machen willst ???
hat jemand eine Klasse/dll um mit rar-archiven zu arbeiten
ich hab ein sharpdevelop projekt zu einem arbeitskollegen geschickt und der hat nur den monocompiler (die monoumgebung läuft noch nicht)
was muß mein Kollege dem Compiler für Argumente übergeben, damit der Compiler meine 3 .cs dateien miteinbeziehen...
ich hab ein dataset mit sehr vielen Zeilen ....
was ist die schnellste methode dieses zu sortieren ??
aber warum nicht in meinem proggi ????
Wert1 = TB1.Rows[File1] [SPT[2]].ToString();
Wert2 = TB1.Rows[File2] [SPT[2]].ToString();
if(Wert1.Length > 5)
{
if(String.Compare(Wert1, Wert2) == 0)
{
//Hier wird nur wert1 angezeigt ???
MessageBox.Show(Wert1 + " " + Wert2 + " " + Wert1.Length.ToString() + " " + Wert2.Length.ToString());
//Hier wird die länge angezeigt und im kopf der box der inhalt von wert1
MessageBox.Show(Wert1.Length.ToString(),Wert1);
treffer = treffer + exactTitelname;
return treffer;
}
else
{
treffer = treffer + StringCompareMP3(Wert1, Wert2);
}
}
kann es sein das man in der neuen version keine strings mehr mit + verbinden kann ???
z.b.:
MessageBox.Show(String1 + string2 + Int1.ToString());
aber was ist mit den arrays ??
for(int i = 0; i < 100; i++)
{
FileInfo[] subfiles = di.GetFiles(this.textBox2.Text);
FAL.Add(subfiles);
}
FAL.Clear();
sind jetzt alle subfiles array´s weg o. schwirren die im nirvana rum ???
mein problem ist folgendes...
wenn ich mit arraylist.clear() diese bereinige, sind doch noch alle array´s die der arraylist zugeordnet waren, noch da, oder nicht ??? und die könnte ich dann nicht mehr ansprechen, weil sie alle den gleichen namen haben ....
ich hab eine arraylist mit mehren array´s
wie kann ich dieses removen/closen/clearen/??? bevor ich einen neuen durchgang meines prog starte ???
gute info´s zum aufbau einer mp3 und deren abfrage findet man hier ...
kann man sich irgendwo den sourcecode einer textbox o. eines button anschauen ???
mit string[] args wird eine stringarray angelegt, welche die dem programm übergebenen argumente enthält....
zB.:
Programmaufruf:
programm.exe 1111 aaaa 3333 bbbb
ergibt folgende string array:
args[0] = "1111"
args[1] = "aaaa"
args[2] = "3333"
args[3] = "bbbb"
mit folgendem Code wähle ich die Schrifart für eine richtextbox ...
void SchriftDialog(object sender, System.EventArgs e)
{
FontDialog fontDl = new FontDialog();
if(fontDl.ShowDialog() == DialogResult.OK)
{
this.richTextBox.Font = fontDl.Font;
}
}
nur wie bekomme ich es hin, das im fontdialog die aktuelle schriftart bereits ausgewählt ist ????
wie aktiviere ich den o. einen debuger bei SharpDevelop
ließt du nicht die komplette datei zeile für zeile in ein array o. dataset ein und greifst dann per zufallszahl über den index darauf zu ???
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);
ArrayList checkReadSockets = new ArrayList();
checkReadSockets.Add(socket);
Socket.Select(checkReadSockets, null, null, TimeOut);
wie konnte ich das nur übersehen...
ich hab "Excel.Workbook " aus den load methoden entfernt und schon funktioniert es ... 🙂)
der fehler entsteht in der zeile wo ich die worksheets referenziere... also ganz unten ...
worksheet1 = (Excel.Worksheet)workbook1.Worksheets[HString1];
worksheet2 = (Excel.Worksheet)workbook2.Worksheets[HString2];
aber da das meiner meinung nach vollkommen richtig ist, hab ich denn ganzen code dargestellt....
ps.: dieses comische zeichen wurde von diesem forum hinzugefügt..., ist nicht im quelltext vorhanden...
wenn ich auf die worksheets zugreife bekomme ich immer die fm:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
und ich weiß nicht warum, habt ihr eine idee ????
// project created on 07.05.2004 at 10:33
using System;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
namespace MyFormProject
{
class MainForm : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox Load1TB;
private System.Windows.Forms.ComboBox StartTerminCB;
private System.Windows.Forms.TextBox Load2TB;
private System.Windows.Forms.Button Load2BT;
private System.Windows.Forms.Button Load1BT;
object missing = Missing.Value;
object ExcelObject = null;
Excel.Application excel = null;
Excel.Workbook workbook1 = null;
Excel.Workbook workbook2 = null;
Excel.Worksheet worksheet1 = null;
Excel.Worksheet worksheet2 = null;
public MainForm()
{
InitializeComponent();
Go();
}
// THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
// DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST
void InitializeComponent() {
this.Load1BT = new System.Windows.Forms.Button();
this.Load2BT = new System.Windows.Forms.Button();
this.Load2TB = new System.Windows.Forms.TextBox();
this.StartTerminCB = new System.Windows.Forms.ComboBox();
this.Load1TB = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// Load1BT
//
this.Load1BT.Location = new System.Drawing.Point(2, 2);
this.Load1BT.Name = "Load1BT";
this.Load1BT.TabIndex = 0;
this.Load1BT.Text = "Load 1";
this.Load1BT.Click += new System.EventHandler(this.LoadFile1);
//
// Load2BT
//
this.Load2BT.Location = new System.Drawing.Point(2, 28);
this.Load2BT.Name = "Load2BT";
this.Load2BT.TabIndex = 1;
this.Load2BT.Text = "Load 2";
this.Load2BT.Click += new System.EventHandler(this.LoadFile2);
//
// Load2TB
//
this.Load2TB.Location = new System.Drawing.Point(80, 30);
this.Load2TB.Name = "Load2TB";
this.Load2TB.Size = new System.Drawing.Size(406, 20);
this.Load2TB.TabIndex = 3;
this.Load2TB.Text = "";
this.Load2TB.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Load2Now);
//
// StartTerminCB
//
this.StartTerminCB.Items.AddRange(new object[] {
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember"});
this.StartTerminCB.Location = new System.Drawing.Point(2, 56);
this.StartTerminCB.MaxDropDownItems = 12;
this.StartTerminCB.Name = "StartTerminCB";
this.StartTerminCB.Size = new System.Drawing.Size(162, 21);
this.StartTerminCB.TabIndex = 4;
this.StartTerminCB.SelectedIndexChanged += new System.EventHandler(this.LoadExcelSheet);
//
// Load1TB
//
this.Load1TB.Location = new System.Drawing.Point(80, 4);
this.Load1TB.Name = "Load1TB";
this.Load1TB.Size = new System.Drawing.Size(406, 20);
this.Load1TB.TabIndex = 2;
this.Load1TB.Text = "";
this.Load1TB.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Load1Now);
//
// MainForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(492, 113);
this.Controls.Add(this.StartTerminCB);
this.Controls.Add(this.Load2TB);
this.Controls.Add(this.Load1TB);
this.Controls.Add(this.Load2BT);
this.Controls.Add(this.Load1BT);
this.Name = "MainForm";
this.Text = "This is my form";
this.Closing += new System.ComponentModel.CancelEventHandler(this.ExcelBeenden);
this.ResumeLayout(false);
}
[STAThread]
public static void Main(string[] args)
{
Application.Run(new MainForm());
}
void Go()
{
try
{
StreamReader read = new StreamReader("config.ini");
this.Load1TB.Text = read.ReadLine();
this.Load2TB.Text = read.ReadLine();
read.Close();
}
catch
{
}
try
{
ExcelObject = Marshal.GetActiveObject("Excel.Application");
}
catch
{
}
if(ExcelObject != null)
{
excel = (Excel.Application)ExcelObject;
}
else
{
excel = new Excel.ApplicationClass();
}
excel.Visible = true;
}
void LoadFile1(object sender, System.EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if(ofd.ShowDialog() == DialogResult.OK)
{
this.Load1TB.Text = ofd.FileName;
}
Excel.Workbook workbook1 = excel.Workbooks.Open(this.Load1TB.Text,
missing, missing, missing, missing,
missing, missing, missing, missing,
missing, missing, missing, missing);
}
void LoadFile2(object sender, System.EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if(ofd.ShowDialog() == DialogResult.OK)
{
this.Load2TB.Text = ofd.FileName;
}
Excel.Workbook workbook2 = excel.Workbooks.Open(this.Load2TB.Text,
missing, missing, missing, missing,
missing, missing, missing, missing,
missing, missing, missing, missing);
}
void Load1Now(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
if(this.Load1TB.Text.Length != 0)
{
Excel.Workbook workbook1 = excel.Workbooks.Open(this.Load1TB.Text,
missing, missing, missing, missing,
missing, missing, missing, missing,
missing, missing, missing, missing);
}
}
}
void Load2Now(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
if(this.Load2TB.Text.Length != 0)
{
Excel.Workbook workbook2 = excel.Workbooks.Open(this.Load2TB.Text,
missing, missing, missing, missing,
missing, missing, missing, missing,
missing, missing, missing, missing);
}
}
}
void LoadExcelSheet(object sender, System.EventArgs e)
{
string HString1 = "";
string HString2 = "";
if((this.Load1TB.Text.Length != 0) && (this.Load2TB.Text.Length != 0))
{
switch(this.StartTerminCB.Text)
{
case "Januar":
HString1 = "Januar";
HString2 = "Jan ";
break;
case "Februar":
HString1 = "Februar";
HString2 = "Feb ";
break;
case "März":
HString1 = "März";
HString2 = "Mrz ";
break;
case "April":
HString1 = "April";
HString2 = "Apr ";
break;
case "Mai":
HString1 = "Mai";
HString1 = "Mai ";
break;
case "Juni":
HString1 = "Juni";
HString2 = "Jun ";
break;
case "Juli":
HString1 = "Juli";
HString2 = "Jul ";
break;
case "August":
HString1 = "August";
HString2 = "Aug ";
break;
case "September":
HString1 = "September";
HString1 = "Sep ";
break;
case "Oktober":
HString1 = "Oktober";
HString2 = "Okt ";
break;
case "November":
HString1 = "November";
HString2 = "Nov ";
break;
case "Dezember":
HString1 = "Dezember";
HString2 = "Dez ";
break;
}
HString1 = HString1 + DateTime.Now.Year.ToString().Substring(2,2);
HString2 = HString2 + DateTime.Now.Year.ToString().Substring(2,2);
MessageBox.Show(HString1,HString2);
worksheet1 = (Excel.Worksheet)workbook1.Worksheets[HString1];
worksheet2 = (Excel.Worksheet)workbook2.Worksheets[HString2];
}
else
{
MessageBox.Show("Nicht alle Exceldateien wurden geladen...");
}
}
void ExcelBeenden(object sender, System.ComponentModel.CancelEventArgs e)
{
StreamWriter write = new StreamWriter("M:\\C#-programm\\ExcelMCP01\\bin\\Debug\\config.ini");
write.WriteLine(this.Load1TB.Text);
write.WriteLine(this.Load2TB.Text);
write.Close();
excel.Quit();
}
}
}
Verlag: ADDISON-WESLEY
Autor: Jürgen Bayer
ISBN: 3-8273-2050-X
Preis: 60 Euro
das buch ist voll cool, hat jede menge code beispiele...
der ping war auch drin, aber leider nur mit einfacher checksumme-kontrolle...
ich hab keinen gefunden und mithilfe eines schlauen buches einen selbst gebastelt...
// created on 04.04.2004 at 14:09
using System;
using Zeittools;
using System.Net;
using System.Net.Sockets;
using System.Collections;
namespace Nettools
{
public class Ping
{
private byte[] orgsendBuffer = {8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
private byte[] sendBuffer = {8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
private byte[] receiveBuffer = new byte[200];
private byte lowByte = 0;
private byte highByte = 0;
private string Fehler = "";
private string IPRG = "";
private string sollIP = "";
private string istIP = "";
private int checksum = 0;
private int Counter = 1;
private int sent = 0;
private int receivedBytes = 0;
private ushort wordcheck = 0;
private double timeResult = 0;
//Rckgabe Variablen um den Status des Pings abzufragen...
private bool hostStatus = false;
private bool timeoutStatus = false;
private bool checksumStatus = false;
private bool sequenceStatus = false;
private bool echoStatus = false;
private bool ipStatus = false;
private StopUhr Uhr = new StopUhr();
//Konstruktor
public Ping()
{
}
public double Result
{
get {return timeResult;}
}
public string SollIP
{
get {return sollIP;}
}
public string IstIP
{
get {return istIP;}
}
public string FehlerRG
{
get {return Fehler;}
}
public bool ChecksumStatus
{
get {return checksumStatus;}
}
public bool SequenceStatus
{
get {return sequenceStatus;}
}
public bool EchoStatus
{
get {return echoStatus;}
}
public bool IPStatus
{
get {return ipStatus;}
}
public bool HostStatus
{
get {return hostStatus;}
}
public bool TimeoutStatus
{
get {return timeoutStatus;}
}
public void SendBuffer(ref byte[] SBuffer)
{
sendBuffer.CopyTo(SBuffer, 0);
}
public void ReceiveBuffer(ref byte[] RBuffer)
{
receiveBuffer.CopyTo(RBuffer, 0);
}
public void Pingen(string Adresse, int TimeOut)
{
Fehler = "";
checksum = 0;
wordcheck = 0;
lowByte = 0;
highByte = 0;
sent = 0;
receivedBytes = 0;
IPRG = "";
sollIP = "";
istIP = "";
timeResult = 0;
checksumStatus = false;
sequenceStatus = false;
echoStatus = false;
ipStatus = false;
hostStatus = false;
timeoutStatus = false;
for(int i = 0; i < receiveBuffer.Length; i++)
{
receiveBuffer[i] = 0;
}
orgsendBuffer.CopyTo(sendBuffer, 0);
sendBuffer[6] = (byte)((ushort)Counter >> 8);
sendBuffer[7] = (byte)((ushort)Counter & 0xFF);
this.CheckSumKonstruktor();
try
{
IPAddress ipAddress = null;
char[] chr= {'0','1','2','3','4','5','6','7','8','9'};
if (Array.IndexOf(chr,Adresse.Substring(0,1)) >-1)
{
ipAddress = IPAddress.Parse(Adresse);
sollIP = ipAddress.ToString();
}
else
{
// IP-Adresse des Host ermitteln
IPHostEntry ipHostEntry = Dns.Resolve(Adresse);
ipAddress = ipHostEntry.AddressList[0];
sollIP = ipAddress.ToString();
}
// IPEndPoint-Instanz fr den Port 7 der angegebenen Adresse erzeugen
IPEndPoint epHost = new IPEndPoint(ipAddress, 7);
// Socket fr das Senden von ICMP-Daten erzeugen
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);
Uhr.Start();
// ECHO senden
sent = socket.SendTo(sendBuffer, sendBuffer.Length, SocketFlags.None, epHost);
// ber Socket.Select prfen, ob im gegebenen Timeout Daten zum Lesen
// bereitstehen
ArrayList checkReadSockets = new ArrayList();
checkReadSockets.Add(socket);
Socket.Select(checkReadSockets, null, null, TimeOut);
// Lesen der Daten
if (checkReadSockets.Count > 0)
{
// Wenn das Socket nicht aus der ArrayList gelscht wurde,
// sind Daten zum Lesen verfgbar: Die ECHO-Antwort empfangen
receivedBytes = socket.Receive(receiveBuffer, receiveBuffer.Length, SocketFlags.None);
timeResult = (double)Uhr.Stop();
this.CheckSumControl();
hostStatus = true;
timeoutStatus = true;
}
else
{
timeResult = 0;
Fehler = Fehler.Insert(Fehler.Length, "TimeOut! \n");
}
}
catch
{
Fehler = Fehler.Insert(Fehler.Length, "Unbekannter Host! \n");
this.Count();
return;
}
IPRG = "";
IPRG = IPRG.Insert(IPRG.Length, this.receiveBuffer[12].ToString());
IPRG = IPRG.Insert(IPRG.Length, ".");
IPRG = IPRG.Insert(IPRG.Length, this.receiveBuffer[13].ToString());
IPRG = IPRG.Insert(IPRG.Length, ".");
IPRG = IPRG.Insert(IPRG.Length, this.receiveBuffer[14].ToString());
IPRG = IPRG.Insert(IPRG.Length, ".");
IPRG = IPRG.Insert(IPRG.Length, this.receiveBuffer[15].ToString());
istIP = IPRG;
if(String.Compare(sollIP,istIP) != 0)
{
timeResult = 0;
Fehler = Fehler.Insert(Fehler.Length, "Soll und Ist-IP stimmen nicht berein! \n");
}
else
{
ipStatus = true;
}
this.Count();
}
private void CheckSumControl()
{
checksum = 0;
wordcheck = 0;
for(int i = 0; i < 200; i = i + 2)
{
highByte = receiveBuffer[i];
lowByte = receiveBuffer[i + 1];
wordcheck = highByte;
wordcheck = (ushort)((wordcheck << 8) + lowByte);
checksum = checksum + wordcheck;
}
checksum = (checksum >> 16) + (checksum & 0xFFFF);
if((checksum == 0xFFFF) || (checksum == 0))
{
Fehler = "Checksum i.o.! \n";
checksumStatus = true;
}
else
{
timeResult = 0;
Fehler = Fehler.Insert(Fehler.Length, "CheckSumFehler! \n");
}
if((this.sendBuffer[6] == this.receiveBuffer[26]) && (this.sendBuffer[7] == this.receiveBuffer[27]))
{
sequenceStatus = true;
}
else
{
timeResult = 0;
Fehler = Fehler.Insert(Fehler.Length, "Echo wurde mit falscher Sequencenummer empfangen! \n");
}
if((this.receiveBuffer[20] != 0) && (this.receiveBuffer[21] != 0))
{
timeResult = 0;
Fehler = Fehler.Insert(Fehler.Length, "Die empfangene ICMP-Nachricht ist kein Echo!!! \n");
}
else
{
echoStatus = true;
}
}
private void CheckSumKonstruktor()
{
checksum = 0;
wordcheck = 0;
for(int i = 0; i < 16; i = i + 2)
{
highByte = sendBuffer[i];
lowByte = sendBuffer[i + 1];
wordcheck = highByte;
wordcheck = (ushort)((wordcheck << 8) + lowByte);
checksum = checksum + wordcheck;
}
checksum = ((~checksum) >> 16) - (checksum & 0xFFFF);
sendBuffer[2] = (byte)(checksum >> 8);
sendBuffer[3] = (byte)(checksum & 0xFF);
}
private int Count()
{
Counter = Counter + 1;
if(Counter == 0xFFFF)
{
Counter = 1;
}
return Counter;
}
}
}
ich hab die lösung schon gefunden...
in der user32.dll gibt es eine sendmessage funktion, mit deren hilfe ich dem desktop die nachricht schicke den monitor abzuschalten 🙂)
[DllImport("User32.dll")]
private static extern int SendMessage(IntPtr handle, int msg, int wparam, int lparam);
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MONITORPOWER = 0xF170;
private const int HWND_BROADCAST = 0x10014;// 0x10014 = desktop - 0xFFFF = alle Top-Level-Fenster(kann aber dazuführen das sich die AG aufhängt)
public static void Main(string[] args)
{
SendMessage((IntPtr)HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);// 2 = Monitor aus - 1 = Standby und -1 = Monitor anschalten...
}
über welche funktion kann ich denn monitor abschalten ????
ich hab ein kleines ziptool geschrieben, was auch funktioniert, bis auf dateien mit umlauten o. sonderzeichen, diese werden im erzeugten zip-archiv durch ein fragezeichen ersetzt...
hat einer ne idee wie ich das abstellen kann ???
ich hab sharpdevelop und hab auch icon´s zu meiner toolbar hinzugefügt, die dann nie angezeigt wurden, weil die resource datei im Projekte-baum nicht gespeichert wurde, wenn ich die icon´s händisch hinzugefügt habe und dann auch die datei gespeichert wurde, waren die icon auch im laufenden programm vorhanden....
ich hab ne ziemlich große mainform-klasse, wie kann ich die fensterlogik in einer 2.datei weiterschreiben unter gleichen namespace, gleicher klasse ????
wie kann ich eine Methode zeitgesteuert aufrufen, z.b.: aller 30 sec ...
jo, das funtzt, danke ...
nur hab ich jetzt ein weiteres problem...
beim ausführen des :
response = (HttpWebResponse)httpWebRequest.GetResponse();
kommt folgende meldung ???
Unbehandelte Ausnahme: System.Net.WebException: Die zugrundeliegende Verbindung
wurde geschlossen: Der Server hat eine HTTP-Protokollverletzung ausgeführt..
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.HttpWebRequest.GetResponse()
at MainClass.Main(String[] args) in d:\C#\htmlload\Main.cs:line 49
Drücken Sie eine beliebige Taste . . .
und damit kann ich absolut nix anfangen ....
ja das habe ich schon probiert, da aber im benutzernamen ein "/" enthalten ist, funktioniert das nicht, kann ich nicht irgendwie angeben, das sich webrequest o. httpwebreguest mit einem bestimmten benutzernamen und pw an diese eine seite anmeldet ????
wie kann ich mit webrequest html seiten runterladen die pw geschützt sind ???
ich hab in einem code folgende zeile gefunden ...
return 1F / this.pcFrequency;
wofür steht das F hinter der 1 ???
ist das irgendeine rundungsfunktion ???