[kein Bug] [gelöst] Falsches Programm wird gestartet

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

[kein Bug] [gelöst] Falsches Programm wird gestartet

Post by *Dalai »

Folgende Verzeichnis-Situation:

Code: Select all

D:\Programme\AutoIt3\
D:\Programme\AutoIt3.3.0.0\
Im rechten Panel des TC ist das Verzeichnis AutoIt3.3.0.0 geöffnet, im linken Panel ein Verzeichnis, in dem ein zu startendes AutoIt-Skript liegt.

In die Kommandozeile des TC wird folgendes per Strg+Enter (rechtes Panel) bzw. Strg+Shift+Enter (linkes Panel) eingegeben:

Code: Select all

AutoIt3.exe h:\irgendein_skript.au3
Was würde man erwarten?
Die AutoIt3.exe im Verzeichnis AutoIt3.3.0.0 wird ausgeführt.

Was passiert stattdessen?
Die AutoIt3.exe im Verzeichnis AutoIt3 wird ausgeführt.

Interessant dabei: der Process Explorer gibt für die gestartete AutoIt3.exe das korrekte Arbeitsverzeichnis AutoIt3.3.0.0 an, aber eben die AutoIt3.exe aus dem falschen Verzeichnis.

Woran liegt das? Ich weiß, dass man dafür den Workaround Strg+Shift+Enter für beide Panels benutzen kann, aber dann wird die Kommandozeile immer so lang - in Wirklichkeit liegt das Skript in Verzeichnisebene 8...

MfG Dalai
Last edited by Dalai on 2010-02-17, 22:17 UTC, edited 1 time in total.
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Vermutung:

Der "current path" des TCs wird nur bei einem Verzeichniswechsel und nicht bei einem Panelwechsel geändert.

Wenn du also als letzten Verzeichniswechsel den Pfad im linken Panel eingestellt hast und dann per <Tab> in das rechte Panel wechselst ohne das Verzeichnis zu wechseln ...

Gruß
Holger

Edit: Falsche Vermutung, das macht der TC schon richtig ;)
Last edited by HolgerK on 2010-02-17, 21:25 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Ich habe aber mit einem frisch gestarteten TC erst links und danach rechts in die genannten Verzeichnisse gewechselt. Das Verzeichnis \Programme\AutoIt3 ist also nie berührt worden. Im Verzeichnis des linken Panels liegt zudem gar keine AutoIt3.exe. Außerdem sieht man mit Process Explorer die komplette Kommandozeile

Code: Select all

"D:\Programme\AutoIt3\AutoIt3.exe" h:\irgendein_skript.au3
statt - wie man erwarten würde -

Code: Select all

"D:\Programme\AutoIt3.3.0.0\AutoIt3.exe" h:\irgendein_skript.au3
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Oder noch einfacheres Szenario:
  • TC starten
  • Verzeichnis D:\Programme\AutoIt3.3.0.0\Aut2Exe öffnen
  • Aut2Exe mit Strg+Enter in die Kommandozeile befördern und ein "/?" ergänzen
  • Enter drücken, um den Befehl auszuführen
Selbes Spiel: es wird die falsche Exe ausgeführt. Ich hatte mich grad zu früh gefreut, dass es den Schalter /nodecompile wieder gibt (leider ist dem nicht so)...

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Welche Zugriffsrechte hast du als momentaner User auf die Datei "D:\Programme\AutoIt3.3.0.0\AutoIt3.exe"?

Ich kann in einem ähnlichen Szenario das Problem nachstellen, wenn ich momentan keinerlei Rechte (Full control [X] Deny ) habe :!:

:arrow: Anstelle einer Fehlermeldung

Code: Select all

---------------------------
Total Commander
---------------------------
Error executing program!
---------------------------
OK   
---------------------------
wie sie bei einem Doppelklick auf den Dateinamen im Panel ausgegeben wird,
..
wird beim Starten aus der Kommandozeile einfach die entsprechende Exe aus dem Suchpfad bzw. "App Paths registry key" gestartet :!:

TC7.50a, Vista x86

Gruß
Holger
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

HolgerK wrote:Welche Zugriffsrechte hast du als momentaner User auf die Datei "D:\Programme\AutoIt3.3.0.0\AutoIt3.exe"?
Dat is ne FAT32-Partition ;).

Und im Pfad steht das Verzeichnis auch nicht, weder das AutoIt3 noch das AutoIt3.3.0.0.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Okay bei einer FAT-Partition passt das mit den fehlenden Rechten als Grund natürlich nicht.

Was passiert denn wenn du die Exe mit Doppelklick startest?

Gruß
Holger

Edit: hast du einen Eintrag in der Registry unter

Code: Select all

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AutoIt3.exe] 
Last edited by HolgerK on 2010-02-17, 21:34 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

HolgerK wrote:Was passiert denn wenn du die Exe mit Doppelklick startest?
Dann startet natürlich die richtige EXE, so wie man es erwartet. Bringt mir aber leider nix, weil ich Parameter übergeben muss.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Tja, dann habe ich allerdings auch keine Idee mehr.
Nachstellen kann ich das auch nicht, da ich weder Autoit noch eine FAT-Partition habe.
Ein Test mit Notepad.exe in vergleichbaren Pfaden auf einer NTFS_Partition hat hier allerdings keine Auffälligkeiten gezeigt.

Gruß
Holger
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Das hat auch nichts mit dem Dateisystem zu tun. Ich hab mir mal den Spaß gemacht und beide Verzeichnisse in dieselbe Ebene eines NTFS kopiert und dort wieder die Aut2Exe per Kommandozeile ausgeführt: selbes Ergebnis (Aut2Exe aus dem Verzeichnis AutoIt3 wird gestartet).

Dass es am AutoIt hängt, ist zwar nicht unmöglich, glaube ich aber nicht.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hallo, Dalai.
Dalai wrote:Folgende Verzeichnis-Situation:

Code: Select all

D:\Programme\AutoIt3\
D:\Programme\AutoIt3.3.0.0\
Im rechten Panel des TC ist das Verzeichnis AutoIt3.3.0.0 geöffnet, im linken Panel ein Verzeichnis, in dem ein zu startendes AutoIt-Skript liegt.

In die Kommandozeile des TC wird folgendes per Strg+Enter (rechtes Panel) bzw. Strg+Shift+Enter (linkes Panel) eingegeben:

Code: Select all

AutoIt3.exe h:\irgendein_skript.au3
Was würde man erwarten?
Die AutoIt3.exe im Verzeichnis AutoIt3.3.0.0 wird ausgeführt.
Aber doch nur, wenn das rechte Panel auch den Focus hat, während du in der Kommandzeile den Befehl eintippst.

Karl
Last edited by karlchen on 2010-02-17, 22:13 UTC, edited 1 time in total.
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Re: [Bug] Falsches Programm wird gestartet

Post by *karlchen »

Hallo, Dalai.
Dalai wrote:Im Verzeichnis des linken Panels liegt zudem gar keine AutoIt3.exe.
Außerdem sieht man mit Process Explorer die komplette Kommandozeile

Code: Select all

"D:\Programme\AutoIt3\AutoIt3.exe" h:\irgendein_skript.au3
statt - wie man erwarten würde -

Code: Select all

"D:\Programme\AutoIt3.3.0.0\AutoIt3.exe" h:\irgendein_skript.au3
Das kann nicht korrekt sein. Wenn Process Explorer anzeigt, dass der Pfad der ausgeführten Datei D:\Programme\AutoIt3\AutoIt3.exe lautet, dann ist das auch so. Dann existiert in dem Verzeichnis D:\Programme\AutoIt3 eine ausführbare Datei AutoIt3.exe. Der Process Explorer zeigt nur an was ist. Der reimt sich nichts zusammen. Und weder Total Commander, noch Windows können eine Programmdatei starten, die nicht existiert.

Aber du bist mir auch zu schnell, nämlich ohne es geprüft zu haben, über Holgers Frage hinweggegangen, ob du in der Registry diesen Eintrag hast und was dort ggf. drinsteht: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AutoIt3.exe].

Ich erinnere mich noch an einen ähnlichen Thread, bei dem genau so ein Registry Eintrag unter [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths die Erklärung dafür war, weshalb immer der falsche Firefox hochgezogen wurde: Starting firefox in C:\Program Files instead of....

Grüße
Karl
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

karlchen wrote:Das kann nicht korrekt sein. Wenn Process Explorer anzeigt, dass der Pfad der ausgeführten Datei D:\Programme\AutoIt3\AutoIt3.exe lautet, dann ist das auch so. Dann existiert in dem Verzeichnis D:\Programme\AutoIt3 eine ausführbare Datei AutoIt3.exe.
Ja natürlich gibt's die dort! Hab ich was anderes geschrieben? Es gibt in beiden Verzeichnissen eine solche Datei, weil ich mit versch. AutoIt-Versionen entwickle.
karlchen wrote:Aber du bist mir auch zu schnell, nämlich ohne es geprüft zu haben, über Holgers Frage hinweggegangen, ob du in der Registry diesen Eintrag hast und was dort ggf. drinsteht: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AutoIt3.exe].
Dem ist so. Ich hatte das wohl überlesen, weil davor von Suchpfad (=%PATH%) die Rede war und dort ist keines der Verzeichnisse zu finden.

Wenn ich diese Registry-Zweige umbenenne, bekomme ich das erwartete Verhalten. Das ist also kein Bug vom TC, sondern ein weiteres, dämliches Verhalten von Windows :evil:, auch wenn ich mir sicher bin, dass das seinen Sinn hat.

Wieso funktioniert es aber, wenn ich dasselbe Prozedere in einer CMD ausführe? Prüft die nicht diesen Registry-Pfad?

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hallo, Dalai.
Wenn ich diese Registry-Zweige umbenenne, bekomme ich das erwartete Verhalten. Das ist also kein Bug vom TC, sondern ein weiteres, dämliches Verhalten von Windows
Das nennt man ein Feature. Damit stellt Windows sicher, das eine ausführbare Datei auch dann gefunden wird, wenn sie nicht im aktuellen Ordner liegt und nicht über %PATH% gefunden werden kann. :wink:
Wieso funktioniert es aber, wenn ich dasselbe Prozedere in einer CMD ausführe? Prüft die nicht diesen Registry-Pfad?
Gute Frage. Das müßte ich erst mal nachsuchen auf den Seiten von Microsoft.

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

Re: [Bug] Falsches Programm wird gestartet

Post by *HolgerK »

oops. Jetzt erinnere ich mich wieder.
Und damals habe ich die Frage gestellt warum die Suchreihenfolge:

- Momentanes Verzeichnis
- %Windir%
- %Windir%/System32
- %Path% Variable
- AppPath registry key

In der Kommandozeile nicht in dieser Reihenfolge beachtet wird, in den anderen Methoden des Aufrufs im TC (Doppelklick, Kontextmenu) jedoch sehr wohl.
Also doch ein leicht inkonsistentes Verhalten des TC?

Gruß
Holger
Post Reply