Win7 x64 - Programme in langem Pfad - nicht ausführbar

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
cipup
Junior Member
Junior Member
Posts: 4
Joined: 2010-07-21, 13:38 UTC
Location: Hinwil, Schweiz

Win7 x64 - Programme in langem Pfad - nicht ausführbar

Post by *cipup »

Als Druckeradministrator und Datenstromspezialist könnte ich den TotalCommander nicht mehr wegdenken.

Im TotalCommander (aktuell V 7.55a) arbeite ich sehr, sehr viel mit der Befehlszeile. Dort sende ich mittels dem lpr Command meine editierten Druckdateien auf die jeweiliegen Drucker. Mit der Ctrl+Pfeil nach unten tatse ist genial schnell der letzte Befehl in der Befehlszeile hervorgeholt.

Nun habe ich auf meinem Windwos 7 x64 System folgendes festgestellt:- Beim Ausführen des Befehls lpr -S 192.168.100.100 -P lp C:\Temp\spool.prn erscheint das Info Fenster <Datei nicht gefunden>.
- Klar, hab ich mir gedacht => der Windows 7 LPD Dienst ist noch nicht installiert. Standardmässig ist dieser Dienst nicht installiert.
- Beim gewollten Nachinstallieren habe ich gesehen, dass er aber schon installiert war.
- Nun habe ich eine "DOS-Eingabeaufforderung" geöffnet und dort den gleichen lpr Befehl eingegeben und erfolgreich abgesendet.
- Weitere Recherchen meinerseits haben ergeben, dass die Datei <lpr.exe> in folgendem Verzeichnis liegt:
c:\Windows\winsxs\amd64_microsoft-windows-p..ting-lprportmonitor_31bf3856ad364e35_6.1.7600.16385_none_0ff89328577f9fac\lpr.exe
- Nun sieht es für mich so aus, dass der TotalCommander mit diesem langen Pfad nichts anfangen kann.
- Meine Abhilfe habe ich so gemacht, dass ich die Datei <lpr.exe> kurzhand ins Verzeichnis c:\windows\ kopiert habe.

Kann ja sein, dass andere zufriedene TotalCommander Nutzer ähnliche Probleme festgestellt haben. Wollte dies nur mal kommunizieren, damit nicht zu lange gesucht wird.

Besten Dank nach wie vor für die Erstellung dieses unersetzlichen Tools.

Beste Grüsse und weiter so...
#41790 - very happy user

<Was haben wir vor TotalCommander gemacht???>
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hallo, cipup.

Habe den lpd Dämon nicht installiert. Aber ich wette einen Kasten Bier auf folgendes:
Die lpr.exe liegt im Verzeichnis C:\windows\system32\. (64-bit dort alles!)
Damit der Total Commander als 32-bit Programm darauf zugreifen darf, muß er folgendes ausführen:
C:\windows\sysnative\lpr -S 192.168.100.100 -P lp C:\Temp\spool.prn

Vgl. dazu auch dies: Explorer + Total Commander: Inhalte von system32 verschieden

OK. Feierabend. Gehe jetzt den gewonnenen Kasten Bier holen. Rechnung kommt später per P.M. :wink:

Grüße
Karl
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

2Karlchen

Ich würde da jetzt nicht um einen Kasten Bier wetten. :wink:
Für mich sieht das eher nach einer MSDN: isolierten Anwendung aus.

Frag mich allerdings nicht wie die Shell den Pfad bestimmt in dem die Exe abgelegt wurde...
Man könnte allerdings versuchen den 64 Bit Command-Prozessor zu überreden diese zu finden.
Z.B.mit einem Alias x64.

Gruß
Holger
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hi, Holger.

Das Alkoholhaltigste, was ich heute getrunken habe, war eine Apfelschorle. :wink:

Hm, sieht fast so aus, als bestünde eine verschwindend geringe Chance, dass diesmal SysWow64 nicht zwingend zugeschlagen hat.
lpr.exe existiert definitiv nicht in C:\windows\system32, nur lpremove.exe. Letztere findet T.C. nur, wenn er über den Alias SysNative auf System32 zugreift.
aber lpremove.exe stand ja nicht zur Debatte, sondern nur lpr.exe.

lpr.exe wird jedoch weder vom T.C. noch vom 64-bit cmd.exe gefunden, wenn man nicht den vollen Pfad voranstellt. Jedenfalls hier nicht.

Den Artikel über die isolierten Anwendungen habe ich nun im ersten Anlauf nicht so wirklich verstanden. :oops:

Grüße,
Karl
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Karlchen wrote:lpr.exe existiert definitiv nicht in C:\windows\system32
Zugegeben, da ich hier(@home) ebenfalls keinen Netzwerkdrucker installiert habe, und die Installation vielleicht lpr.exe wirklich nach System32(native) kopiert, könntest du ja doch noch einen Anspruch auf einen 24Bit Prozessor haben. :wink:
Den Artikel über die isolierten Anwendungen habe ich nun im ersten Anlauf nicht so wirklich verstanden.
Kam mir auch etwas seltsam vor, da Side-By-Side(Winsxs) Installationen normalerweise nur den Zugriff auf verschiedene DLL(und nicht Exe)-Versionen regeln.
Da fehlte mir auch der Link, wie der Aufruf einer solchen Exe vom System aufgelöst werden sollte. :?
cipup wrote:Meine Abhilfe habe ich so gemacht, dass ich die Datei <lpr.exe> kurzhand ins Verzeichnis c:\windows\ kopiert habe.
Es nicht unbedingt ratsam (oder bei Nicht-Administrator-Accounts überhaupt möglich) eine Exe aus System32/Winsxs einfach nach SysWow64 bzw. %windir% zu kopieren.
Deshalb mein Hinweis auf den alias x64, den man auch als alias lpr definieren könnte (wenn man dieses eine 64bit Programm ständig in der TC-Kommandozeile benutzen möchte).

Gruß
Holger
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

2Karlchen

Okay, der Bierkasten sei dir gegönnt. :D
lpr.exe wird tatsächlich bei der Installation des "LPR port monitor" in System32 (native) kopiert.

Es gibt übrigens einen sehr simplen Workaround um lpr.exe dann doch noch aus dem TC heraus ohne großartige Klimmzüge zu benutzen.
In den erweiterten Systemeinstellungen bei den Umgebungsvariablen einfach der Path-Variable den roten Teil am Ende hinzufügen:
%SystemRoot%\system32;[...];%SystemRoot%\sysnative;
Gruß
Holger
User avatar
cipup
Junior Member
Junior Member
Posts: 4
Joined: 2010-07-21, 13:38 UTC
Location: Hinwil, Schweiz

Post by *cipup »

Hallo HolgerK

Du schreibst:
In den erweiterten Systemeinstellungen bei den Umgebungsvariablen einfach der Path-Variable ;%SystemRoot%\sysnative; hinzufügen.
Dort liegt aber die lpr.exe gar nicht.

All die anderen kleinen "DOS"-Helferchen, wie ping, tracert, arp, usw.. können ja in der Befehlszeile von TC problemlos aufgerufen werden.

Zu Deinem Tip noch ne Frage: Bin noch nicht ganz sattelfest in der Win7 Welt. Wo finde ich die Umgebungsvariablen-Einstellung bei den erweiterten Systemeinstellungen? Danke für nen Tip.

Gruss cipup
#41790 - very happy user

<Was haben wir vor TotalCommander gemacht???>
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

cipup wrote:Dort liegt aber die lpr.exe gar nicht.
Das Aktivieren der Windowsfunktion "LPR Anschlussmoniitor" kopiert die EXE dorthin.
All die anderen kleinen "DOS"-Helferchen, wie ping, tracert, arp, usw.. können ja in der Befehlszeile von TC problemlos aufgerufen werden.
Nur wenn sie in der 32Bit Version in SySWow64 liegen. Alles was ausschließlich als 64Bit Version in SysNative liegt, wird nicht von selbst gefunden.
Wo finde ich die Umgebungsvariablen-Einstellung bei den erweiterten Systemeinstellungen?
<Win+R>

Code: Select all

rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl
Im Tab "Erweitert" unten der Button [Umgebungsvariablen], Systemvariablen : "Path" [Bearbeiten]
Mit Vorsicht vorzunehmen, nicht das man aus Versehen etwas löscht!

Oder alternative Wege zu diesem Dialog:
- <Win+Pause> Link(auf der linken Seite):"Erweiterte Systemeinstellungen"...
oder:
- Start -> Rechtklick auf Computer -> Eigenschaften -> Link:"Erweiterte Systemeinstellungen"...
Oder noch länger
- Start -> Systemsteuerung -> System und Sicherheit -> System -> Link:"Erweiterte Systemeinstellungen"...

Gruß
Holger
User avatar
cipup
Junior Member
Junior Member
Posts: 4
Joined: 2010-07-21, 13:38 UTC
Location: Hinwil, Schweiz

Post by *cipup »

Danke vielmal für Deinen/Euren Input.
Ihr seit echt stark drauf.

Danke nochmal.
Gruss cipup
#41790 - very happy user

<Was haben wir vor TotalCommander gemacht???>
Post Reply