Autor |
Beitrag |
m.keller
      
Beiträge: 133
Win xp, Win 7
C# (VS 2008)
|
Verfasst: Fr 14.02.14 16:33
Hallo Entwickler,
nun bin ich schon seit drei Tagen auf der such für eine Lösung meines Problems.
Weder google kann mir wirklich helfen noch irgendwelche Programmänderungen
Ich habe ein Software geschrieben die ich in der Registry für den Autostart eintrage.
Die Software Startet auch.
Nun muss ich eine Libary laden und aus dieser initialisieren.
Das Problem ist, bei diesem Vorgang gibt es ein Fehler.
Selbst den TraceListener erstellt meine Software nicht mehr.
Dies ist aber nur bei einem Starten von Windows.
Öffne ich die Software manuell funktioniert der Vorgang.
Wenn ich das automatisch initialisieren deaktiviere und aus der Registry starten lasse, dann manuell initialisiere habe ich das selbe Problem.
Lass ich die Software über den Startup Ordner starten funktioniert sie auch so wie vorgesehen.
Sind irgendwelche Service oder Schnittstellen das Problem, vielleicht noch nicht geladen oder so etwas?
Vielleicht habt ihr eine Idee um das Problem zu umgehen.
Vielen Dank schon mal
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 14.02.14 16:43
Hallo!
Wie lautet denn die Fehlermeldung? Oder bekommst Du die nicht zu Gesicht?
Wie gibst Du im Programm den Pfad zur Library an? Benutzt Du dort das aktuelle Verzeichnis? Das könnte beim Start durch die Registry anders sein, als man es erwartet.
Grüße
Christian
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
m.keller 
      
Beiträge: 133
Win xp, Win 7
C# (VS 2008)
|
Verfasst: Fr 14.02.14 16:47
Die Fehlermeldung wird von der Library selber erzeugt. Es ist eine die ein Zulieferer geschrieben hat.
dies liegt im selben Pfad wie meine .exe
Und ist mit Visual Studio 2008 mit als Verweis eingebunden.
Demnach muss eigentlich die Libary richtig geladen werden.
Nur das Initialisieren funktioniert aus dieser nicht.
Der Zulieferer konnte mir bis jetzt keine wirkliche Antwort drauf geben.
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.02.14 17:15
Könnte mir vorstellen das der Arbeitsordner ein anderer ist wenn man seine Anwendung aus dem Autostart ausführt.
Starte doch mal deine Anwendung aus einer Kommandozeile während du nicht gerade im Programmordner bist. Wenns dann auch knallt liegst es vermutlich daran das die Library des Zulieferers selbst Abhängigkeiten hat die diese Library relativ zum Arbeitsordner suchst und nicht relativ zu seinem eigenen Lagerort.
|
|
m.keller 
      
Beiträge: 133
Win xp, Win 7
C# (VS 2008)
|
Verfasst: Mo 17.02.14 08:50
Hallo,
also laut Zulieferer, sucht die Libary in dem Ordner von wo aus die Software Startet wenn dort nichts zu finden ist in dem Userverzeichniss. Allerdings ist das was sie versucht zu finden in dem Ordner, von wo aus die Software Startet.
Oder kann es auch noch daran liegen, dass ich zur Zeit mit der Debugversion auf dem Embedded-System Teste, und nicht normal Installiert habe?
_________________ Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat. (Albert Einstein)
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mo 17.02.14 11:40
Zitat: | also laut Zulieferer, sucht die Libary in dem Ordner von wo aus die Software Startet wenn dort nichts zu finden ist in dem Userverzeichniss. Allerdings ist das was sie versucht zu finden in dem Ordner, von wo aus die Software Startet. |
Heißt für mich sie sucht im Autostart Ordner wenn aus dem Autostart gestartet wurde. Die Abhängigkeiten hast du da hin kopiert?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 17.02.14 12:59
Dann setze doch beim Start (vor dem Laden der Bibliothek) das aktuelle Verzeichnis mit SetCurrentDir auf das korrekte Verzeichnis, in deinem Fall dann wohl das Verzeichnis der Anwendung, sprich ExtractFilePath(ParamStr(0)).
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mo 17.02.14 13:17
Für diesen Beitrag haben gedankt: m.keller
|
|
m.keller 
      
Beiträge: 133
Win xp, Win 7
C# (VS 2008)
|
Verfasst: Mo 17.02.14 15:29
Aus dem Autostartordner funktioniert es ja...
Nur nicht mit der Möglichkeit aus der Registry.
_________________ Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat. (Albert Einstein)
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 17.02.14 15:32
m.keller hat folgendes geschrieben : | Aus dem Autostartordner funktioniert es ja...
Nur nicht mit der Möglichkeit aus der Registry. |
Wenn das Programm aufgerufen wird, ist das aktuelle Arbeitsverzeichnis nicht das, in dem deine Anwendung liegt. Simulieren kannst du das, indem du in Delphi unter Start --> Parameter ein anderes Arbeitsverzeichnis angibst, z.B. c:\temp (natürlich ohne irgendwelche Dateien dorthin zu kopieren). Wenn deine Anwendung dann noch funktioniert, wird sie es im Autostart auch tun.
|
|
m.keller 
      
Beiträge: 133
Win xp, Win 7
C# (VS 2008)
|
Verfasst: Mo 17.02.14 16:46
Also wenn ich die Daten aus dem Ordner z.B. auf den Desktop aus den Debuggordner kopiere, und Manuell starte, dann funktioniert alles.
Gebe ich in der Registry den Pfad an, startet die Software, aber wie ich beschrieben habe, erstellt er z.B. kein TraceListener und kann die Libary nicht Initialisieren.
_________________ Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat. (Albert Einstein)
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 17.02.14 17:50
Wie startest du denn manuell? Per Doppelklick? Dass das kein Problem ist, ist klar.
Du musst wie schon mehrfach geschrieben das Arbeitsverzeichnis auf einen anderen als den Ordner deiner Anwendung setzen. Entweder in Delphi, wenn du von dort startest, oder z.B. in einer Verknüpfung mit deiner Anwendung.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 17.02.14 17:52
@jaenicke: Das hier ist übrigens eine C#/.NET-Frage 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Für diesen Beitrag haben gedankt: m.keller
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 17.02.14 20:35
Das kommt davon, wenn man immer nur kurz reinschaut.
In Visual Studio geht das mit rechte Maustaste auf das Projekt rechts im Projektmappen-Explorer, Eigenschaften, dann links Debuggen und dann Arbeitsverzeichnis setzen.
Für diesen Beitrag haben gedankt: m.keller
|
|
m.keller 
      
Beiträge: 133
Win xp, Win 7
C# (VS 2008)
|
Verfasst: Di 18.02.14 18:27
Hallo,
es scheint mit dem Ordner verweis zu funktionieren.
Vielen Dank.
Da wäre ich sonst nicht drauf gekommen.
_________________ Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat. (Albert Einstein)
|
|