Laden...

Forenbeiträge von megamacy Ingesamt 94 Beiträge

04.08.2015 - 10:31 Uhr

Ein altes Thema dass ich ausgrabe, aber dennoch brauche ich mal einen Tipp zu den Wrappern.

Ich benutze z.B. SetShowToolbar als Befehl an das ontrol, aber wenn ich es aufrufe, habe ich trpotzdem die Steuerungsleiste da von wo aus der benutzer kopien speichern und drucken kann.

Wie kann ich das ausblenden / abschalten?

Gleiches gilt für das Kontextmenü. Das sollte auch zu verhindern seinooder der inhalt anzupassen.

10.12.2007 - 12:57 Uhr

Danke ihr zwei, ich schaus mir mal an 🙂

NACHTRAG:
Danke Dr4g0n, das isses 🙂

10.12.2007 - 12:42 Uhr

Hallo community,

ich bin auf der suche nach der möglichkeit farben auf dem bildschirm zu erkennen, nur habe ich keinen ahnhaltspunkt wie ich das bewerkstelligen könnte.

Also was ich im einzelnen möchte ist eine Koordinate angeben (z.B. x= 500 ; y=300) und dann herausbekommen welche farbe sich an dieser stelle des monitors befindet. dabei soll es egal sein ob nur der desktop oder ein programm an dieser stelle zu sehen ist.

Habe ich an dieser stelle z.B. ein Worddokument offen wo sich an genau dieser stelle ein roter buchstabe befindet sollte es "255,0,0" oder "ff0000" ausgeben.

Ich hoffe ich habe verständlich gemacht was ich möchte und hoffe auf ideen wie man diese sache angehen kann.

29.10.2007 - 23:21 Uhr

wenn ich es zu nem string mache ist es allerdings leer. Das was mich wundert ist ja das es anfangs ging, dann habe ich das auslesen erweitert und es ging nicht mehr. selbst nachdem ich es neu gemacht habe wie es vorher war. (Tabelle und spaltenname sind korrekt)

anfangs ging es ohne das umwandeln in einen string... 🙁

29.10.2007 - 23:14 Uhr

verwendetes Datenbanksystem: OleDB

Ich bin ganz am anfang eine datenbank auszulesen. leider scheitere ich dort schon. das auslesen funktionierte anfangs und nun aufeinmal nicht mehr beim eintragen des Objektes in einen string, wegen;


Der Typ "object" kann nicht implizit in "string" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)	


OleDbConnection connection = new OleDbConnection();
            connection.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;" + "data source = Datenbank_20.mdb";
            connection.Open();

           
            string strSqlCmd = "SELECT * FROM Betreute";   
            
            OleDbCommand command = new OleDbCommand(strSqlCmd, connection);
            OleDbDataReader reader = command.ExecuteReader();
            
           
            string inhalt = reader["Name"];


Wahrscheinlich ein ganzeifacher fehler (wenn man es weiß) aber ich verzweifle langsam dran.

Weiß jemand rat?

22.06.2007 - 18:52 Uhr

Super Danke.

hier die komplett Lösung für alle die es brauchen


[DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll", SetLastError = true)]
        static extern bool GetWindowRect(IntPtr hWnd, out RECT rect);

        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int X;
            public int Y;
            public int Width;
            public int Height;
        } 
        private void button1_Click(object sender, EventArgs e)
        {   
            Process[] myProcesses;
            myProcesses = Process.GetProcessesByName("ProzessXY");
           
            RECT rect = new RECT();

            if (GetWindowRect(myProcesses[0].MainWindowHandle, out rect))
            {
                MessageBox.Show(string.Format("x={0}, y={1}, width={2}, height={3}", rect.X, rect.Y, rect.Width, rect.Height));
            }
        }

22.06.2007 - 18:26 Uhr

Hallo,

kann mir jemand sagen wie man an die Fensterauflösung anderer prozesse kommt?

an den namen der fenster kommt man ja wie folgt


Process[] myProcesses;
myProcesses = Process.GetProcessesByName("prozessXY");

myProcesses[count].MainWindowTitle;

ich weiß nicht ob der ansatz korrekt ist, aber so komme ich ja an den namen des hauptfensters, nun brauche ich nur noch einen weg wie ich dessen auflösung/größe (width & height) herausfinden kann.

Danke für die hilfe.

01.04.2007 - 15:36 Uhr

ich hänge immernoch an dem problem. habe schon mehrere andere ansetze fürs tasten klicken und mausklicken im netz gefunden, allerdings haben die alle dasselbe problem sobald man sie kombiniert.

hat denn niemand eine lösung wie man das funktionierend hinbekommt? büdde 🙂

Hie rmal ein ganz verienfachter weg (der halt auch den fehler produziert die STRG taste nicht mehr zu lösen)


        //Import mouse_event
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

        //Import keybd_eventl
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void keybd_event(byte bVk, byte bScan, long dwFlags, long dwExtraInfo);

        //Konstanten
        public const int MOUSEEVENTF_LEFTDOWN = 0x02;
        public const int MOUSEEVENTF_LEFTUP = 0x04;
        public const int MOUSEEVENTF_RIGHTDOWN = 0x08;
        public const int MOUSEEVENTF_RIGHTUP = 0x10;

        //Codes
        public const byte VK_CONTROL = 0x11;

        public const int KEYEVENTF_EXTENDEDKEY = 0x01;
        public const int KEYEVENTF_KEYUP = 0x02;

        private void btn_start_Click(object sender, EventArgs e)
        {
            keybd_event(VK_CONTROL, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);            
            keybd_event(VK_CONTROL, 0x45, KEYEVENTF_KEYUP, 0);
        }

30.03.2007 - 15:12 Uhr

Auch mit den mauspositionen geht das klicken nicht. wobei ich


MousePosition.X
MousePosition.Y

benutzt habe. ist irgendwie kürzer als deins (und deine curser funktion machte fehler)^^

30.03.2007 - 15:06 Uhr

Original von Borg

Mit den Compilermeldungen nicht klar zu kommen ist leicht wenn man den code größtenteils nicht versteht ^^
Da ist doch kaum Code. Ein paar Structs, ein paar Konstruktoren und Erzeugung und Füllen eines Arrays. Wenn du das nicht verstehst, solltest du eventuell noch mal an den Grundlagen feilen.

genau der teil ist nicht da sproblem, auch wenn ich weiß das ein auto aus blech, reifen und nem motor besteht kann ich ncoh lange keins bauen

Original von Borg

das tasten drücken greift garnicht
Möglicherweise muss man beim Mausklicken auch noch die aktuellen Koordinaten in dx und dy mitliefern. Um diese zu erhalten, kannst du GetCursorPos benutzen.

Ich versteh nicht wie mauskoordinaten das drücken von tastaturtasten beeinflussen soll?
Ich hab die methode so zusammen gesetzt das es nur tasten drückt. aber es kommt nirgendwo was an

Original von Borg

beim ausführen werden die maustasten lahm gelegt
Das bedeutet was?

Beim ersten test ließen sich die maustasten nicht mehr drücken, egal wo ich hinklickte, die maus reagierte nicht mehr. allerdings wechselt es seine funktionen jedesmal beim starten. einmal hat es eben kontextmenus geöffnet, also rechtsklick betätigt obwohl linksklick angegeben war, noch einen versuch später passierte wieder garnichts.

30.03.2007 - 14:39 Uhr

Mit den Compilermeldungen nicht klar zu kommen ist leicht wenn man den code größtenteils nicht versteht ^^

Die fehlermeldungen sind jetzt aufjedenfall ausgemerzt. allerdings funktioniert es auch nicht. beim ausführen werden die maustasten lahm gelegt, das tasten drücken greift garnicht

30.03.2007 - 13:37 Uhr

jo, hatt eich auch im internet gefunden das man das private setzen soll. allerdings ruft das mehrere andere fehler herbei, also dachte ich "einen weg machen und andere erscheinen kanns nicht sein"

4-Argument: kann nicht von "Emulator.Form1.MOUSEEVENTF" in "uint" konvertiert werden.

Die beste Übereinstimmung für die überladene Emulator.Form1.KEYBDINPUT.KEYBDINPUT(ushort, ushort, uint, uint, System.IntPtr)-Methode hat einige ungültige Argumente.

Das Feld "Emulator.Form1.INPUT.ki" muss vollständig zugewiesen werden, bevor das Steuerelement den Konstruktor verlässt.

und abwandlungen davon mit anderen betroffenen teilen.

hast du den code eigentlich mal getestet? ^^

30.03.2007 - 13:21 Uhr

ok, ich dachte ich bekomm es noch weg bevor du es liest, weil mir der fehler da aufgefallen ist ^^

Ich bekomme nun einen neuen fehler


public static extern int SendInput(int nInputs, ref INPUT[] pInputs, int cbSize);

Hier sagt er:
Inkonsistenter Zugriff: Parametertyp "ref Emulator.Form1.INPUT[]" ist weniger zugreifbar als Methode "Emulator.Form1.SendInput(int, ref Emulator.Form1.INPUT[], int)"

30.03.2007 - 13:10 Uhr

Original von Borg
Ebenfalls System.Runtime.InteropServices. Müsstest du doch aber schon drin haben!?

ja, sorry, da war ein tippfehle rin deinem code, das D fehlte ^^

jetzt muss ich mal gucken wie ich das alles in mein programm rien bekomme, wegen dem verändertem mauszugriff muss ich ne menge abändern.

Danke erstmal, ich hoffe ich komme jetzt klar 😁

30.03.2007 - 13:03 Uhr

auchnicht, dann erwartet der beim gesammten inhalt ein , statt ;
Und welche using Direktive brauch ich für "FieldOffset"

30.03.2007 - 12:53 Uhr

ok, sieht sauberer aus, aber der spuckt mir aus das er nen anderen typ als UInt32 erwartet bei den beiden hier:


        [Flags()]
        private enum MOUSEEVENTF : UInt32
        {
           //...
        }

        [Flags()]
        private enum KEYEVENTF : UInt32
        {
          //...
        }

30.03.2007 - 11:35 Uhr

Gute frage, da ich einen backgroundworker benutze ist es ohl das was du mit asyncron meinst ^^

also das ganze sieht verkürzt etwa so aus:


//DLL Import für Tastureingabe
[DllImport("user32.dll")]
private static extern void keybd_event(int vk, byte bScan, int dwFlags, int dwExtraInfo);
private const byte KEYUP = 0x0002;

//DLL Import für Mausklicks
[DllImport("User32.dll", SetLastError = true)]
public static extern int SendInput(int nInputs, ref INPUT pInputs, int cbSize);

//Mausclick Events
 internal class MOUSEEVENTF
        {
            public const int MOVE = 0x0001; /* mouse move */
            public const int LEFTDOWN = 0x0002; /* left button down */
            public const int LEFTUP = 0x0004; /* left button up */
            public const int RIGHTDOWN = 0x0008; /* right button down */
            public const int RIGHTUP = 0x0010; /* right button up */
            public const int MIDDLEDOWN = 0x0020; /* middle button down */
            public const int MIDDLEUP = 0x0040; /* middle button up */
            public const int XDOWN = 0x0080; /* x button down */
            public const int XUP = 0x0100; /* x button down */
            public const int WHEEL = 0x0800; /* wheel button rolled */
            public const int VIRTUALDESK = 0x4000; /* map to entire virtual desktop */
            public const int ABSOLUTE = 0x8000; /* absolute move */
        }

        const int INPUT_MOUSE = 0;

        public struct MOUSEINPUT
        {
            public int dx;
            public int dy;
            public int mouseData;
            public int dwFlags;
            public int time;
            public IntPtr dwExtraInfo;
        }

        public struct INPUT
        {
            public uint type;
            public MOUSEINPUT mi;
        }

        private void MausClick(string Ereignis)
        {
            INPUT i = new INPUT();
            i.type = INPUT_MOUSE;
            i.mi.dx = 0;
            i.mi.dy = 0;

            if (Ereignis == "ld")
            {
                i.mi.dwFlags = MOUSEEVENTF.LEFTDOWN;
                SendInput(1, ref i, Marshal.SizeOf(i));
            }
            else if (Ereignis == "lu")
            {
                i.mi.dwFlags = MOUSEEVENTF.LEFTUP;
                SendInput(1, ref i, Marshal.SizeOf(i));
            }
            else if (Ereignis == "rd")
            {
                i.mi.dwFlags = MOUSEEVENTF.RIGHTDOWN;
                SendInput(1, ref i, Marshal.SizeOf(i));
            }
            else if (Ereignis == "ru")
            {
                i.mi.dwFlags = MOUSEEVENTF.RIGHTUP;
                SendInput(1, ref i, Marshal.SizeOf(i));
            }
        }

//Backgroundworker mit versch. Aufgaben
private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
     //Auslösen der Methode mit den Klicks und Tastatureingaben
     EingabeSimulation();
}

//Die Methode mit den Perepherie Eingabe Simultionen
private void EingabeSimulation()
{
      const int KEYEVENTF_EXTENDEDKEY = 0x1;
      const int KEYEVENTF_KEYUP = 0x2;

      keybd_event((int)Keys.ControlKey, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
      MausClick("ld");
      MausClick("lu");
}

30.03.2007 - 11:23 Uhr

Wie mein erstes code beispiel, der tasten event wird nicht ausgelöst 🙁

30.03.2007 - 07:18 Uhr

Der weg bringt dasselbe ergebnis wie mein 2. code. die taste wird nicht gelöst

29.03.2007 - 17:04 Uhr

Hallo,

habe ein seltsames problem, ich möchte einen keyboardevent ausführen, zwischendurch nen mouseevent und dann den keyboardevent auflösen. das alles in einem DX spiel

die kosntanten sind folgendermaßen deklariert:
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;

Das problem was ich nun habe ist folgendes:


 keybd_event((int)Keys.ControlKey, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
MausClick("ld");
MausClick("lu");
keybd_event((int)Keys.ControlKey, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);

Hiermit funktioniert es garnicht. der mausklick wird ausgeführt durch meine methode, aber das drücken der STRG taste wird nicht simuliert


 keybd_event((int)Keys.ControlKey, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
MausClick("ld");
MausClick("lu");

So wird es richtig ausgeführt, allerdings wird das drücken der STRG taste nicht mehr aufgelöst und sie bleibt gedrückt was natürlich nicht gut ist


 keybd_event((int)Keys.ControlKey, 0, 0, 0);
MausClick("ld");
MausClick("lu");
keybd_event((int)Keys.ControlKey, 0, KEYEVENTF_KEYUP, 0);

So wird STRG zwar gedrückt, aber vor dem drücken der maus schon wieder losgelassen. auch nicht gut

Also wie kann ich es hinbekommen das STRG gehalten wird, dann meine mausmethoden ausgeführt werden und anschließend STRG wieder gelöst wird?

04.02.2007 - 12:38 Uhr

Original von Dexter
Wenn du eine Methode in dem betreffenden Thread starten möchtest dann rufe sie einfach ganz normal auf im Thread ohne Invoke oder sonst was.

Dexter

Danke 🙂

immer ich, erstmal testen bevor man von Controls auf methoden schließt 😁

04.02.2007 - 12:03 Uhr

Hallo,

ich stehe grade vor einem denkproblem.

Ich habe einen Backgroundworker der mehrere aktionen ausführt. Ich wollte jetzt etwas implementieren das nur durch die möglichkeit gegeben ist, einzelne codeteile mehrfach aufzurufen.

Um jetzt nicht den ganzen auszuführenden code mehrfach zu kopieren bedient man sich im normalfall ja an methoden.

Jetzt hab eich das problem das wenn ich per invoke eine methode aus einem thread hgeraus starte, diese methode nicht in diesem thread läuft.
Und das möchte ich irgendwie erreichen, aber weiß nicht wie.

Hier mal ein codbeispiel wie ich es hinbekommen würde, aber nur durch das Dublizieren von viel Auzuführendem Code (Sehr umständlich wenn ich hinterher was dran ändern will, da ich es so doppel machen müsste)


 private void backgroundworker_DoWork(object sender, DoWorkEventArgs e)
        {
            do
            {
               if(bedingung1_1 && bedingung1_2)
               {
                     Auszuführender_Code_1;
                }
                else if (!bedingung1_1)
                {
                  Auszuführender_Code_1;
                {

               if(bedingung2_1 && bedingung2_2)
               {
                     Auszuführender_Code_2;
                }
                else if (!bedingung2_1)
                {
                  Auszuführender_Code_2;
                {
            }while(!ende);
       }

Mit einer Methode wäre es wesentlich übersichtlicher. Nur laufen die Methoden halt nicht im gleichen Thread mit nach einem Invoke start.


 private void backgroundworker_DoWork(object sender, DoWorkEventArgs e)
        {
            do
            {
               if(bedingung1_1 && bedingung1_2)
               {
                     Auszuführender_Code_1();
                }
                else if (!bedingung1_1)
                {
                  Auszuführender_Code_1();
                {

               if(bedingung2_1 && bedingung2_2)
               {
                     Auszuführender_Code_2();
                }
                else if (!bedingung2_1)
                {
                     Auszuführender_Code_2();
                {
             }while(!ende);
       }

private void Auszuführender_Code_1()
{
    Auszuführender_Code_1;
}

private void Auszuführender_Code_2()
{
    Auszuführender_Code_2;
}

Also wie bekomme ich diese 2 methoden im Thread gestartet so dass sie auch in diesem thread laufen und der thread eben auch wartet bis die methode durchgelaufen ist?

Ich hoffe ich habe es verständlich rübergebracht und man kann mir helfen 🙂

21.01.2007 - 14:10 Uhr

hm, klingt logisch.

und wie kann man dem treiber bzw directx einentasten befehl reindrücken?

21.01.2007 - 13:55 Uhr

Danke, das funktioniert auch im allgemeinen. nur das spiel nimmt das ebenfalls nicht an.

Das spiel reagiert aber wennich STRG+E auf der tastatur drücke. also irgendwie muss man doch den befehl in das spiel bekommen über mein programm 🙁

21.01.2007 - 11:21 Uhr

Hallo,

ich hatte vor mir mal so auf die schnelle für ein Spiel ne art Automatik zu bauen. Das wollte ich mit einem programm machen das Tastaturkürzel an das Spiel sendet.

Womit ich nicht gerechnet hatte war, dass das Spiel anscheinend untescheiden kann ob ein tastaturkürzel wirklich von der tastatur kommt oder von einem anderen Programm

ich habe z.B. den Befehl

SendKeys.Send("^{"e"}");

welcher ja STRG+E sendet. andere programme auf meinem PC erkennen auch das es gesendet wird. nur halt das Spiel nicht, selbst wenn es den Focus hat, jetzt wollt eich fragen ob es alternativen gibt tastatureingaben zu simulieren, oder ob jemand erfahrung damit hat und nen anderen workaround kennt?

10.01.2007 - 15:23 Uhr

Bisher nichts bestimmtes, aber wäre es nicht dochhilfreich für programme mit hoher auslastung um das arbeiten mit diesen zu beschleunigen auch wenn ein systembeanspruchender thread mit läuft?

Ausserdem regelt windows das nicht unbedingt so wei man es haben will. bei XP hab ich ne auslastung von 50% und core2 wird fast nicht beansprucht. bei Vista ist es so geregelt das ich ne gesammt auslastung von ca 60-70% erreiche.

10.01.2007 - 14:27 Uhr

Original von svenson
In der c't gab es vor kurzem eine Reihe zur Programmierung von Multi-Cores. Allerdings erfolgt natürlich die Zuorndung automatisch, in abhängig von der Zahl der Cores. Geht bisher aber nur mit C++-Compilern.

In Windows kannst du allerdings ganze Anwendungen (Prozesse) fest einem Core zuordnen.

Die "Zugehörigkeit" in windows ist mir klar, geht abe rnur fürs ganze programm. Aber gerade weil sowas geht dachte ich mir das muss doch auch priogramiertechnisch mit threads zu lösen sein

10.01.2007 - 14:11 Uhr

Hallo,

ist es möglich einem thread zu sagen "Du läufst jetzt nur auf Kern 1" in einem DualCore system?

bishe rhab ich es nur hinbekommen die einzelnen kern auslastungen abzufragen, aber ich habe keinen anhaltspunkt gefunden wie man threads den kernen zuordnen kann.

17.10.2006 - 19:40 Uhr

Jo, super so gehts. dann war TextboxKeydown aber auch der falsche event, denn da gehts nicht mit handled

Danke 🙂

17.10.2006 - 19:17 Uhr

Nur will ichja keinen button dafür benutzen sondern die Enter taste.

und falls es doch was mit der Enter taste zu tun hat mit dem AcceptButton, dann weiß ich nicht wie es damit gehen soll

17.10.2006 - 19:04 Uhr

jo stimmt, liegt nicht daran, ne leere form, ne textbox erstellen, focus drauf (also reinklicken) und wenn ich dann enter drücke machts "ping".

wie umgeht man das denn?

17.10.2006 - 18:51 Uhr

Ich habe da ein dummes kleines problem und weiß nicht wie ich es umgehenkann.
Ich habe folgenden event

private void tbx_senden_KeyDown(object sender, KeyEventArgs e)
        {            
            if (e.KeyCode == Keys.Enter)
            {
                Senden();
            }
        }

funktioniert auch prima, allerdings gibt Windows beim drücken von Enter sein Standard warnsignal ping von sich.

Kann man das irgednwie regeln das dieser nciht kommt dabei?

13.10.2006 - 17:21 Uhr

ServerThread.Start();
ClientThread.Start();

versuchs mal damit 😉

22.06.2006 - 21:00 Uhr

Ich bezweifle dass jemand vor dem selben problem stehen wird, aber ok ^^

die antwort war soo simpel das es wieder peinlich ist, einfach statt "cs.Write" in meinem kleinen test byte anhängsel direkt die fsOut anzapfen, also:


//TEST Header anhängen
            byte[] header = new byte[5];
            header[0] = 0x20;
            header[1] = 0x20;
            header[2] = 0x20;
            header[3] = 0x20;
            header[4] = 0x20;
            fsOut.Write(header, 0, header.Length);

udn nu mach ich mich daran beim decrypten das wieder zu entfernen, vieleicht meld ich mich wieder xD

22.06.2006 - 19:55 Uhr

Hallo, blöder titel aber mir fiel nichts besseres ein.

also mein problem, ich hab hier einen dateicrypter, der arbeitet auch seoweit, abe rich will jetzt einen datei header in die finale datei anhängen, nur irgendwie gelingt es mir nur den header in die encryptete zu hängen, also ich veränder die original datei, bzw ich kann ohne die datei zu decrypten den header nicht lesen, das bringt ja nichts.

Ich habe jetzt schon mit diversen stream's rumgetestet aber der richtige war wohl nicht dabei ode rich habe was falsch gemacht

hier erstmal der code vom crpter


// Dateistreams öffnen
            FileStream fsIn = new FileStream(fileIn, FileMode.Open, FileAccess.Read);
            FileStream fsOut = new FileStream(fileOut, FileMode.CreateNew, FileAccess.Write);
          
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] {0x49, 0x76, 0x61, 0x8f, 0x12, 0x4d, 0x63, 0x54, 0x43, 0x25, 0x28, 0x29, 0x76});

            Rijndael alg = Rijndael.Create();
            alg.Key = pdb.GetBytes(32);
            alg.IV = pdb.GetBytes(16);
            
            CryptoStream cs = new CryptoStream(fsOut, alg.CreateEncryptor(), CryptoStreamMode.Write);
          
            int bufferLen = 4096;
            byte[] buffer = new byte[bufferLen];
            int bytesRead;

            do
            {                
                bytesRead = fsIn.Read(buffer, 0, bufferLen);
                
                cs.Write(buffer, 0, bytesRead);

            } while (bytesRead != 0);

            cs.Close();
            fsIn.Close();

zum testen des heades habe ich mir mal folgendes gemacht


//TEST Header anhängen
            byte[] header = new byte[5];
            header[0] = 0x20;
            header[1] = 0x20;
            header[2] = 0x20;
            header[3] = 0x20;
            header[4] = 0x20;
            cs.Write(header, 0, header.Length);

damit kann ich allerdings den header nur hinten oder vorne an die quelldatei hängen, nicht an die datei die geschrieben wird.

Ist wohl mehr ein logik problem und ich weiß auch nciht was es da gibt um den fertigen "cs.write" abzufangen und dann erst etwas auf die platte zu schreiben.

hat jemand schnell nen tipp? ^^

20.06.2006 - 19:31 Uhr

ne, nachdem ich die resourcen ausgetauscht habe mit den mono keine einzige mehr ausser diese

20.06.2006 - 17:56 Uhr

k, habs getan udn nun meckert der

"Datei obj\debug\MeinMonoprog.exe kann nicht in \bin\debug\MeinMonoprog.exe kopiert werden. Die Datei obj\debug\MeinMonoprog.exe konnte nicht gefunden werden"

Ist ne inteligente meldung, die ist auch nicht da, wie auch wenn ich kein projekt erstellen kann xD

20.06.2006 - 15:00 Uhr

und wie macht man dann auf die schnelle aus einem VS projekt ein mono projekt?

in SharpDev kann ich ja in den optionen einstellen womit es erstelllt werden soll, wobei ich auch sagen muss das ich nur mono 1.1x habe, mono 2.0 hab ich nirgens gefunden obwohl im netz steht es wäre zu haben

20.06.2006 - 14:50 Uhr

jo isses selbe, ich wollte damit auch nur ausdrücken das ich ein VS projekt darin geöffnet habe ^^

19.06.2006 - 23:03 Uhr

Versuche auf bitten von linux usern mich auch gerade daran in SharpDev2 etwa sin mono zu kompilieren, hab ein VS projekt dort importiert ud dann in den projekt eigenschaften ausgewählt es in mono zu kompilieren, raus kahm dabei ne ellen lange liste mit diese fehlern

"The predefined type 'System.<platzhalter>' is not defined or imported"

naja, um zu diesem fehler zu gelangen musst eich erstmal die .designer dateien entfernen und den code wieder in die cs datei stecken, den da hing sharpdev sich daran auf das die klassennamen 2mal vorhanden sind -.-

17.06.2006 - 19:18 Uhr

Ok, ich hab jetzt nen weg gefunden, auch nicht wie gewünscht direkt mit VS (Das mitgelieferte ResourceCompiler kann man vergessen)

SiComponents Resource Builder - der macht einem ne resourcen datei die dann soweit alles in sich beherbergen kann um auch von windows drauf zugreifen zu können (aber leider kein audio....)

17.06.2006 - 10:53 Uhr

Ich will nicht das icon der exe ändern. ich möchte mehrere icons in die exe als resource einbauen um einen neuen dateitypen den ich dem programm zuweisen will dieses andere icon zuweisen zu können.

Als beispiel an einer date die wohl jeder hier hat "explorer.exe" erstellt eine verknüpfung von einer xbeliebigen datei auf dem systen, macht nen rechtsklick-eigenschaften drauf und dann wähle "Anderes Symbol" nun wähle die "explorer.exe" aus und man siehe, es werden einem mehrere icons zu auswahl gestellt die diese exe besitzt.

Und genau das will ich auch

17.06.2006 - 00:56 Uhr

jo, hab ich versucht, aber es ist nicht auswählbar in der exe . die icons werden aufjedenfall eingebunden, das merkt man an der dateigröße ^^
wenn ich aber z.B. mit einer verknüpfung das icon wählen will, dann wird nur das haupt icon der anwendung da zur auswahl gestellt, egal wieviele resourcen icons ich einbinde.

also da muss es irgendwie nen kniff geben das es auch in windows zur verfügung steht.

Also zur verdeutlichung, hier sollen die eingebundenen icons erscheinen

17.06.2006 - 00:49 Uhr

([EDIT]Abgetrennt von Mehrere Icons bei EXE Datei[/EDIT]){orange}

Hat vieleicht noch jemand einen tipp wie man das mit VS hinbekommen kann die icons so einzubinden das sie in der exe stecken? das reshacker ist irgendwie keine gute lösung da man das nach jedem build neu machen muss

15.06.2006 - 11:37 Uhr

thx, habs schon hinbekommen, ka obs der elegente weg ist aber es funktioniert wie ich es mir vorstelle

Zuerst das hier deklariert


public System.Threading.Thread EncryptThread;

Dann im Button event handler


EncryptThread = new System.Threading.Thread(new System.Threading.ThreadStart(this.EncryptStartThread));
EncryptThread.Start();

und das was ich vorher im button event handler hatte hab ich in ne extra methode gesteckt die ich EncryptStartThread genannt habe.

14.06.2006 - 19:00 Uhr

jo, hab ich mir ja schon gedacht, abe rich habe nichts gefunden das mir zeigt wie man neue threads von was erstellt ^^

in der msdn gibts member, schnittstellen usw. aber auch ncihst das sich mir als praktisch anwendbar darstellen würde

14.06.2006 - 17:42 Uhr

Hallo,

hab ein kleines problem.

hab ein encrypt tool geschrieben das seine aufgabe auch wunderbar erfüllt.

was mich aber stört ist das während das programm seine arbeit verrichtet sich die form aufhängt, nur solange bis der vorgang erledigt ist.

jetzt dachte ich mir so schlau wie ich bin ich mach ne 2. form mit einer animiertengif als kennzeichnung das das programm arbeitet; Aber was passiert, die 2. form hängt auch solange das programm ackert.

Hab hie rim forum schonmal geguckt nach tipps über seperates thread starten, aber war nichts dabei das ich irgendwie hätte anwenden können, bzw das scheint nicht der richtige weg zu sein das form hängen zu beheben.

weis jemand rat?

13.02.2006 - 21:07 Uhr

Trim() macht nru leerstellen weg, geht leider nciht

13.02.2006 - 20:47 Uhr

Thx, war tatsächlich ein \n drin (string wird als SelectetItem aus ner Listbox gelesen), jetzt muss ich mal gucken wie ich das da weg bekomme 🙂

13.02.2006 - 20:33 Uhr

Der titel ist vieleicht dumm ausgedrückt, aber ich erklärs mal genauer 🙂

ich habe 2 strings die erzeugt werden, lasse ich diese in einem label, textbox etc ausgeben sehen sie genau gleich aus, vergleiche ich aber diese strings auf gelichheit kommt false raus, also ist da irgend etwas das sie unterscheidet, was ich aber nicht sehen kann.
Ich vermute mal da ist noch irgendein steuerzeichen mit drin \n oder was weiß ich kann man das irgendwie einsehen, also sichtbar machen falls da wirkich sowas im string ist?

hoffe ich habs verständlich ausgedrückt ^^