Benutzer mit den meisten Antworten
ProcessShellCommand

Frage
-
Hallo,
ich habe eine SDI-Anwendung, die zum Teil über eine BAT-Datei gestartet wird und damit auch die Übergabeparameter mit bekommt, z.B sieht der Inhalt einer BAT-Datei so aus:
"C:\a\b\c 1\xyz.exe" /KLM "Y:\g\h\i\123.KLM"
Wird die BAT-Datei nun gestartet, wird dadurch die SDI-Anwendung xyz.exe ausgeführt und die Übergabeparameter übergeben. Wenn nun die übergebene Datei "Y:\g\h\i\123.KLM" tatsächlich nicht vorhanden ist, kommt folgende Meldung im Dialogfenster:
Y:\g\h\i\123.KLM wurde nicht gefunden.
Diese Dialogfenster darf nicht erscheinen. Leider finde ich aber die Stelle nicht, wo das Dialogfenster gestartet/angezeigt wird. Ich habe es soweit eingegrenzt, dass es mit der Funktion ProcessShellCommand zu tun haben könnte. In meiner Funktion InitInstance() steht folgender Programmcode:
if (!ProcessShellCommand(cmdInfo))
return FALSE;Was muss ich tun, damit das oben genannte Dialogfenster nicht erscheint?
Danke im Voraus und viele Grüße
Bernd
Antworten
-
Hallo,
folgender Programmcode hat mich schon etwas weiter gebracht.
// Die externe Übergabe ermitteln m_strExterneUebergabe = ExterneUebergabeErmitteln(); // Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen CCommandLineInfo cmdInfo; if (m_strExterneUebergabe == "") // ohne Übergabeparameter { ParseCommandLine(cmdInfo); } else { // Die Membervariable für eine neue Datei setzen cmdInfo.m_nShellCommand = CCommandLineInfo::FileNew; } // Verteilung der in der Befehlszeile angegebenen Befehle if (!ProcessShellCommand(cmdInfo)) return FALSE;
Ich muss aber noch weitere Test durchführen und melde mich gegebenenfalls wieder.
Viele Grüße
Bernd
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 9. Mai 2016 07:00
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Mai 2016 07:55
Alle Antworten
-
Hallo Bernd,
Vielleicht hilft Dir die von Scott McPhillips vorgeschlagene Vorgehensweise aus diesem Thread weiter. Ich führe sie der Vollständigkeit halber an:
CCommandLineInfo cmdInfo; ParseCommandLine(m_cmdInfo); m_cmdInfo.m_nShellCommand = CCommandLineInfo::FileNew; if (!ProcessShellCommand(m_cmdInfo)) return FALSE;
Gruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo,
folgender Programmcode hat mich schon etwas weiter gebracht.
// Die externe Übergabe ermitteln m_strExterneUebergabe = ExterneUebergabeErmitteln(); // Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen CCommandLineInfo cmdInfo; if (m_strExterneUebergabe == "") // ohne Übergabeparameter { ParseCommandLine(cmdInfo); } else { // Die Membervariable für eine neue Datei setzen cmdInfo.m_nShellCommand = CCommandLineInfo::FileNew; } // Verteilung der in der Befehlszeile angegebenen Befehle if (!ProcessShellCommand(cmdInfo)) return FALSE;
Ich muss aber noch weitere Test durchführen und melde mich gegebenenfalls wieder.
Viele Grüße
Bernd
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 9. Mai 2016 07:00
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Mai 2016 07:55