Autor Beitrag
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 23.01.07 13:11 
Hi

ich hab irgendwie hier ein seltsames Problem. Ich hab Win2k und bentutze ShellExecute zum Dateiöffnen. Seit neuestem funktioniert das aber nichtmehr richtig. Hatte erst ein Programm, daraus hab ich z.B. dpr-Dateien gestartet. Habs umgebaut-geht nichtmehr. So weit, so gut. Nur leider liegts nicht dran, dass ich das Programm geändert habe. Hab von nem Backup die alte Version gestartet. Ergebnis: geht nicht mehr. er kann keine dpr (und auch keine txt, dat usw.) öffnen. ABER: er kann xar, bmp, pdf usw. öffnen!? Wo ist da jetzt der Fehler? es müsste ja mit Win zusammenhängen. Ich hab auch schon das ShellExecute in ein andres Programm gebaut, gleicher Fehler.

Da frag ich euch als erfahrene Computer-Freaks: Woran liegts? Meiner Meinung nach eher an Windoof, aber das hilft mir leider auch nicht weiter.

XION

//HINWEIS: Es kommt KEINE Fehlermeldung, Result von ShellExecute ist 31

Zitat:

Ist keine Zuordnung für den angegebenen Dateitypen oder besteht keine Zuordnung für die angegebene Aktion innerhalb des Dateitypen, gibt die ShellExecute() Funktion den Wert 31 zurück.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 23.01.07 13:24 
Das ist doch der Fehler. :? Es ist anscheinend keine Anwendung oder Aktion mit dem Dateityp verknüpft.

Kannst du die besagten Dateien denn per Doppelklick aus dem Explorer öffnen?
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 23.01.07 13:28 
ja (mal von dat abgesehen) mit txt würd ichs auch noch verstehen, weil ich da ein Prog selbst geschrieben habe, aber dpr kann ich klar so öffnen (is ja das Delphi-Format). Außerdem hat er sonst immer das Programm-Auswahl-Fenster angezeigt, wenn er kein entsprechendes Programm zum Öffnen gefunden hat.

//EDIT: Nochma gecheckt, jetzt ist das Result 3...

Zitat:

Path was not found.

sicher nicht...

und bei dprs ist es
Zitat:

File was not found

stimmt doch gar nicht :bawling: (oder doch *such*)

die dateien sind aber da, wo der Pfad "hinzeigt"...

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
RainerO
Hält's aus hier
Beiträge: 2

WXP, W2K, W2003Server
Delphi 2007
BeitragVerfasst: Di 23.01.07 13:56 
Hm - kann das evtl. mit den Pfad- oder Dateinamen (mit Leerzeichen) zusammenhängen?
Wenn die Zuweisung in der Registry zb bei unserem Programm (Endung .pdp) -unter HKLM\Software\Classes\RPWProjectFile\Shell\open\command =[c:\RLW.Mobil\binrpw\rpw20.exe "%1"]
steht, geht es immer, wenn da nur ...rpw20.exe %1 steht, ging es nur bei Pfad-Dateinamen OHNE Leerzeichen darin.
Hast Du die doppelclicks auf dieselben dateien versucht oder auf andere Beispiele?
Es scheint aber auf jeden Fall mit den Dateiregistrierungen zu tun zu haben - probier Dein Prog doch mal auf einem anderen PC aus.
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 23.01.07 14:11 
Hi,

mit Leerzeichen hats nichts zu tun :( und ich hab auch genau die Dateien per doppelklick probiert wie im Programm.
auf nem andren Rechner, das wär ne Idee, weil da müssts ja gehen, weil ShellExecute mit dpr ging ja bei mir vorher auch...mal gucken...(hab grad keine Zeit, später dann)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
evofan
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 23.01.07 23:32 
ich hab keine antwort auf deine frage, wollt dich was fragen, wie du das mit dem ShellExecute machst, also was im quelltext steht!
wäre nett wenn du mir den mal zeigen könntest denn ich versuch auch grad so nen programm hinzukriegen, wo man aus delphi andere programme öffnen kann
Danke im Vorraus!!!!!!
mfg EVOFAN
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 24.01.07 00:20 
@user profile iconevofan:
Erstmal :welcome: hier im Forum!
Und was die Frage nach ShellExecute angeht:
Es gibt hier im Forum auch eine Suche! Und die hätte dir zu ShellExecute sehr viele Ergebnisse mit einigem Code geliefert ;-). Unter anderem dieses:
www.delphi-library.d...ghlight=shellexecute
Wichtig: IMMER den absoluten Pfad mit angeben.
Mehr zu ShellExecute direkt von MS:
msdn.microsoft.com/l...ons/shellexecute.asp


Zurück zum Thema:
Folgender Vorschlag:
Sieh doch mal nach, was in der Registry unter HKEY_CLASSES_ROOT\.txt bei (Standard) steht. Dieser Wert (meistens txtfile) müsste dann als Schlüssel ebenfalls unter HKEY_CLASSES_ROOT stehen (wie .txt). Klick auf diesen Schlüssel mal mit rechts drauf und dann auf exportieren. Dann wird der komplette Inhalt in eine Datei gespeichert. Öffne die mit einem Editor (im Kontextmenü vom Explorer Bearbeiten) und poste den Inhalt hier.

Da sehen wir ja dann ob da alles in Ordnung ist oder ob da ein Fehler ist... ;-)
Bei .txt kann zwar eigentlich nicht viel falsch sein, aber mal sehen.

Ja, und den Code solltest du vielleicht auch posten, auch wenn da ja eigentlich nicht viel falsch sein kann...
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 24.01.07 16:22 
Also:

der Code:
ausblenden Delphi-Quelltext
1:
 ShellExecute(Application.handle, 'open', PChar(FileName), nilnil, SW_SHOW); //@evofan: ShellAPI einbinden					


so, ich glaub ich hab den Fehler an sich gefunden:
Bei allen Dateien, die nicht zu öffnen sind, sagt Windoof unter Eigenschaften "unbekannte Anwendung". Trotzdem malt er das Bildchen richtig hin, und doppelklick funzt auch. Wenn ich z.B. bei txt auf WordPad umschalte, dann steht da WordPad drinne, wenn ich mein eignes nehme, unbekannte Andwendung. Mit Wordpad kann ichs auch per ShellExecute öffnen. Außerdem löscht er auch immer mein Prog aus der "Öffnen mit"-Liste...wie soll ich das jetzt zum laufen bringen...

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Do 25.01.07 19:47 
ausblenden volle Höhe Registry Schnipsel
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
[HKEY_CLASSES_ROOT\.txt]
@="txtfile"
"Content Type"="text/plain"

[HKEY_CLASSES_ROOT\.txt\OpenWithProgIDs]
"opendocument.WriterDocument.1"=" "
"opendocument.CalcDocument.1"=" "

[HKEY_CLASSES_ROOT\.txt\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\.txt\ShellEx]

[HKEY_CLASSES_ROOT\.txt\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{EAB841A0-9550-11cf-8C16-00805F1408F3}"

[HKEY_CLASSES_ROOT\.txt\ShellNew]
"NullFile"=""

[...]


[HKEY_CLASSES_ROOT\txtfile]
@="Textdatei"

[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,35,\
  00,32,00,00,00

[HKEY_CLASSES_ROOT\txtfile\shell]

[HKEY_CLASSES_ROOT\txtfile\shell\open]

[HKEY_CLASSES_ROOT\txtfile\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00

[HKEY_CLASSES_ROOT\txtfile\shell\print]

[HKEY_CLASSES_ROOT\txtfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\txtfile\shell\printto]

[HKEY_CLASSES_ROOT\txtfile\shell\printto\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6e,00,6f,00,\
  74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,70,00,74,\
  00,20,00,22,00,25,00,31,00,22,00,20,00,22,00,25,00,32,00,22,00,20,00,22,00,\
  25,00,33,00,22,00,20,00,22,00,25,00,34,00,22,00,00,00

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 26.01.07 09:18 
Genau da liegt der Fehler! Bei dir steht jetzt unter shell\open\command
Zitat:
%SystemRoot%\system32\NOTEPAD.EXE %1

Wenn jetzt in der Datei ein Leerzeichen drin ist, dann sieht das Kommando so aus:
ausblenden Quelltext
1:
%SystemRoot%\system32\NOTEPAD.EXE c:\my folder\xy.txt					

c:\my existiert aber nicht, ist aber der erste übergebene Parameter (und folder\xy.txt ein weiterer)...

Richtig ist es so:
ausblenden Quelltext
1:
%SystemRoot%\system32\NOTEPAD.EXE "%1"					

Dabei kommt dann das raus:
ausblenden Quelltext
1:
%SystemRoot%\system32\NOTEPAD.EXE "c:\my folder\xy.txt"					

Der gesamte Pfad mit Leerzeichen ist ein Parameter...
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Fr 26.01.07 15:31 
thx

hört sich logisch an, aber:

a) vorher hats ja schonmal funktioniert, hat Win da in der Reg was geändert?
b) obwohl ich jetzt Anführungszeichen um das %1 in der Registry gemacht habe steht immernoch "unbekannte Anwendung" in den Eigenschaften und ich kanns nicht öffnen

//Edit: wenns was mit den Leerzeichen zu tun hat, dann will ich mich gleichmal bei euch und v.a. bei RainerO entschuldigen :flehan:

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 26.01.07 16:17 
Ja, keine Ahnung, bei mir sind in der Registry welche drum... Aber es funktioniert auch ohne, wie ich grad gemerkt habe. Ich hab die einfach mal weggemacht.

Ich werd mal alle deine Registry-Einträge übernehmen (habs bisher nur manuell verglichen ;-))...
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Fr 26.01.07 16:36 
thx.

es ist ja auch so, wenn ich z.B. "Ultima Online Samurai Empire" starte, dann sind da massig Leerzeichen drin, aber es funktioniert (weils eine exe ist...da sind aber auch Anführungszeichen drin ("%1" %* ))

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Xion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Sa 27.01.07 11:48 
Mir ist aufgefallen, dass er meine pas-Dateien als unbekanntes Format anzeigt, d.h. bei doppelklick kommt das "Öffnen mit" Fenster... :roll: ...könnte es evtl damit zu tun haben, dass ich unter Taskleiste/Eigenschaften/Erweitert auf den Löschen-Knopf gedrückt hab...da steht "Klicken Sie auf die Schalftfläche "Löschen" um Dokumente, Programme und Websites zu löschen, auf die Sie vor kurzem zugegriffen haben"...damit wollt ich den Verlauf löschen, hat auch geklappt, aber theorethisch könnts sein, dass daran auch der Fehler mit den Dateien kommt...

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)