Zum Inhalt springen

Lsteinme

Mitglieder
  • Gesamte Inhalte

    65
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Lsteinme

  1. Also ich würds etwa so machen (in VB.net, lässt sich ja aber übersetzten): Dim Sourcefile As String = "FileX.txt" Dim dir As String = "DirectoryX" 'hier stehn nachher alle Namen von Bilddateien die da sein dürfen Dim gueltigeBilder As New List(Of String) For Each line As String In IO.File.ReadAllLines(Sourcefile) gueltigeBilder.Add(line) Next 'hier stehn die namen der Bilddateien die wirklich drin sind Dim Bildnamen As String() = IO.Directory.GetFiles(dir) For Each file As String In Bildnamen 'wenn der Filename nicht in zu den gültigen gehört, wird das File mit dem Namen gelöscht If Not gueltigeBilder.Contains(file) Then IO.File.Delete(file) End If Next Hoffe es ist verständlich was der Code genau tut.
  2. funktioniert nicht, da sich beim SaveAs Befehl sowohl die Wordinstanz als auch das Programm aufhängt und nur noch auf ne Prozessterminierung über den Taskmanager reagiert.
  3. Okay, da das Problem scheinbar nicht von meiner Applikation sondern von Word aus ging, hab beim Kollegen einfach mal das Worddokument sichtbar gemacht und versucht hier direkt von Hand zu speichern, mit Resultat das auch hier Word hängen geblieben ist, muss ich wohl so oder so ne andere Lösung finden.
  4. Hallo, mein Problem ist folgendes, ich hab mir ein kleines Programm geschrieben was XML-Daten in ein HTML-Dokument parsed und dann mit einer Word-Application noch paar Feinheiten wie das Inhaltsverzeichnis das sicher per Klick aktualisiert einfügt. Bei einem Kollegen hängt sich das programm allerdings immer (bei einem bestimmten XML-File) in der Zeile worddoc.SaveAs("C:\Temp\TaR_Reporter\ExportFolder\Export.doc", FileFormat:=Word.WdSaveFormat) auf. (Bei mir funktioniert auch dieses File) Um das Problem schnell zu erledigen, der Kollege geht nächste Woche in Urlaub, wollte ich per Threads eine Art Überwachungssystem einbauen, welches wenn der Wordbearbeitungs-Thread zu lang brauch, diesen einfach abschießt, dann muss der Nutzer halt 4 klicks mehr machen. Das Problem ist nur, Thread.abort, scheint nicht zu funktionieren, zumindest bleibt das Wartefenster, welches anzeigt das Word im Hintergrund noch arbeitet, angezeigt. Das ganze ist etwas schwer zu Debuggen, weil ich den Fehler nicht/mehr nachgestellt bekomme. Gibt es für Threads etwas das dem Prozess.kill Kommando gleich kommt und den Thread auf jeden Fall sofort beendet?
  5. klingt irgendwie wie ein Buddistischer Lehrspruch^^ ne aber Spass bei Seite, müsste dann nicht alles funkionieren wenn ich das tool als Admin starte? Ich hab in zwischen übrigens was entdeckt, vielleicht kann sich das ja wer erklären oder mir sagen wie ich den Compiler dazu zwinge es richtig zu machen. Wenn meine Zugriffe klappen, wird neben den Libs die ich über den Reference Reiter eingetragen habe noch die Assembly System.EnterpriseServices vom Compiler geladen. Das tut er aber leider nicht immer, bei denen bei (zum beispiel) die Datenbank funktionen nicht klappen wird diese Assembly nicht geladen. Das Problem daran ist, wenn ich die Assembly einfach in die References aufnehme hilft das nichts, da ich sie nie direkt im Code verwende, fliegt sie sofort wieder beim Compilieren raus. Ps, das gleiche Programm läd, bei denen bei denen es nicht klappt, einmal die Enterprise Lib(auf einer lokalen festplatte) und einmal nicht(auf dem übers Intranet erreichbaren Fileserver). Bei denen bei denen es klappt, läd der Compiler die Assembly auf beiden Pfaden.
  6. Die SocketException wurde von der Singel-Instance Einstellung des Projektes ausgelöst. Ist aber scheinbar nur ein Teil eines Größeren Security Problems.
  7. Okay, nach Tagen der suche nach den Problemen, die Socketexception war nur die Spitze des Eisberges, bin ich auf das wahre Problem gestoßen: Aus welchem Grund auch immer fehlen meiner Application MANCHMAL bestimmte Sicherheitsbefugnisse. Die Application ist unter .net 3.5 entwickelt. Wie "markiere" ich meine Application so das sie egal wer sie ausführt immer Vollständige Sicherheitsberechtigungen anfordert? Aus den Artikeln zum Thema Securitypermissions die ich per Google gefunden habe bin ich irgendwie nicht so ganz schlau geworden. PS: das This is a full trust application im Security reiter der Project-Propertys hatte keine Wirkung.
  8. Das ist das Problem, ich habe keine Ahnung was diese Socketexception aus löst. Da ich bis dato keine Erfahrung in sachen Win7 und Fileserver(mit os Netapp) habe frage ich hier nach. Wenn ich den Haltepunkt auf die erste Methode meins Codes der aufgerufen werden sollte setzte(loadmethode der ersten GUI, wird dieser erst garnicht angesteuert, heißt die Exception kommt vor eintritt in meinen von mir/meinen Vorgängern geschrieben Code auf, also im autogenerierten.
  9. ich kann erst garkeinen TryCatch block einbauen, weil der Fehler entsteht bevor mein eigentlicher Code gelesen wird. Edit: Doch, weis nicht wieso der 2te erschienen ist Im Errorstacktrace ist meine App nur einmal enthalten, und dieses Stelle ist leider auserhalb des Codes den ich direkt sehe: at PRIME.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 oder weiß jemand wie ich an das file dort ran komme um einen Trycatch block um diese Zeile 81 zu setzten?
  10. Hi, das problem zu beschreiben ist etwas schwierig, weil ich selbst nur schwammige Vermutungen hab wo es her kommt, und der Fehler nicht grade ausdruckstark ist. Mein Programm hat unter Windows XP immer super funktioniert, sowohl wenn ich es auf der Lokalen Festplatte gestartet habe, als auch wenn ich es von unserem Fileserver gestartet habe. Unter Windows 7 (64Bit) jedoch, funktioniert das Programm bei mir auf der Lokalen festplatte noch einwand frei. Versuche ich aber das Programm vom Fileserver zu starten, startet das Programm erst garnicht richtig und steigt direkt mit: "Programm funktioniert nicht mehr" aus. Als ich auf dem Server mal das Projekt mit dem Debugger starten wollte, kam der Debugger garnicht erst in meinen Code und stieg mehr oder minder direkt nach dem buildvorgang mit einer Socketexception aus. Leider sind die Details zur Exception recht mager, hier das was ich über view Detail, der Fehlermeldung erfahren konnte: Data: {System.Collections.ListDictionaryInternal}(Count=0) ErrorCode:10022 StackTrace: at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) at System.Net.Sockets.TcpListener..ctor(IPAddress localaddr, Int32 port) at System.Runtime.Remoting.Channels.ExclusiveTcpListener..ctor(IPAddress localaddr, Int32 port) at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel() at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback) at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at PRIME.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() Kennt jemand diese Art von Fehler, oder kann mir zumindest einen Denkanstroß geben in welcher Richtung ich nach dem Grund des Fehlers suchen muss? Ich bin aktuell ratlos, meine einzigen 2 Vermutungen wären das irgendwas im Buildscript für windows 7 anders sein müsste oder das der Server mit W7 bzw 64 Bit Betriebssystem nicht klar kommt. Gruß Lucas
  11. Hi, das problem zu beschreiben ist etwas schwierig, weil ich selbst nur schwammige Vermutungen hab wo es her kommt, und der Fehler nicht grade ausdruckstark ist. Mein Programm hat unter Windows XP immer super funktioniert, sowohl wenn ich es auf der Lokalen Festplatte gestartet habe, als auch wenn ich es von unserem Fileserver gestartet habe. Unter Windows 7 (64Bit) jedoch, funktioniert das Programm bei mir auf der Lokalen festplatte noch einwand frei. Versuche ich aber das Programm vom Fileserver zu starten, startet das Programm erst garnicht richtig und steigt direkt mit: "Programm funktioniert nicht mehr" aus. Als ich auf dem Server mal das Projekt mit dem Debugger starten wollte, kam der Debugger garnicht erst in meinen Code und stieg mehr oder minder direkt nach dem buildvorgang mit einer Socketexception aus. Leider sind die Details zur Exception recht mager, hier das was ich über view Detail, der Fehlermeldung erfahren konnte: Data: {System.Collections.ListDictionaryInternal}(Count=0) ErrorCode:10022 StackTrace: at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) at System.Net.Sockets.TcpListener..ctor(IPAddress localaddr, Int32 port) at System.Runtime.Remoting.Channels.ExclusiveTcpListener..ctor(IPAddress localaddr, Int32 port) at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel() at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback) at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at PRIME.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() Kennt jemand diese Art von Fehler, oder kann mir zumindest einen Denkanstroß geben in welcher Richtung ich nach dem Grund des Fehlers suchen muss? Ich bin aktuell ratlos, meine einzigen 2 Vermutungen wären das irgendwas im Buildscript für windows 7 anders sein müsste oder das der Server mit W7 bzw 64 Bit Betriebssystem nicht klar kommt. Gruß Lucas
  12. Noch nicht, wär aber mal nicht ganz praktisch^^
  13. Dim s As String = "XPLACEFORSUMMARYX" Dim text As String = worddoc.Range.Text text = text.Replace(""c, "") text = text.Trim Dim startpos As Integer = text.IndexOf(s) war die lösung für das Indexproblem, wenn auch wahrscheinlich nicht die beste, da ich erst auslesen, dann suchen musste. schätze es müsste eigentlich auch ohne auslesen gehen.
  14. hai, wenn ich worddoc.range.text sage und gehe mit dem Mauszeiger über den Text sehe ich die kreise, klick ich rein, sind sie nicht da. ich Checke grade noch was die berechnung hier durcheinander bringt, die "Kreise" warens nicht. Das sind scheinbar zeichen für "Hier steht kein Zeichen", was normalerweise nicht optisch interpretiert wird kopier mal "" und entfern die beiden Anführungsstriche, aber im Editor, da siehst du das Zeichen. EDIT: Halt sie warens doch Ich hatte beim späteren indexbestimmen noch ne alte ungefilterte Referenz drin
  15. ok es scheint sich um den index des Buchstaben im fliestext zu handeln, ich habs jetzt einfach mal mit range.text.indexof versucht, das geht aber etwas in die hose, weil im range.text jede menge Schwarze ausgefüllte kreise drin sind, die nicht mit zur zeichenposition zählen wenn ich die Position an Word zurück gebe. Obendrein, kann ich die Punkte auch nicht einfach zählen und später abziehen, weil mein Visualstudio sich weigert das Zeichen irgendwie anzuzeigen, außer es ist in dem String...
  16. @Klotzkopp das ist ne gute Frage, ich vermute stark es geht hier um die Position des Buchstabens im Fliestext, also ohne interne Formatierungszeichen etc, da ich es aber auch nicht sicher weis, hab ich die frage nach der .Indexof methode gesellt, die mit der Range methode von Word vernünftig zusammen arbeitet^^ @pr0gg3r, öffnen kann ich sie ja, das Inhaltsverzeichnis ist auch drin, nur aktuell an der aller ersten Position im Text, was gleich wieder gemecker von den Leuten die das Wordinhaltsverzeichnis haben wollten nach sich ziehen wird^^ Es gibt in bei der COM-Komponete zwar den begriff des "Find" als Attribut eines Worddocuments, ich hab aber noch nicht raus ob und wie man damit was anderes machen kann wie den bestehenden Text durch einen anderen zu ersetzen.
  17. Szenario: Ich habe mir eine Formatvorlage erstellt, diese wird mit XML dateien befüllt. Ganz oben ist eine Tabelle mit Daten darüber an wen das Dokument gehen soll sowie einigen weiteren Dingen. darunter soll ein Inhaltsverzeichnis darunter dann alle XML-Items. Es geht darum das Inhaltsverzeichnis, welches ich dummerweise über den Word-mechanismus NACH der XML einlese erzeugen muss zwischen die Tabelle ganz oben und das erste XML-Item zu platzieren(Grund dafür ist irrelevant). Hierfür habe ich in der vorlag das Wort XPLACEOFCONTENTTABLEX eingefügt. jetzt muss ich halt raus finden an welcher stelle genau dieses Wort in meinem Worddokument beginnt. der Code für das einfügen der Contenttable wäre dann folgender: dim s as string="XPLACEOFCONTENTTABLEX " dim startofword as integer= worddoc.range.METHODENNAME(s) With WordDoc .TablesOfContents.Add(Range:=WordDoc.Range(startofword, startofword+s.length), _ RightAlignPageNumbers:=True, _ UseHeadingStyles:=True, _ IncludePageNumbers:=True, _ AddedStyles:="styleSection", _ UseHyperlinks:=False, _ HidePageNumbersInWeb:=True, _ UseOutlineLevels:=True) .TablesOfContents(1).Range.Font.Size = 12 .TablesOfContents(1).TabLeader = Word.WdTabLeader.wdTabLeaderDots End With oder so ähnlich, ob das mit dem Length sein muss müsst ich dann halt noch sehen.
  18. ich suche nicht den Index des wortes in einem vb.net internen String, sondern in einer Worddatei, klar kann ich den ganzen text der Worddatei in einen String kopieren, aber die frage war so gemeint ob es auch direkt geht.
  19. Und wie würde der entsprechende Befehl dazu lauten?
  20. Gibt es eine Möglichkeit au meiner vb.net Anwendung heraus die Position eines bestimmten Wortes in einem Worddocument zu ermitteln? Quasi sowas wie range.indexof(text)?
  21. mit AddHandler bist du vorallem auch flexibler, die Handles... variante ist z.B. bei dynamischer Programmierung wenn du mehrere Komponenten in einer schleife los lässt die alle ein bestimmtes Event auf einen bestimmten Handler mappen sollen etwas schwierig, geht sicher irgendwie aber keine ahnung wie^^. Handles ist denk ich einfach nur die (bei statischer Programmierung) übersichtlichere
  22. und wenn ich da jetzt die Faxnummer au noch brauch? die hat ja Userprincipal nicht direkt als Attribut, gibts da irgend ne spezialzugriffsmethode mit der man über den Attributsnamen im LDAP auf das Attribut zugreifen kann?
  23. werd ich gleich mal testen danke, trotzdem wüsst ich gern was diesesn Rattenschwanz unter W7 auslöst
  24. Als zusätzliche Seitenmerkung: es treten noch mehr, wie ich finde komische Dinge, auf die, denke ich zumindest, vielleicht mit dem Server zutun habe: Wenn ich ein anderes Programm vom gleichen Server starte, bekomme ich, ohne das sich das Programm überhaupt irgendwie rührt, die altbekannte Meldung Programm X funktioniert nicht mehr und muss beendet werden. Ich hab dann raus bekommen, das es beim starten der exe des tools immer deswegen hier aussteigt: at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) at System.Net.Sockets.TcpListener..ctor(IPAddress localaddr, Int32 port) at System.Runtime.Remoting.Channels.ExclusiveTcpListener..ctor(IPAddress localaddr, Int32 port) at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel() at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback) at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at [ANWENUNGSNAME].My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() Wobei dieses Problem nur bei mir auftritt oder sich zumindest noch kein anderer gemeldet hat bei dem es auch auftritt. Allerdings hab ich auch schon von leuten gehört bei denen das starten dieses Tools geklappt hat. Diese jedoch bekommen später ein Problem, wenn die Anwendung über eine Outlook-COM verbindung Kuerzel auflösen will, um sie für Mails bereit zu stellen. Da auch diese Anwendung die Probleme nur aufweist wenn man sie von einem Serververzeichnis aus startet, bestärkt sich halt mein Verdacht das vielleicht was mit dem Server faul ist, von der IT bekomm ich aber immer nur gesagt: da ist alles in Ordnung. brauche also Schlagfeste Argumente^^
  25. Ok ganz genau, brauch ich aus unserem LDAP für einen Benutzer von dem ich nur das Anmeldekuerzel weis, Vorname, Nachname, Organisation, Telefon und Fax. der Zugriff auf das ganze funktioniert auch, unter Windows XP mit folgendem Code: Konstrukor des Objekts über das Zugriff aufs LDAP genommen wir: Dim oCont As Object = GetObject("GC:") For Each gc As Object In oCont gcPath = gc.ADsPath Next Zugriffsmethode: ''' <summary>Erweiterte Benutzer Infos aus Kuerzel</summary> Public Function getExtendedUserDataFromCn(ByVal Kuerzel As String) As String() 'Try If Not openCon() Then MsgBox("Failed to connect to LDAP") Return Nothing End If Dim fields(6) As String rs = conn.Execute("<" & gcPath & ">;(Kuerzel=" & Kuerzel& ");" & _ "AT1, AT2, AT3, AT4,AT5,AT6,AT6;subtree") If Not (rs.BOF Or rs.EOF) And rs.RecordCount = 1 Then With rs.Fields fields(0) = .Item(0).Value.ToString 'Nachname fields(1) = .Item(1).Value.ToString 'Vorname fields(2) = .Item(2).Value.ToString 'NT-User fields(3) = .Item(3).Value.ToString 'EMail-Adresse fields(4) = .Item(4).Value.ToString 'Organisation/Abteilung fields(5) = .Item(5).Value.ToString 'Telefon fields(6) = .Item(6).Value.ToString 'Fax End With Else fields = Nothing End If closeCon() Return fields 'Catch e As Exception ' MsgBox(e.Message) 'End Try Return {} End Function openCon: Private Function openCon() As Boolean 'Verbindung mit LDAP herstellen conn = New ADODB.Connection Try conn.Open("Provider=ADSDSOObject") Return True Catch ex As Exception conn.Close() Return False End Try End Function So wie gesagt, unter Windows XP funktioniert das ganze ohne Probleme. Versuche ich aber das selbe Programm unter Windows 7 aufzurufen, scheitert schon das beziehen des Strings gcPath. Der Dedugger hat mir gezeigt, das das Objekt das ich mit Dim oCont As Object = GetObject("GC:") bekomme keine "Unterobjekte" oder was auch immer mit For Each gc As Object In oCont abgerufen wird, besitzt, den der Debuggzeiger springt einfach über die schleife drüber. Mein Verdacht hier ist, wobei ich zugegebener Maßen von Servern so ziemlich keine Ahnung habe, das irgendwie der .GetObjekt befehl vom OS des Servers falsch verarbeitet wird wenn er von einem W7 64Bit System kommt. Ist das möglich? Nur um es nochmal zu verdeutlichen, starte ich das ganze von einer im Rechner verbauten Platte geht alles ohne Probleme, versuche ich das ganze aber vom Firmen eigenen (ich glaub fast globalen) Server, auf dem das Programm als .exe abgelegt wird, so scheitert das ganze. PS: ich weiß leider nicht welches Betriebssystem auf dem Server drauf ist, deswegen generel gefragt, ob sowas sein. kann.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...