ShellExecute funktioniert nicht unter Windows 7

Hallo an die Experten

Ich möchte folgende erreichen und zwar unter VB6 soll ein exe Programm gestartet werden das ganze soll unter Windows 7 Funktionieren und unter einem Lokalen (nicht Administrator) User laufen. Das ganze soll auch noch unter XP laufen also es dürfen kein vb.net Funktionen verwendet werden.

Ich habe es mit folgenden folgenden Codeteilen in vb6 programmiert.

Call ShellExecute(GetDesktopWindow(), "Open", FileName, 0, 0, 1)

Da passiert unter Windows 7 absolut gar nichts

Ich habe es dann unter noch mit folgendem Code probiert

Set ObjShell = CreateObject("Shell.Application")
Call ObjShell.ShellExecute(FileName, , , , 1)

Aber da gibt’s bekomme ich nur die Meldung dass das File nicht Existiert
Unter XP Funktionieren beide Codeteile .

Wie kann ich die Funktionen unter windows7 zum laufen zu bringen oder gibst da Alternativen wie ich unter VB 6 unter obigen Voraussetzungen ein Exe-Programm starten kann.

Mit freundlichen Grüßen
Andreas

Hallo,

ich kenne windows7 noch nicht so gut, habe VB6 da noch nich installiert.

Hast Du schon mal Shell probiert? Den VB-Befehl ohne API?

Gruß Rainer

Hallo Rainer

Danke für die Idee aber wieder mal etwas das unter XP geht aber nicht unter windows7

Die Fehlermeldung lautet Runtime error 53 File not found

Mit freundlichen Grüßen
Andreas

Hallo,

Die Fehlermeldung lautet Runtime error 53 File not found

‚File not found‘ …

wenn Pfad und Dateiname stimmen, dann passiert das, wenn deer String mit dem Pfad und Dateinamen ein Leerzeichen enthalten.
Falls das das Problem ist, dann schreibe vor den Pfad mal ein …

Chr(34) &

das behebt das Problem dann.

Gruß Rainer

Hallo Rainer

Hat auch keine Wirkung und der Pfad sollte auch stimmen den unter Xp geht’s ja

Mit freundlichen Grüßen
Andreas

Hallo Andreas,

Hat auch keine Wirkung und der Pfad sollte auch stimmen den
unter Xp geht’s ja

schade, dann gehen mir die Ideen aus.
Dann danke ich für die Warnung vor Windows 7. :smile:
Mein VB6 ist mir dann doch wichtiger …

Gruß Rainer

Hat auch keine Wirkung und der Pfad sollte auch stimmen den
unter Xp geht’s ja

Hallo Andreas,

scheinbar geht es unter Vista auch nicht.
Kannst du gut Englisch:
http://www.vbforums.com/showpost.php?p=3627300&postc…

Ansonsten ich habe gegooglet, shellexecute ist ja eine API also haben wohl alle Programme die auf Windows 7 laufen das gleiche problem.

Schau halt mal hier, vllt. liest du irgdwo einen workaround.
Äh, Adminrechte hast du?

http://www.google.de/#num=100&hl=de&q=%2Bshellexecut…

http://www.google.de/#num=100&hl=de&q=%2Bshellexecut…

Sorry, konkret helfen kann ich nicht.

Gruß
Reinhard

Hat auch keine Wirkung und der Pfad sollte auch stimmen den
unter Xp geht’s ja

hallo Andreas,

was Rainer vorschlug ist ja nur Wirkungsbekämpfung aber nicht Ursachenbekämpfung.

Benenne alles um, mit Einhaltung der erlaubten Zeichen der guten alten 8.3 Regel.
Klappt natürlich nihct wenn das auf Fremdrechnern laufen soll und MS selbst benennt da Ordner „Dokumente und Einstellungen“.
Ich sah schon im Programmierungsbrett dann seltsame Konstrukte mit Gänsefüßchen und Hochkomma um das in einer ich sag mal Dos-Ebene zum Laufen zu bringen.

Zurück zum Thema, gibts in Win7 noch Start—Ausführen?
Klappt es da daß du da eingibst:
Datei.exe
oder
command /c Datei.exe
oder cmd Datei.exe
o.ä.

Dann könntest du doch eine Batch schreiben mit dem Inhalt:

Start Datei.exe

und diese batch dann mit
S=shell(„C:\test\Datei.bat“,6)
starten.

Auf das Anwendungsfenster dieser Exe hast du dann o wenig Einfluß falls nötig. Dann müßte man mit API FindWindow das fenster suchen, die hwnd ermitteln.
Dann kann man schon begrenzt das Fenster/Anwendung manipulieren, z.b. schliessen.

Nur so eine Idee.

Gruß
Reinhard