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 wakestar
Thema: PreviewHandler Control mit hängendem Winword.exe Prozess
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich hab' ein Control Add-in für Dynamics NAV 2013 (Navision) erstellt, mit dem man direkt im NAV den Dateiinhalt (z.Bsp. PDF, Doc, XLS, etc...) sehen kann.

.NET resp. Winforms - Technisch handelt es sich um ein Control welches ein Panel hat. Auf diesem Panel sitzt ein PreviewHandlerHostControl

Das UserControl funktioniert grundsätzlich... d.h. wenn ich z.Bsp. eine Word-Datei auswähle... startet im Hintergrund autom. ein Winword-Prozess.
Wähle ich dann eine PDF - Datei aus, wird der Winword-Prozess sauber beendet und der PDF-Viewer-Prozess gestartet.

Das Problem:
Wenn ich die Dynamics NAV Page (Form) schliesse und ich eine Word-Datei in der Vorschau habe, dann bleibt mir der Winword - Prozess einfach hängen.
Ich bin nicht der Erste der dieses "Phänomen" hat...
Hosting Preview Handlers in Windows Forms Applications

Lösungvorschlag 1 aus den Blog-Kommentaren:

Zitat
"I seem to have solved this problem by disposing the previewhandler in the “closing” event of the form –"

Was ich auch versucht habe... leider ohen Erfolg...


void Page_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (previewHandlerHostControl != null)
            {
                previewHandlerHostControl.ReleaseCOMObject();
                previewHandlerHostControl.Dispose();
                previewHandlerHostControl = null;                
            }
        }

public void ReleaseCOMObject()        
        {                     
            if (_comInstance != null)
            {                
                ((IPreviewHandler)_comInstance).Unload();             
                Marshal.FinalReleaseComObject(_comInstance); //quits the handler
                _comInstance = null;
            }            
        }

Testhalber hab ich ein neues WinForm - Projekt erstellt, welches NICHTS mit Dynamics NAV zu tun hat... und siehe da... beim Beenden des Forms bleibt der Winword-Prozess NICHT hängen:


private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (previewHandlerHostControl != null)
            {
                previewHandlerHostControl.ReleaseCOMObject();
            }
        }

D.h. hat das Problem mit dem FormClosing-Event innerhalb der NAV - Applikation zu tun. (??)

Lösungvorschlag 2 aus den Blog-Kommentaren:
Zitat
"Since altering my application to close down the Preview and then wait before calling PostQuitMessage(), the problem appears to have been completely resolved. I have really hammered it and so far the issue has not resurfaced, fingers-crossed."

Hat jemand eine Idee wie das mit C# umgesetzt werden kann?

Oder sonst eine Idee wie man das Problem lösen könnte?

Thema: DLLImport: Parameter sOutString leer ist nachdem die Funktion aufgerufen wurde
Am im Forum: Rund um die Programmierung

Super, danke Euch beiden.

gruss
wakestar

Thema: DLLImport: Parameter sOutString leer ist nachdem die Funktion aufgerufen wurde
Am im Forum: Rund um die Programmierung

Hallo Community

Folgenden VB6 Code versuche ich nach C# zu übernehmen:

Public Declare Function BC_FontTranslate Lib "BCXL32.dll" (ByVal nSymtype As Long, ByVal sHRA As String, ByVal nCheckFlag As Long, ByVal sOutString As String, ByVal nAllocSize As Long, nReturnSize As Long) As Long

Ich hab's wie folgt versucht:


[DllImport("BCXL32.dll")]
public static extern int BC_FontTranslate(int nSymtype, string sHRA, int nCheckFlag, string sOutString, int nAllocSize, ref int nReturnSize);

Das Problem ist dass die Variable sOutString leer ist nachdem die Funktion aufgerufen wurde. Wenn ich die sOutString Variable mit "ref" definiere, erhalte ich eine AccessViolationException.

Die Dokumentation zur DLL meint folgendes:
Zitat
FUNCTION: BC_FontTranslate()
....
'// PARAMETERS :
'// sOutstring (OUTPUT, String) - Storage string for the translated output. This string
'// must be pre-allocated memory by the calling routine.
....

...was mich verwirrt, da ja der alte VB6 code funktioniert und dort ByVal verwendet wird.

Tipps??

Gruss
wakestar

Thema: Windows Explorer Datei- und Ordnersuche
Am im Forum: Rund um die Programmierung

...oder FileSeek...

http://www.fileseek.ca/Compare/

damit hab' ich bisher sehr gute Erfahrungen gemacht.

Thema: PreviewHandler für Bild-Dateien
Am im Forum: Grafik und Sound

Hallo herbivore

Absolut richtig. Anhand von Debugging sehe ich schon welche Registry-Keys er sucht um sich die Preview Handler zu holen und ich sehe auch wo er rausfliegt. Damit weiss ich aber leider nicht wie ich den PreviewHandler für die Bilder finde.

Interessanterweise hab' ich bisher versch. C# -Beispiele mir angeschaut und ausprobiert und das mit den Bildern funktioniert in keinem der Beispiele.

Interessant wäre d.h. zu wissen, wie es der Windows Explorer macht.
Ich schätze mal die meisten sparen sich aber diesen Analyse-Aufwand und greifen zur PictureBox oder ähnlichem....

gruss
wakestar

Thema: PreviewHandler für Bild-Dateien
Am im Forum: Grafik und Sound

Hallo zusammen

Ich bin zurzeit dran, eine Dateivorschau für die eigene Applikation zu erstellen.
Als Basis hab' ich das c4fDevKit (Preview Handlers) genommen:
http://c4fdevkit.codeplex.com/SourceControl/latest

Grundsätzlich funktioniert die Dateivorschau.
Ein Problem hab' ich aber bei den Bildern wie z.Bsp. Jpeg.
Offenbar wird kein Preview Handler gefunden. - Wieso ist mir aber nicht klar.

Die Bildvorschau im Windows Explorer funktioniert richtig. (Windows 7)

Auch das Installieren der Fotogallerie (Photo Gallery) hat nichts genützt.

Mir ist bewusst dass ich die Bilder auch ohne diese c4f Komponente anzeigen kann,
jedoch geht es mir mehr ums Versändnis für die PreviewHandler.

Hat jemand eine Idee?

gruss
wakestar

Thema: Navision RDLC Reports (NAV 2013) - Alternativen?
Am im Forum: Rund um die Programmierung

Hallo trib

Es freut mich zu hören, dass Du das Ganze nicht so problematisch siehst.

Zitat
weshalb ist das RDLC Reporting für Belege eine Krücke?

wenn ich mich in den Navision - Foren und Blogs durchklicke, dann hab' ich den Eindruck dass man zwar das Meiste was man vorher schon mit den Classic Reports konnte auch mit RDLC hinkriegt... jedoch hat die RDLC Lösung meistens den Stempel "Workaround", "Hack" oder "Würg"... d.h. man frickelt sich was zusammen... hauptsache es funktioniert irgendwie. Und dann hoffen dass man es nie wieder anfassen muss.

Beispiele:

NAV2013: Reporting: Does (not) support fields in Header and Footers

Transfooter and Transheader warning

In Zusammenhang mit "Datenvolumen":
OutOfMemoryException when printing an RDLC report

Nun, so wie ich das sehe führt trotzdem kein Weg daran vorbei. Selber etwas bauen mit irgendwelchen OpenSource-Komponenten ist vermutlich auch nicht die bessere Lösung.

Thema: Navision RDLC Reports (NAV 2013) - Alternativen?
Am im Forum: Rund um die Programmierung

Hallo Community

Diese Frage ist an Navision oder .NET-Entwickler mit RDLC - Erfahrung gerichtet:

Seit NAV2013 gibt es je bekanntlich keine "Classic" - Reports mehr und neu muss man sich mit RDLC Reports herumschlagen.

Für Auswertungen / Listen usw. mag das ja alles OK sein...
aber wenn man Belege à la Offerte, Auftragsbestätigung, Rechnung erstellen / anpassen möchte, dann ist das Ganze.. harmlos ausgedrückt... eine KRÜCKE.

Wie seht Ihr das? Was gibts für Alternativen? Wie handhabt ihr das? Tipps ???

gruss
wakestar

Thema: [erledigt] Externe Anwendung starten via URL "Start / Ausführen"...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

warum kompliziert wenns auch einfach geht!?

danke!!

Thema: [erledigt] Externe Anwendung starten via URL "Start / Ausführen"...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen

Eigentlich eine einfache Aufgabe...

Via "Start / Ausführen" kann mit folgendem Befehl:
"DynamicsNAV:////runreport?report=3031205&filter=Contact.%22No.%22:11546"
eine externe Anwendung (hier Microsoft Dynamics NAV) gestartet / gesteuert werden.

Windows weiss anhand der Registry, wo die DynamicsNAV - Exe Datei liegt...

Nun würde ich gerne genau das gleiche mit C# ausführen
Ich hab' jetzt schon dutzende Varianten ausprobiert...

ProcessStartInfo mit "cmd" , "explorer", "DynamicsNAV" gefüttert....hat nicht geklappt... mit unterschiedlichen Fehlermeldungen.

Wie macht man's richtig? Im Netz finde ich tausende Beispiele ... aber genau den Fall, dass quasi via "URL" eine Anwendung gestartet werden muss finde ich nicht.

wakestar

Thema: MDE / Barcode Scanning Anwendung: Welches Gerät und welches OS am besten?
Am im Forum: Rund um die Programmierung

Danke für die zahlreichen Beiträge.

Ich hab's nun mit Dos und Telnet gelöst. Funktioniert wunderbar


Ernsthaft:
@Programmierhans: MS Dynamics NAV 5.x bis NAV 2009 R2

Thema: MDE / Barcode Scanning Anwendung: Welches Gerät und welches OS am besten?
Am im Forum: Rund um die Programmierung

Hallo dN!3L

Ja, das siehst Du richtig. Vom Gerät her kommt für einen Lagermitarbeiter nur etwas robustes und mit richtiger Scanning-Hardware in Frage. Mir schwebte eine WP7 App auf einem solchen Gerät vor... naja... träumen darf man ja :-)

wakestar

Thema: MDE / Barcode Scanning Anwendung: Welches Gerät und welches OS am besten?
Am im Forum: Rund um die Programmierung

Hallo Community

Welches Gerät und welches OS nimmt man heute, wenn man eine mobile Barcode Scanning Anwendung entwickeln will?

- Anbindung mit ERP - System via Webservice soll möglich sein
- Neben der Barcode-Erfassung sollen einfache Eingabe-Masken erstellt werden damit
z.Bsp. die Menge eingegeben werden kann
- Einsatzgebiet wäre primär im Lager, wo z.Bsp. Rüstprozesse erledigt werden

Spontan hätte ich auf Windows Phone 7 getippt... weil das gerade aktuell ist im mobilen Bereich. Allerdings gibts da auch Nachteile wie z.Bsp. den Marketplace.. und die Auswahl an Geräte ist noch gering.
Sehe ich das richtig dass nach wie vor Windows Mobile 6.5 das richtige ist?

wakestar

Thema: Eure iPhone-Lieblings-Apps?
Am im Forum: Smalltalk

"GPS Tracks" ... erst kürzlich entdeckt, aber bereits zwei Mountainbike -Touren damit gemacht. Topo-Karten ab 1:25'000 Massstab für CH / D / A. Und das noch Free

Thema: Generierte Dateien von VS: Interop, AxInterop, TLB, etc... & Dateiversion
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

in der Zwischenzeit hab' ich das Tool "Orca" gefunden, damit lässt sich ein MSI-File editieren:
http://www.brentnorris.net/blog/archives/319

... und hab den Eintrag REINSTALLMODE=amus gemacht:
http://www.codeproject.com/tips/54850/REINSTALLMODEequalsamus.aspx


so werden die Dateien ohne Rücksicht auf Version überschrieben...

Thema: Generierte Dateien von VS: Interop, AxInterop, TLB, etc... & Dateiversion
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Community

Visual Studio generiert ja z.T. automatisch Dateien, wenn man mit COM / ActiveX arbeitet. Diese sehen dann so aus: Interop.xxx.dll, AxInterop.xxx.dll, xxx.tlb
Dabei erhalten diese Dateien immer die Dateiversion 1.0.0.0

Nun erstelle ich im Visual Studio ein Setup-Projekt und binde meine Assembly ein. Dabei werden die von VS erzeugten Dateien (Interop, AxInterop, etc..) autom. miteingebunden, aufgelistet unter "Detected Dependencies".

Das Problem ist nun, dass bei der Ausführung des Setups die "generierten" Dateien auf dem Zielrechner nicht geschrieben werden, wenn sie bereits vorhanden sind, weil die Dateiversion die gleiche ist. --- > 1.0.0.0
... das ist meine Vermutung...
Default File Versioning: Both Files Have a Version

Testhalber hab' ich mit einem speziellen Tool die Version der Interop-Dateien auf 1.0.0.1 erhöht und die Installation hat die alte Version wie erwartet überschrieben.

Wie lässt sich das einfacher lösen?

Thema: Avatar - Aufbruch nach Pandora
Am im Forum: Smalltalk

Hallo talla

Als ich deinen Beitrag gelesen habe dachte ich: "shit, den muss man im 3D Kino sehen".
Jetzt, einige Stunden später, kann ich beruhigt sagen dass der Film auch ohne 3D der absolute Hammer ist.
Ich werde Avatar bestimmt noch ein zweites Mal im Kino schauen.

Thema: Entwickler - Berechtigungen auf Terminal-Server-Umgebung vergeben
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen

Folgendes Szenario:

- Entwicklungsumgebung ist auf einem Terminal - Server installiert
- Entwicklungs-Projekte sind z.T. COM-Objekte (d.h. müssen registriert werden können)
- Neue "Entwickler" sollen an Projekten mitentwickeln können.

Frage:
Wie löst ihr das mit den Windows-Berechtigungen für die neuen Entwickler?

Vergibt ihr individuell die Windows-Berechtigungen, je nachdem in welchem Projekt der Entwickler arbeitet? Oder vergibt ihr grundsätzlich alle Rechte, damit er ungehindert überall mitwirken kann?

Eine Lösung die allen passt wird es wohl nicht geben, aber mich würde es trotzdem interessieren wie das bei euch in der Praxis gelöst ist.

Gruss
Wakestar

Thema: Windows 7: Noch nicht erhältlich, schon geknackt
Am im Forum: Szenenews

@hebivore & schwermetaller

Ich hab' ja auch nicht gesagt dass das in irgendeiner Weise legitim ist.

Aus der Sicht von Microsoft ist es das "kleinere Übel".
Wenn die Leute auf Mac, Linux oder irgendwann auf Google umsteigen, verliert Microsoft nicht nur beim Betriebssystem, sondern evtl. auch gleich bei anderen Anwendungen wie Office z.Bsp. Und wenn die Leute anfangen, privat Microsoft Software rauszuschmeissen, ist es eine Frage der Zeit bis es in den Unternehmen auch der Fall ist.

Thema: Windows 7: Noch nicht erhältlich, schon geknackt
Am im Forum: Szenenews

Microsoft würde es zwar so nicht sagen, aber denen ist es lieber dass die Leute ein geknacktes Windows verwenden als ein anderes Betriebssystem.

Thema: COM Server / Client
Am im Forum: Rund um die Programmierung

Wenn Du eine .NET-Klasse "COM-sichtbar" machst, dann können nur "echte" COM-Clients darauf zugreifen...keine .NET - Clients.
Wieso muss es COM sein?

Thema: [gelöst] Sage Office Line: Microsoft.Office.Interop.Access._CurrentProject gefordert/Was übergeben?
Am im Forum: Rund um die Programmierung

Im ersten Thread hast Du geschrieben, dass Du versch. Verweise im Visual Studio eingefügt hast... unter Anderem die Microsoft Access 11.0 Object Library. - Evtl. hat sich Visual Studio "verstrickt"

Ich würde mal ein frisches Projekt anlegen und NUR die Sage - DLL referenzieren, welche Du effektiv brauchst. Visual Studio wird sich dann schon melden, wenn etwas fehlt (hast ja auch schon Erfahrung damit gemacht :-)

Thema: [erledigt] COM DLL Abhängigkeitsprobleme lösen
Am im Forum: Rund um die Programmierung

... ansonsten auf der "produktiven" Umgebung an der Access - Lösung anhängen und nach "OLAbfBasic40" suchen

Thema: [erledigt] COM DLL Abhängigkeitsprobleme lösen
Am im Forum: Rund um die Programmierung

Zitat von bvsn
Nur wie finde ich denn jetzt raus, was mir fehlt?

Versuchs mal mit dem Process Monitor:
http://technet.microsoft.com/de-de/sysinternals/bb896645(en-us).aspx

einfach am Visual Studio anhängen und schauen was da File- und Registrymässig abläuft, bevor der Fehler gespuckt wird.

Thema: [erledigt] COM DLL Abhängigkeitsprobleme lösen
Am im Forum: Rund um die Programmierung

Entwickelst Du die .NET - Lösung auf der gleichen Maschine wie die Access-Lösung?

Thema: Windows 7 in Europa ohne IE? -> Findet ihr das sinnvoll?
Am im Forum: Smalltalk

Zitat von michlG
Ja ok, aber so wäre es doch reiner Zufall welcher Browser installiert wird.

Und? Die EU wäre dann glücklich... und der Benutzer... dem is es eh egal, Hauptsache Internet

Thema: Windows 7 in Europa ohne IE? -> Findet ihr das sinnvoll?
Am im Forum: Smalltalk

ok, hier noch meinen ursprünglichen Vorschlag, aber etwas überarbeitet:

Auswahlmöglichkeiten:

- (Internet) Chrome
- Internet Explorer
- (Internet) Firefox
- (Internet) Opera

Wichtig:
- Reihenfolge wird nach dem Zufallsprinzip bestimmt!
- keine Logo's!
- keine spez. Schriftarten!
- keine Farben!
und:
- wenn der Benutzer IE wählt muss er 3x bestätigen, ob er wirklich den IE installieren will, bei allen anderen Browsern wird sofort und ohne Rückfrage installiert!

Yes We Can!

Thema: Windows 7 in Europa ohne IE? -> Findet ihr das sinnvoll?
Am im Forum: Smalltalk

Zitat von michlG
....
IE, Chrome, Opera, Firefox.
Das wäre ersten eine extreme Verwirrung für viele Kunden. Denn die Wissen dann nicht mehr wo sie ins Internet kommen.

dann muss halt etwas auf die Sprünge helfen, damit die Kundschaft das versteht....

- Internet Explorer
- Internet Chrome
- Internet Opera
- Internet Firefox

und überhaupt...

Was ist ein Browser?


Thank God it's Friday

Thema: pdf Datei über Webbrowser Control direkt auf lokaler festplatte speichern
Am im Forum: Web-Technologien

Ich hab' das für mich auch schon gemacht, aber ich hab' das Ganze wie folgt gelöst:

- Console App

- Autom. Login mit HttpWebRequest

- Erstelle CookieContainer

- Navigiere auf die richtige Webpage und erzeuge HTMLDocument - Objekt

- Parse HTMLDokument und hole die "korrekten" (bestimmte Logik) Download-Links für die PDF's (bei mir gibts pro Zeitungs-Seite ein PDF-Download-Link)

- Ziehe PDF-Seiten in MemoryStream und speichere als PDF-Datei auf Disk.

- Merge alle PDF-Dateien in eine PDF-Datei.

- Fertig

Bei diesem Projekt war der "Fiddler" unverzichtbar.


edit:
sorry, zur "rechts-maus-klicki-dings-bums" Frage weiss ich leider keine Antwort :-)

Thema: MemoryStream aus Clipboard.getData(DataFormats.Locale) in datei speichern?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hoi flo

Ich hab' damals die Funktionalität bei *einer* Datei gelassen und hab' nicht weiter recherchiert.

gruss
wakestar