Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von DaSchroeter
Thema: [gelöst] Meine Form verliert den Focus --> Diesen wieder zuweisen
Am im Forum: GUI: Windows-Forms

Ich glaube 100%ig sicher geht das (nahezu) gar nicht.
Du könntest einen Timer hernehmen und regelmäßig prüfen, ob das Foreground Window
auch deins ist:
GetForegroundWindow
SetForegroundWindow

Thema: Programm weleches HTML "eingebettet" plaziert werden kann
Am im Forum: GUI: Windows-Forms

Dazu geht im Prinzip auch ActiveX, ABER: IE only!

Thema: Office AddIn und Uninstall
Am im Forum: Office-Technologien

Moinsen!

Also ich hab im Prinzip nur die benötigten Registry Einträge erstellt.
Das AddIn selbst ist am Einfachsten mit dem VS 2005er Wizard zu erstellen.
'Shared AddIn' brauchst Du.

Dann hab ich das Installer-Projekt weggeworfen.
(Da könntest Du vorher nochmal reinschauen, welche Registry Einträge Du machen musst.)

Der Wizard erstellt Dir eine Klasse Connect (Connect.cs), die schon alle benötigten
Interfaces implementiert.
Dann hab ich aus den Referenzen einfach alles rausgeworfen, was mit Office zu tun hat.
Auch die Core!

Dann musst Du dich durch die MSDN wühlen und nachsehen, welche Eigenschaften und Methoden Du wie per Reflection zuweisen/aufrufen musst

Das war's eigentlich schon
Ach ja: Hilfreich ist es, einige Ausgaben per Debug.WriteLine(...) zu erzeugen.
Dann siehst Du genau, ob Dein AddIn fehlerhaften Code enhtält oder ob es magels z.B. Registrierung gar nicht erst geladen wird.

Und Debuggen geht eigentlich auch ganz einfach:
In den Projektoptionen einfach Word/Excel als 'zu startende Anwendung' angeben.

greetz
DaSchroeter

Thema: DLLImport mit Zeiger als Parameter
Am im Forum: Rund um die Programmierung

2 Tips hab ich noch, dann ist auch bei mir empty:

1. Nimm das unsafe raus.
2. Schau mal nach, ob UINT32 auch wirklich ein unsigned integer 32Bit ist. Ich hab da schon die dollsten Sachen erlebt

Thema: Office AddIn und Uninstall
Am im Forum: Office-Technologien

Mistsch****!
Genau sowas hab ich mir gedacht.

Werd dann wohl mal weitersuchen, ob es da einen praktikablen Workaround gibt

thnx
DaSchroeter

Thema: DLLImport mit Zeiger als Parameter
Am im Forum: Rund um die Programmierung

nimm statt OUT mal REF

Thema: Office AddIn und Uninstall
Am im Forum: Office-Technologien

Moin!

Ich verwende eher das hier um den Button hinzuzufügen.
http://msdn2.microsoft.com/de-de/library/microsoft.office.core.commandbarcontrols.add(VS.80).aspx

Das würde bei mir einem solchen Aufruf entsprechen:
CommandBarButton btn = Commandbars["Standard"].Controls.Add(...,true);

true bezieht sich hier auf Temporary. Ich setzte momentan sogar noch
btn.Temporary = true;
aber das bringt alles nichts.

Genauer: Excel/Word 2007 läuft, Excel 2003 läuft, Word 2003 lässt den Button drin

Noch ne Idee, oder schonmal was davon gehört?

thnx
DaSchroeter

Thema: Programm mit eigenem Dateityp verknüpfen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zu 1. kann ich erstmal nix sagen, aber zu 2.:
Du bekommst das File als Parameter in Deine Main Routine gereicht.


static void Main(string[] args){
//.....
}

Thema: Office AddIn und Uninstall
Am im Forum: Office-Technologien

Zitat
Original von langalaxy
Bedeutet soviel wie, du legst einen Button an und der bleibt nach der Deinstallation?
Ja, aber um es klarzustellen: Der Button wird natürlich vom AddIn selbst angelegt.
Und theoretisch auch wieder entfernt. Der Uninstaller entfernt 'nur' die Registrierungseinträge.
Zitat
Original von langalaxy
Wenn du den Button via CommanBar/CommandBarButton anlegst, kannst du Office mitteilen dass die CommandBar nur temporär hinzugefügt werden soll und nur in der aktuellen Instanz vorhanden ist. Vielleicht hilft dir das ja schon weiter.
Das wär genau das was ich brauche...kannst Du mir noch nen Tip geben wie ich das anstellen muss?
Ach ja: Ich verwende keine Referenzen auf die Office... DLLs. Das wird alles per Reflection erledigt: Das Abrufen der CommanBar/CommandBarButton Objekte, das Erstellen/Entfernen des Buttons,...

thnx
DaSchroeter

Thema: DLLImport mit Zeiger als Parameter
Am im Forum: Rund um die Programmierung


[DllImport("clallserial.dll")]
public extern static unsafe int clGetNumPorts(
            out uint numPorts); // kein pointer


uint numPorts = 0;
clGetNumPorts(out numPorts);

So sollte es aussehen

Thema: ListViewItem werden abgeschnitten
Am im Forum: GUI: Windows-Forms

steht vielleicht irgendwo ein 'nullbyte' im string?
Wird 'aaaaaaa....aaa' (300 mal) auch abgeschnitten?

Thema: Office AddIn und Uninstall
Am im Forum: Office-Technologien

Moinsen,

hab ein kleines Problem mit meinem Office AddIn.
Vornewech: Der Installer läuft, das AddIn läuft.
Und zwar mit Word/Excel 03 und Word/Excel 07

Nun funktioniert aber der Uninstaller nicht richtig.
Ich verwende NSIS zur Erstellung der Registry Einträge
und zur Registrierung der Komponenten.

Die Office.Core Referenzen hab ich mittels Reflection umgangen.

Es werden im Prinzip nur die Einträge im Addins subkey in der Registry geschrieben.

Mit 2007 läuft auch alles prima, aber in Word/Excel 2003 bleibt der
von meinem AddIn erstellte Button (ach ja: das macht es) hängen.

Weiss jemand wo da noch überall was eingetragen wird/werden muss?

thnx
DaSchroeter

Thema: Eigene Objekte über COM verfügbar machen
Am im Forum: Netzwerktechnologien

Dann musst Du auch diese Objekte für COM 'sichtbar' machen.
Genau wie die Klasse, die Deine COM-'Schnittstelle' bildet.

greetz
DaSchroeter

Thema: Installer, Registry, Auto-Start
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zu 1. hab ich schon gefunden:
Einfach keinen Namen (leeren Namen) angeben, dann kommt (Default) oder (Standard) raus.

Zu 2.:
*PUSH*

Thema: Installer, Registry, Auto-Start
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin!

Bin grad auf zwei kleine Problemchen mit einem im Studio 2005 erstellten Setup-Projekt gestoßen:
1. Gibt es eine Möglichkeit für einen Registry-Key (nicht Value!) den Standard-Wert zu setzen?
2. Wie starte ich nach abgeschlossenem Setup (MSI mit /qb! gestartet) einen Link (http://...)?

thnx
DaSchroeter

Thema: Ressourcenschonend Programmieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zum optimieren ist das zu wenig Info.
Zeig nochmal die gesamte Initialisierungsprozedur.

EDIT: Das Flush ist zwar schön, aber an dieser Stelle überflüssig, weil Du den Stream ja eh wieder schließt.

Thema: AntMe! von Microsoft veröffentlicht
Am im Forum: Szenenews

Erinnert mich ein bischen an das hier:
http://www.cis.upenn.edu/proj/plclub/contest/

Thema: Ladeproblem
Am im Forum: Rund um die Programmierung

Was Du da gemacht hast ist nur Hin- und Herschubsen des 'Blocking Calls'.
Du blockierst den GUI Thread durch den Invoke Aufruf.

Du musst aber das Laden im (extra) Thread erledigen und die GUI nur über das Ergebnis benachrichtigen.

So sollte es gehen:


public Form1()
{
    InitializeComponent();
    Console.WriteLine("UI-Thread ist #{0}", Thread.CurrentThread.ManagedThreadId);
    Thread thread = new Thread(new ThreadStart(LoadVrmlInOwnThread));
    thread.Start();
}

delegate void VoidDelegate();

void Ready()
{
    if( InvokeRequired ){
        Invoke( new VoidDelegate(Ready),new object[0] );
        return;
    }
    Console.WriteLine("Loading ready");
}

void LoadVrmlInOwnThread()
{
    Console.WriteLine("Lade VRML in Thread #{0}", Thread.CurrentThread.ManagedThreadId);
    vrmlControl.loadFile("Gesamtlayout.wrl");
    Ready();
}

greetz
DaSchroeter

Thema: Labelgröße anpassen: feste Breite und dynamische Höhe
Am im Forum: GUI: Windows-Forms

Warum nicht einfach so:


this.label.Height = (int)Math.Round(ns.Height);
Weil: Wenn Du mit Round arbeitest und dann immer draufaddierst, dann kann es schon vorkommen, dass sich die 'Fehlbeträge' derart aufsummieren, dass da ganze Zeilen bei zusammenkommen.

Thema: Event an usercontrol
Am im Forum: GUI: Windows-Forms

@herbivore: Warst schon wieder schneller

Thema: Event an usercontrol
Am im Forum: GUI: Windows-Forms

Hi!

Ich würde innerhalb des UserControl Click-Handler für die Label-Clicks erstellen,
die dann wiederum das Click-Event des UserControls auslösen.

Wenn Du die Click-Events im Konstruktor nach InitializeConmponents();
hinzufügst, dann müsste das auch im ComapactFramework gehen.

greetz
DaSchroeter

Thema: Euer Desktop...
Am im Forum: Smalltalk

@frisch: Skin...hmmm...wenn ich dass noch wüsste Irgendwas Vista-mäßiges Und das Hintergrundbild: Die Google-Suche nach 'Babylon 5' bringt einiges zutage

Edit:
Hab auch erst so nen Grafik-Kram drauf, seit ich mir nen ADM64X2 mit 2GB RAM und 600GB SATA II HDs geleistet hab
Vorher war das alles schön brav ausgeschaltet

Thema: Euer Desktop...
Am im Forum: Smalltalk

Hab extra mal die Symbole ausgeblendet, weil: So sollte es eigentlich aussehen

Thema: Web Service vorhanden?
Am im Forum: Netzwerktechnologien

Hi!

Also ich würd sagen Try'N'Error
Oder Du lässt den aktuellen WebService eine DynDns Adresse mit der eigenen IP aktualisieren und connectest dorthin.

greetz
DaSchroeter

Thema: Zu dumm für Listbox?
Am im Forum: GUI: Windows-Forms

Mit

Main thisMain = new Main();
erstellst Du eine neue Instanz der Klasse Main.

Ich denke mal, dass dort im Konstruktor die ListBox gefüllt wird.
Aber

thisMain.listBox1.SelectedItem
ist natürlich null, da ja kein Eintrag selektiert ist.

greetz
DaSchroeter

Thema: mp3 länge herausfinden
Am im Forum: Grafik und Sound

Zitat
Original von talla
Kannst du nicht einfach die Bitrate auslesen und aus der Dateigröße und Bitrate dann die Länge berechnen? (okay, funktioniert nur bei statischer Bitrate so einfach)
Das müsste prinzipiell auch bei VBR gehen. Muss nur (am Besten im Thread) einmal über die gesamte Datei für alle MP3 Header ausgeführt werden.
Hab das irgendwann schonmal so gemacht und das ging recht zügig.

Tipp: Bei der Gelegenheit gleich ne MD5 über den Dateinamen (und eine über die Header-Infos) und die Länge und evtl. andere Angaben in ner DB merken. Dann spart man sich den Kram in Zukunft

greetz
DaSchroeter

Thema: Erster Mycsharp.de Progammierwettbewerb!
Am im Forum: Ankündigungen

Hi!

Zuerst: Ich finde die Idee eines Wettbewerbs an sich und speziell die Aufgabenstellung sehr gut! Aus hier schon oft genannten Gründen

Ob ich mich beteiligen werde hängt ein bischen davon ab, ob ich im Nov genug Zeit habe.

Ich hätte aber noch eine Anregung:
Könnte man statt einen 'Gewinner' auszuloben vielleicht verschiedene Kategorien einführen?

Also z.B. 'Design', 'Idee', 'Coding-Style',...

Und dann für jede angegebene Lösung jede dieser Kategorien bewerten lassen?

Vorteile:
1. Man kann genau sehen, wer in welcher Kategorie gut/schlecht ist.
2. Man könnte über eine Gewichtung der Kategorien immer noch einen 'Gesamtgewinner' bestimmen.

Nachteil:
Ist evtl. ein wenig zu viel Aufwand für den ersten Wettbewerb.
Vielleicht für den nächsten, wenn die Beteiligung gut ist?

greetz
DaSchroeter

Thema: OnPaint Methode wird nicht aufgerufen
Am im Forum: Grafik und Sound

Ah..ok...dann hab ich jetzt echt was gelernt

Ich nehme hiermit alle meine (gutgemeinten, aber) unqualifizierten Bemerkungen zurück!

Thema: OnPaint Methode wird nicht aufgerufen
Am im Forum: Grafik und Sound

OnPaint...wieder was dazugelernt -> Ändert aber nix, weil:

Du hast also eine Handler-Routine überschrieben. Das kann so eigentlich gar nicht funktionieren:
Das Event stammt aus Deiner Basisklasse, der Handler ist dort implementiert, das Event wird dort ausgelöst.
-> Die Basisklasse kennt Deine Ableitung ja gar nicht!

Warum machst Du nicht sowas:


this.Paint += new...

Geht das auch nicht?

greetz
DaSchroeter

Thema: Status Email-Programm
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von absolut
DaSchroeter:
Danke, werde mal die Registry durchforsten. Das mit dem Mini-Pop3 Client geht nicht, ich möchte die Emails im lokalen Email-Programm (bei mir Thunderbird) auswerten, und dies bei allen Email-Adressen (zur Zeit sechs Stück)
Verstehe den Zusammenhang nicht. POP3 kann doch die Mails online belassen!
Oder schreibst Du ein Thunderbird-PlugIn?
Oder geht es nur um die variablen eMail Konten? -> Importer schreiben

greetz
DaSchroeter