Laden...

Forenbeiträge von sarabande Ingesamt 230 Beiträge

31.01.2009 - 13:46 Uhr

Ihr scheint das Thema ja auf die leichte Schulter zu nehmen.

Hi! Ja, weil ein Programmierer, der seine handwerklichen Defizite mit fremden Quellcode überbrücken muß, nicht am Markt bestehen wird. Der ist ganz schnell wieder wech. 😃

Ich muß schnell und flexibel auf die Wünsche des Kunden reagieren können. Muß ich mich dafür durch fremden Code wühlen, habe ich bereits verloren und meine Berufung verfehlt.

Ich bin jetzt mal ganz frech und stelle folgende Hypothese auf: Ein Programmierer, der sein geistiges Eigentum durch einen Obfuskator zu schützen versucht ist ängstlicher, als ein Programmierer der es nicht tut. 😃

Grüsse - sarabande

24.01.2009 - 19:58 Uhr

Wie meinst du das genau ?

Hi! Die Mogre.dll ist der Wrapper für Ogre. Wenn das Pendant von Vector3 vec = new Vector3(); in C# auch bei C++ zum Absturz führt, liegt der Hund woanders begraben. 😃 Grüsse - sarabande

24.01.2009 - 18:41 Uhr

also hängts definitiv mit der Mogre Assembly zusammen ... nur was tun %/

Hi! Ich würde mit C++ überprüfen, ob die Engine funktioniert. Grüsse - sarabande

24.01.2009 - 12:38 Uhr

Hatte neue Hardware bekommen (MB, CPU, RAM) und nach dem Umbau gabs haufen Treiberprobleme im System, so das ich irgendwann gefrustet alles neu gemacht hab.

Hi! Wie sieht die Ereignisanzeige in Vista aus? Ist die blitze Blank (nur Information Icons) oder wimmelt es da von gelben (Warning) und roten (Fehler) Icons? Grüsse - sarabande

23.01.2009 - 21:58 Uhr

klar, aber vor dem neuaufsetzen des systems gings aber problem los...

Hi! Warum war das notwendig? Grüsse - sarabande

23.01.2009 - 20:05 Uhr

Die View.dll ist eine Klassenbibliothek die ich selbst geschrieben habe und die die 3D Darstellung mithilfe von Mogre (.NET Wrapper für Ogre3D) übernimmt.

Hi! Die CF-Fraktion hat öfters mit Type Load Exception zu tuen, weil sie Grafikfunktionen implementieren, die die Hardware nicht leisten kann. Grüsse - sarabande

21.01.2009 - 17:22 Uhr

Um kein halbes Control zu liefern hat man sich kurzerhand entschlossen die Entwicklung hierfür gänzlich einzustellen.

Hi! So spricht ein Monopolist oder Marktführer, der den Mitbewerber nicht zu fürchten braucht. 😃

Die Source dieser Bibliotheken und des Viewers bekomme/habe ich zwar aber zusätzlich zu C# jetzt auch noch C++, ist mir zuviel.

Wo kann man sich den Viewer mal runterladen oder brauche ich eine Lizenz?

Ich bekam den Hinweis die Ereignisse des Forms einzufangen.

Die Controls des FW haben einen Messagekeller (WndProc). Von dort werden die einzelnen Nachrichten an die Ereignisse, wie MouseDown, Click etc weitergereicht. Deine ActiveX Komponente hat sowas nicht. Laut Doku kann man das nachträglich implementieren.

MSDN: Subclassing Controls with a Managed Window Procedure]
http://msdn.microsoft.com/en-us/library/ms229681.aspx

[MSDN: How to: Use a Class for Hooking Windows Procedures]
http://msdn.microsoft.com/en-us/library/ms229658.aspx

Grüsse - sarabande

21.01.2009 - 00:10 Uhr

das ist mal ne ordentliche zeitspanne zwischen deinem und meinem system.

Hi! Und die Gründe können vielfältig sein. OS, FW etc. Einen habe ich im Netz gefunden, der sich auch darüber beschwert hat, aber ein Lösungansatz war leider nicht dabei.

http://www.eggheadcafe.com/software/aspnet/32479326/checksignature-slow.aspx

Grüsse - sarabande

20.01.2009 - 23:59 Uhr

Mein Rechner ist ein Notebook mit Intel Core 2 T7200 @ 2 Ghz mit 2 Gb ram und Windows Vista. Müsste eigentlich ausreichen.

Hi! Ich habe einen Core2Duo und XP.

Kannste ne Stopwatch drum packen und mir sagen was die zurückgibt?

20 Millisekunden. Grüsse - sarabande

20.01.2009 - 23:28 Uhr

Ich verwende meine Taskleiste zweizeilig und "Immer im Vordergrund", daher ist es über keiner anderen Form, sondern nur über dem ungenutzen Teil der Taskleiste.

Hi! Wenn Taskleiste auf "immer im Vordergrund steht", kann es natürlich nicht funktionieren. Mein Code funktioniert nur, wenn Du diese Option unter Eigenschaften der Taskleiste entfernst. Jede Message, die den Fordergrund erzwingt, wird bei dieser Einstellung der Taskleiste vom OS verworfen. Das gilt auch für Lösungen mittels Hook, Timer oder MessageKeller überwachen.
Wie sieht eine zweizeilige Taskleiste aus? Ich kriege das hier mit XP nicht hin 😦 Grüsse - sarabande

20.01.2009 - 22:56 Uhr

Leider ist das AM Entscheidenen Code Abschnitt (beim prüfen der signatur) sau langsam. Das dauert zwischen 4 und 10! Sekunden.

Hi! Du meinst bei signedXml.ComputeSignature();?

Gut mein Rechner ist jetzt nicht der beste aber sollte das nicht im millisekunden bereich liegen?

Nur bei signedXml.ComputeSignature(); dauert es ein Augenzwinkern, aber keine 4-10 Sekunden. Ich bin den Code im Debugger Einzelschritt durchgegangen. Im Releasemodus ist überhaupt kein Stocken zu spüren. Was hast Du für einen Rechner? Wie alt ist die Kiste? Grüsse - sarabande

20.01.2009 - 22:24 Uhr

Ich habe die dll mal dekompiliert und im VS geöffnet.

Hi! Warum machst Du Dir soviel Arbeit? Wie Jack schon geschrieben hat, ist das mit dem Reflector eine Sache von ein paar Minuten. Die Events sind wie im VS mit einem gelben Blitzzeichen gekennzeichnet. Die ActiveX-Komponenten sind nicht an die Klassen,- und Vererbungshierachie des Frameworks gebunden. Die gehören zu COM (Component Object Model). MouseDown, Click u.s.w. ist i. d. R. ein Präfix (Kürzel der ActiveX-Komponente) vorangestellt (Z. Bsp.: ODAMouseDown) Grüsse - sarabande

20.01.2009 - 22:09 Uhr

Das Problem bei setzen von TopMost in einem Event oder per Timer ist, dass die Form dann über allen anderen Anwendungen liegen würde und nicht nur über der Taskleiste.

HI! Ne, ne - ein Applauncher sollte auch nicht von anderen Anwendungen verdeckt werden. 😃 Wenn ich erst eine Anwendung verschieben muß, um an den Applauncher zu kommen, kann ich gleich auf das Icon der Verknüfung in der Taskleiste klicken(OS-Einstellung der Taskleiste: "Immer im Vordergrund"). Das geht schneller. 😃 Grüsse - sarabande

20.01.2009 - 20:50 Uhr

Ich hätte gerne, dass meine Form immer vor der Taskleiste verharrt.

HI Man muß TopMost im richtigen Event plazieren. Grüsse sarabande


        private void Form1_Deactivate(object sender, EventArgs e)
        {
            this.TopMost = true;
        }

18.12.2008 - 21:05 Uhr

Hi! Der erste Gefühl ist meistens das Richtige! 😃 Grüsse - sarabande
Position einer Datei auf Desktop ermitteln und verschieben

09.12.2008 - 19:58 Uhr

Hi! Die Remarks in der MSDN zu EnumDisplayDevices sind von fundamenteller Bedeutung! 😉 HTH - sarabande

08.12.2008 - 17:26 Uhr

Hi! AFAIK geht das nicht direkt mit C#. Die entsprechende API-Funktion mit der man es realisieren kann, heißt: EnumDisplayDevices. HTH - sarabande

05.12.2008 - 18:47 Uhr

Gibt es irgend einen Trick, um das System dazu zu überreden, freundlicherweise die überschriebene Routine zu benutzen?

Hi! Den nachfolgenden Einzeiler in den Konstruktor Deiner RichtextBox Klasse einbauen. HTH - sarabande


SetStyle(ControlStyles.UserPaint, true);

19.09.2008 - 18:53 Uhr

Hi! SCardGetProviderId ist ein Zugriff auf die Smart Card Database. Den Zugriff muß man anmelden. Laut Doku geht das mit der SCardEstablishContext Function.
http://msdn.microsoft.com/en-us/library/aa379479(VS.85).aspx


SCARDCONTEXT    hContext;
GUID    guidProv;
SCardEstablishContext(SCARD_SCOPE_USER,  NULL, NULL, &hContext);
SCardGetProviderId(hContext, L"MyCardName", &guidProv);

Grüsse - sarabande

//EDIT: Der Context muß am Ende wieder freigegeben werden: SCardReleaseContext(hContext);

18.09.2008 - 22:41 Uhr

Hi! Eigentlich sollte sich jeder PDA über den Smartcard ATR String identifizieren lassen. Hast Du schon die KernelIOControl function getestet.

MSDN: Smart Card Resource Manager API

Grüsse - sarabande

18.09.2008 - 21:11 Uhr

kann man einen hardlink auch für ein verzeichnis installieren?
wenn ja, wie?

Hi! Laut MSDN nur auf files und nicht auf directories!

MSDN: CreateHardLink Function

Grüsse - sarabande

18.09.2008 - 20:50 Uhr

Hi! Zitat aus der MSDN: If you want to view the 64-bit registry hive in 32-bit code you must open HKLM\Software using KEY_WOW64_64KEY.

MSDN: 32-bit and 64-bit Application Data in the Registry

MSDN: Accessing an Alternate Registry View

Grüsse - sarabande

19.08.2008 - 23:29 Uhr

Hi! Ich würde einfach ganz frech an MS einen Bug Report schicken und/oder Petzhold (der hat doch sicher ne HP) mal freundlich anfragen. Vielleicht hat er noch ne Idee. Wenn Du den Code mit dem FW 1.1 baust läuft er. Habe ich gerade getestet. IMHO sollte er aber auch noch ein paar FW-Versionen später laufen, ohne das Rad erneut zu erfinden. Woran es tatsächlich liegt, weiß ich nicht und mit Reflector kommt man nicht weit, weil nach ein paar Klicks ist Ende. PrinterHelper habe ich im Debugger kontrolliert. Und ist bei mir null. Aber das heißt nichts, weil man mangels Quellcode der GDIPlus.dll, die macht ja die Hauptarbeit, nichts sagen kann. HTH - sarabande

18.08.2008 - 21:32 Uhr

Ich habe den Reflector gestartet und die Eigenschaft mal angeschaut.
Kann aber mit dem nicht viel angangen. Gibt einfach ein RectangleF zurück.

Die Eigenschaft VisibleClipBounds der System.Drawing.DLL aus dem FW 1.1 sieht anders aus. 😉 Dort wird nicht auf PrintingHelper != null geprüft, bzw. der erste if Zweig fehlt komplett.

31.07.2008 - 19:30 Uhr

Hi! Hast Du das Microsoft Windows SDK auf Deiner Platte? Wenn ja - im Verzeichnis .\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\WMP_11\dotNet\csharp gibt es ein Beispiel zu AxWindowsMediaPlayer. Ich habe es kurz überflogen und ein ErrorMessageHandler ist implementiert. Ob er was taugt überlasse ich Deiner Prüfung! 🙂 - sarabande

01.07.2008 - 22:46 Uhr

wie kann ich den LPCWSTR* (also Pointer auf einen Pointer) in C# marshallen?

[MSDN: Platform Invoke Data Types]
http://msdn.microsoft.com/en-us/library/ac7ay120.aspx

01.07.2008 - 21:31 Uhr

ok dann will ich das mal so hinnehmen, aber weiß jemand dann vielleicht, WIE ich am besten eine komplette webseite in ein bild rendern könnte?

Hi! Vielleiccht hilft dir nachfolgender Link:

[Codeproject: Image Capture Whole Web Page using C#]
http://www.codeproject.com/KB/graphics/IECapture.aspx

  • sarabande
01.07.2008 - 21:02 Uhr

ich muß leider zugeben, dass ich den code im netz gefunden habe und nicht wirklich en detail weiß, was da genau passiert.

Hi! Dafür wird man i. d. R. bestraft! 🙂 In der Doku zu DrawToBitmap steht: "This API supports the .NET Framework infrastructure and is not intended to be used directly from your code." - sarabande

29.06.2008 - 17:14 Uhr

Ist das auch mit C# möglich? Wie funktioniert das Programm und wie kann ich das in C# verwirklichen?

Hi! Sollte mit C# über den Umweg PInvoke/DllImport machbar sein. Der einfachste Weg ist: Du fragst die Entwickler mit welchen Funktionen, die das ACPI/APM angesprochen haben. Wenn Du hier oder von denen keine Antwort kriegst, kannst Du alle Funktionen, die das Programm benutzt aus der Exe auslesen. Die stehen schön aufgelistet am Ende der Exe. Es gibt sicherlich auch schon fertige Tools, die das für Dich erledigen können. Der Rest ist Fleißarbeit 🙂 - sarabande

//Edit : Hab noch was gefunden!
[MSDN: Power Management Functions]
http://msdn.microsoft.com/en-us/library/aa373163.aspx

26.06.2008 - 23:14 Uhr

Hi! Man könnte die Seite auch mit AxSHDocVw.AxWebBrowser.Navigate2 anfordern. Hier sollte die Konvertierung eigentlich keine Probleme machen. Das sähe ungefähr so aus:


AxSHDocVw.AxWebBrowser browser = new AxSHDocVw.AxWebBrowser();
browser.Navigate2("www.microsoft.com", ref missing, ref missing, ref missing, ref missing);
mshtml.IHTMLDocument2 htmlDocument = (mshtml.IHTMLDocument2)browser.Document;

20.06.2008 - 20:21 Uhr

Ich bin aber dennoch daran interessiert mich in das Thema einzuarbeiten.

[Microsoft: Windows Driver Kit and Developer Tools]
http://www.microsoft.com/whdc/devtools/wdk/default.mspx

19.06.2008 - 19:49 Uhr

Zu meinen oben genannten vorstellungen: Man könnte ja auch auf Basis des Mainboards eine Registrierung vornehmen. Dies wird für gewöhnlich nicht so oft ausgetauscht.

Hi! Es gibt keinen wirklichen Schutz des geistigen Eigentums in der Programmiererei! Aber die meisten Menschen sind ehrlich und werden den Preis für Deine Software zahlen. Kannst Du einen zeitnahen Support leisten und mit innovativen Ideen Deine Kunden an Dein Produkt binden, wirst Du am Markt bestehen. Ausgetüftelte Verschlüsselungsmechanismen sind reine Zeitverschwendung. Ein einfacher Key ist vollkommen ausreichend. - sarabande

08.06.2008 - 01:00 Uhr

Aber Everest kann doch auch seine Sensordaten in einer eignen tabelle speichern, also muss es doch irgendwie gehen.

Hi! Der hat einen eigenen Treiber: Lavalys EVEREST Kernel Driver. Und Treiber ungleich WMI - sarabande

08.06.2008 - 00:35 Uhr

Wie kann ich eine eigene Tabelle in WMI schreiben und mit Inhalt füllen?

Hi! Geht es vielleicht ein bissel ausführlicher in der Beschreibung dessen, was Du machen möchtest? 😦 Oder einfach die Suchfunktion mit "WMI" füttern 🙂 WMI ist im weitesten Sinne eine Schnittstelle und an einen Industriestandard (CIM) gebunden, der es dem Benutzer/Admistrator erleichtern soll, hardwarerelevante Informationen eines PCs auszulesen. Du kannst also WMInformationen abfragen und in Deiner eigenen Tabelle zusammenstellen, aber nicht eigene Informationen als Tabelle in WMI hinterlegen. - sarabande

03.06.2008 - 17:27 Uhr

Seit ihr auch Programmiersüchtig?

Hi! Heute nicht mehr, da ich nicht mehr als Programmierer arbeite. Ich bin einfach zu alt für den positiven Stress. 🙂 - sarabande.

03.06.2008 - 14:44 Uhr

Diese hat mir sehr geholfen, dein Vorschlag funktioniert prima.

Hi! Wo ist der Code? Eine Community funktioniert nach dem Prinzip - Geben und Nehmen. 🙂 Bis jetzt hast Du nur reichlich genommen! 🙂 - sarabande

03.06.2008 - 14:36 Uhr

Ich könnte natürlich deine Methode anders umsetzen, jedoch finde ich dies sehr aufwendig.

Hi! Wenn Du die Ideen der Helfenden nicht aufgreifst, ist eine Lösung des Problems nicht möglich. 😦

Zusätzlich würde ich gerne wissen, wo denn bei meiner Methode der Haken an der Sache ist. Weil rein logisch gesehen müsste das doch hinhauen, oder nicht?

Ob Deine Logik stimmt, kannst Du mit Hilfe des Debuggers verifizieren.

Jedoch gehet bei mir eine Textausgabe übermehrere Zeilen. Wieviele Zeilen genau, kann vorher nicht bestimmt werden, es ist also variabel.

Du wirst doch irgendeinen Indikator für den Wechsel der Farbe in Deinem Pflichtenheft stehen haben? 🙂 - sarabande

03.06.2008 - 00:04 Uhr

Wieviele müssen denn dort eigentlich rein ???

Hi! 18, wenn ich mich nicht verzählt habe 🙂 Einfach diese Forumsdatenbank mit "PrintOut" füttern und alle Deine Fragen werden automatisch beantwortet 🙂 - sarabande

02.06.2008 - 23:22 Uhr

danke das reicht mir, ich hab ein Fenster.

Gerne! Ich habe noch was bei MSDN gefunden. Wenn es funktioniert, finde ich die Lösung eleganter bzw. professioneller. WndProc anzapfen ist eine Notlösung 🙂 - sarabande

MSDN: UserPreferenceChangingEventHandler Delegate + Codebeispiel

02.06.2008 - 21:45 Uhr

Hi! Mir ist kein Event bekannt! 😦 Man könnte im Message Keller auf WM_DISPLAYCHANGE reagieren.
MSDN: "The WM_DISPLAYCHANGE message is sent to all windows when the display resolution has changed. A window receives this message through its WindowProc function." - sarabande

23.05.2008 - 22:17 Uhr

Oder kann man C++ auch in C# projekte einbinden?

Hi! Nö, Du mußt Dich schon für eine Sprache entscheiden. 🙂 Du kannst die CP Source in eine C++ DLL packen und bindest die DLL in Dein Programm ein. SMART starten. Die Smart Werte in einem Array ablegen und an Dein C# Programm zurückgeben. Feddich! - sarabande

23.05.2008 - 14:50 Uhr

Und damit kann ich auch die Temparatur einer HDD auslesen?

Hi! Nach Aussagen des Autors des CP-Artikels soll es möglich sein. - sarabande

[CP: Hard drive information using S.M.A.R.T.]
http://www.codeproject.com/KB/winsdk/Hard_drive_Information.aspx

23.04.2008 - 12:36 Uhr

Ich will z.B. nur die Größe (!) einer Datei auslesen, und zwar auch, wenn die Datei von einem anderen Programm geöffnet ist, wie hier Microsoft Word.

Hi! Um die Dateigröße auszulesen, reicht ein FileInfo.Length. Das funktioniert, weil die Datei nicht physikalisch geöffnet wird. Es wird nur ein Fileattribute ausgelesen. In diesem Fall die Anzahl der Bytes. Man kann auch exclusive Dateirechte verbiegen, aber das ist sehr böse und damit hier offtopic. Abgesehen davon hat man nie den aktuellen Datenbestand einer laufenden Anwendung erfasst, wenn man die Datei auf der Platte ausliest, solange nicht der Speichernbutton gedrückt wurde. Arbeitet Word immer noch mit temporären Dateien? HTH - sarabande

22.04.2008 - 20:46 Uhr

Jedoch wird dann der Pfad "hart" gespeichert und die dll muss neben der Datei oder im System32 Ordner liegen.
Das will ich ja eben nicht.

Hi! Warum willst Du das nicht? Wenn Du es unbedingt so machen willst, mußt Du die Win32 SAPI DLL nehmen. Das wäre aber so ähnlich, als ob Du Dein Auto schiebst, anstatt es zu fahren. 🙂 HTH -Sarabande

24.02.2008 - 20:10 Uhr

Hi! 4 Parameter von Deinem struct DHCPAPI_PARAMS: Den hast Du mit Byte deklariert. Laut MSDN ist es aber ein Pointer (LPBYTE), der auf die Daten zeigt. HTH - sarabande

21.02.2008 - 17:48 Uhr

Hi! Wie heißt der Editor? Hast Du mit Spy++ oder ähnlichen Tools kontrolliert, ob Du mit FindWindow das richtige Handle erwischt hast? Wenn es ein Java Editor ist, kannst Du über das Java Native Interface (das ist eine DLL - Google hilft) den Editor ansprechen. Da es sich um prozessübergreifende Eingriffe handelt, kann es funktionieren - müssen tut es nicht. HTH - sarabande

20.02.2008 - 22:15 Uhr

Hi! Mit WMI kann man keine S.M.A.R.T Werte einer HDD auslesen. Was Du suchst ist die API-Funktion: DeviceIoControl. Source findest Du auf CodeProject - sarabande

07.02.2008 - 22:45 Uhr

Hi! Im Microsoft Windows SDK 6.0 und 6.1 gibt es ein Beispiel zu Deiner Problemstellung. Es liegt bei mir im
Verzeichnis: .\Samples\Multimedia\WMP_11\dotnet\csharp
Die kritische Überprüfung überlasse ich Dir! 🙂 Eine Progressbar ist implementiert und ein Opendialog, der eine Auswahlliste der verfügbaren Mediadateien anzeigt. HTH - sarabande

05.02.2008 - 22:19 Uhr

Hi! Du hast was was wichtiges zu TransactNamedPipe in der Doku überlesen:
Zitat: "If lpOverlapped is NULL, lpBytesRead cannot be NULL. If lpOverlapped is not NULL, lpBytesRead can be NULL." HTH - sarabande

29.01.2008 - 12:46 Uhr

Hi! Sinnvoll wäre ein Upload der C++ Quelltexte. Bei Deinem gepsoteten Auszug aus dem Quelltext, kann ich nur raten, was, was ist, bzw. welche Technik verwendet wird. sarabande