Help File

kerian

Erfahrenes Mitglied
Hallo zusammen,

ich öffne mein Help File mit:
HTML:
	ShellExecute(NULL,"open",m_strDateiname, NULL, NULL, SW_SHOWDEFAULT);

Was auch super funktioniert. Aber wenn ich meine App zumachen bleibt die Hilfe weiter
stehet! Wie kriege ich das hin, dass auch sie geschloßen wird!
 
moin


Das sie offen bleib ist klar, da sie dann ein eigenständiges Fenster hat.
Hol dir ein Handle auf das Fenster und schliess es von Hand.


mfg
umbrasaxum
 
Ja ich habe das mit
HTML:
HWND hWnd = GetForegroundWindow();
ausbrobiert! Aber der Handle bleit, auch wenn ich das Hilfe Window schon geschlossen habe!
 
Ich weiß jetzt nicht wie du dein App aufgebaut hast, jedoch wird beim Beenden ein Destruktor aufgerufen(falls du mit Fensterklassen) arbeitest und kannst dir dort dein Handle für deine Hilfe Datei holen. Ansonsten solltest du dir einmal die Nachricht WM_DESTROY anschauen.
 
Ich Arbeite mit VC6.0 bin aber grade auf VC 7.0 umgestiegen!
Ich erzeuge mir ein Winhelpfile mit Microsoft Help Workshop. Help.hlp
Denn rufe ich dann mit der Funktion ShellExecute() Auf!
HTML:
ShellExecute(NULL,"open",m_strDateiname, NULL, NULL, SW_SHOWDEFAULT);
 
Jo ich habe es jetzt :-)
Mit ShellExecute(...); geht das auch aber wie oben beschrieben mit Einschränkungen.
Viel besser geht das mit CWinApp::OnHelp(..); Oder ::OnHelp(...)

Gruß
Kerian
 
Ich hab den Thread eben entdeckt und was ausprobiert. Aber es ging nicht kann mir einer sagen was hier falsch ist? (P.S. Nicht wundern bitte bin noch ein totaler Anfänger :( )

Code:
#include <iostream>
#include <stdlib.h>
#include <fstream>   

using namespace std;
int main()
{
  cout <<"Ja ich öffne für dich Firefox!"<< endl; getchar ();
 ShellExecute(NULL,"open",m_strMozilla Firefox.exe, NULL, NULL, SW_SHOWDEFAULT);
    return 0;
}

Also das Programm soll die Exe von Firefox öffnen.
 
Zuletzt bearbeitet:
hm...

@xenox:
Was wenn du anstatt von "ShellExecute" einfach "Process::Start" verwendest?

also wenn du z.B. Firefox öffnen willst:
C++:
System::Diagnostics::Process::Start("firefox.exe");
Du kannst als Parameter auch noch die anzuwählene Page angeben,
also z.B:
C++:
System::Diagnostics::Process::Start("firefox.exe", "www.google.com");

Hoffe das hilft dir weiter ^^

mfG
Leitman
 
@leitmann
Sieht nicht so aus, dass xenox01 mit der .NET-Library arbeitet. Dein Beispiel wird ihm daher wahrscheinlich nicht so viel nützen.

@xenox01
Dein zweiter Parameter bei "ShellExecute()" schaut schon etwas seltsam aus. Was ist "m_strMozilla"? Der Aufruf sollte wohl eher so aussehen:
C++:
ShellExecute(NULL, "open", "C:\\pfad zu firefox\\frefox.exe",  NULL,  NULL,  SW_SHOWDEFAULT);
Außerdem benötigst du noch ein "#include <windows.h>".

Gruß
MCoder
 
Zurück