AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Delphi CreateProces findet eine Programmbibliothek nicht
Thema durchsuchen
Ansicht
Themen-Optionen

CreateProces findet eine Programmbibliothek nicht

Ein Thema von Turbo78 · begonnen am 19. Apr 2010 · letzter Beitrag vom 20. Apr 2010
Antwort Antwort
Seite 2 von 3     12 3      
Turbo78

Registriert seit: 19. Apr 2010
Ort: Neuried
32 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 19. Apr 2010, 21:52
Zitat von SirThornberry:
1) Ist das nun ein Delphiproblem oder ein allgemeines? Also tritt der Fehler nur beim Aufruf von CreateProcess auf oder auch wenn du das Programm per Doppeklick öffnest?

2) Existieren die bemängelten Dateien auf dem Rechner?
Das Problem tritt nur beim Aufruf von AutoCAD über CreateProces in Delphi auf - ein direkter Aufruf läuft problemlos.

Die bemängelte Datei existiert auf beiden Rechnern. Durch das DependencyWalker habe ich festgestellt, dass eine untergeordnete Bibliothek auf dem PC nicht vorhanden war. Das Kopieren dieser Datei auf den PC hat leider Nichts gebracht.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 19. Apr 2010, 22:22
Wenn das so ist hast du vermutlich beim CreateProcess nicht das WorkingDirectory angegeben. Und in der Verknüpfung über die du das Programm sonst startest steht sicher das richtige Arbeitsverzeichnis drin.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Turbo78

Registriert seit: 19. Apr 2010
Ort: Neuried
32 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 19. Apr 2010, 22:51
Zitat von SirThornberry:
Wenn das so ist hast du vermutlich beim CreateProcess nicht das WorkingDirectory angegeben. Und in der Verknüpfung über die du das Programm sonst startest steht sicher das richtige Arbeitsverzeichnis drin.
Sowohl Delphi als auch AutoCAD sind an beiden Rechnern in denselben Verzeichnis installiert.
Die Command Line ist identisch:

'C:\Programme\...\acad.exe D:\Data\...\Zeichnung.dxf'

Diese Comand Line wird im cmd-Window (als DOS-command) fehlerfrei ausgeführt.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 07:52
Hast du denn schon probiert bei CreateProcess das korrekte Arbeitsverzeichnis anzugeben?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Turbo78

Registriert seit: 19. Apr 2010
Ort: Neuried
32 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 08:54
Zitat von SirThornberry:
Hast du denn schon probiert bei CreateProcess das korrekte Arbeitsverzeichnis anzugeben?
Delphi-Quellcode:
      Ret := CreateProcess(nil,
                           PCmd,
                           nil, nil, false,
                           NORMAL_PRIORITY_CLASS,
                           nil, nil,
                           StartupInfo,
                           Processinfo);
PCmd ist die oben genannte Kommandozeile.

Soll ich als Arbeitsverzeichnis das Programmverzeichnis oder das Verzeichnis mit den Daten angeben?
Welches Parameter ist dies?

Was ich nicht geschrieben habe, CreateProcess liefert beim o.g. Fehler kein Error Code (also, Ret ist True).

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 09:01
Hier kannst du es nachlesen:
http://msdn.microsoft.com/en-us/libr...25(VS.85).aspx

Der Parameter welcher angegeben werden sollte lautet: lpCurrentDirectory
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Turbo78

Registriert seit: 19. Apr 2010
Ort: Neuried
32 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 09:24
Zitat von SirThornberry:
Hier kannst du es nachlesen:
http://msdn.microsoft.com/en-us/libr...25(VS.85).aspx

Der Parameter welcher angegeben werden sollte lautet: lpCurrentDirectory
Danke, aber die Fehlermeldung bleibt unabhängig davon was für ein CurrentDirectory ich angegeben habe.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#18

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 09:30
Du musst den Parameter lpEnvironment initialisieren.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#19

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 09:33
Welchen Wert hast du denn für das CurrentDirectory angegeben? Das gleiche wie in der Verknüpfung über die du normalerweise das Programm startest?

@Dezipaitor: Muss man das angeben?
Laut MSDN:
Zitat:
A pointer to the environment block for the new process. If this parameter is NULL, the new process uses the environment of the calling process.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Turbo78

Registriert seit: 19. Apr 2010
Ort: Neuried
32 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: CreateProces findet eine Programmbibliothek nicht

  Alt 20. Apr 2010, 09:53
Zitat von SirThornberry:
Welchen Wert hast du denn für das CurrentDirectory angegeben? Das gleiche wie in der Verknüpfung über die du normalerweise das Programm startest?

@Dezipaitor: Muss man das angeben?
Laut MSDN:
Zitat:
A pointer to the environment block for the new process. If this parameter is NULL, the new process uses the environment of the calling process.
Ich habe die Lösung gefunden (sie ist nicht sauber, da ich ein Verzeichniss direkt angegeben habe), obwohl mir nicht klar ist warum es auf dem Laptop ohne diese Änderung funktioniert. Also, als CurrentDir habe ich nicht das Programmverzeichnis sondern das Verzeichnis in welchem sich die gemeldete dll befindet angegeben:

C:\Programme\Gemeinsame Dateien\Autodesk Shared\

Das Problem liegt offensichtlich darin, dass beim Programmaufruf über CreateProces der Pfad mit den Bibliotheken nicht bekannt ist.

Kann es sein, dass das CreateProcess die PATH Variable nicht benutzt? Dies wäre die einzige Erklärung, da ich das Programm direkt problemlos aufrufen kann.
Es bleibt aber unerklärbar warum es am Laptop funktioniert.

Also, warum CreateProcess den "shared" Pfad (Gemeinsame Dateien) am Laptop durchsucht und am PC nicht?

Darf man als CurrentDirectory die PATH Variable angeben?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz