ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
630
630
EMPFEHLEN
-
15.01.11 23:32 #1
Hi
ich habe mal wieder eins meiner berühmten problemchen...
ich weis echt nett wohin dass gehört ob in c/c++ oder was auch immer... also nett sauer sein
ich würde gern wissen ob man eine datei mit einer exe so verknüpfen kann das wenn man die datei anklickt die exe sich öffnet geht so was****
Danke im Voraus
MFG
-
Hi
a) entweder machst du einfach eine Verknüpfung.
b) oder du nimmst beim Dateinamen eine eigene Endung und stellst ein, dass diese Endung mit deinem Programm geöffnet wird.
c) oder du patcht CreateFile (und ähnliches) zur Laufzeit.
Kompliziert, fehleranfällig und eventuell Antivirenmeldungen.
Für alle drei Möglichkeiten muss dein Programm aber mindestens einmal richtig gestartet werden (bei a und b kannst du es natürlich auch per Hand einstellen)
Gruß
-
c) würde ich mal sofort vergessen. Das ist übelste Hackerei und garantiert Probleme.
b) klingt am vernünftigsten: Eine Extension registrieren. Das geht in etwa so (die typedefs und Funktion musst du da selber noch einsetzen)
Ab Vista gibt es da eine API für, für alles davor ist Handarbeit angesagt:
Code :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
void Registry::RegisterFileType( const GR::tChar* szExtension, const GR::tChar* szAppDescription, const GR::tChar* szIconPath, const GR::tChar* szOpenCommand ) { GR::tChar szDesc[MAX_PATH]; wsprintf( szDesc, _T( "%s.Document" ), szAppDescription ); SetKey( HKEY_CLASSES_ROOT, szExtension, NULL, szDesc ); SetKey( HKEY_CLASSES_ROOT, szDesc, NULL, szAppDescription ); wsprintf( szDesc, _T( "%s.Document\\DefaultIcon" ), szAppDescription ); SetKey( HKEY_CLASSES_ROOT, szDesc, NULL, szIconPath ); wsprintf( szDesc, _T( "%s.Document\\shell\\open\\command" ), szAppDescription ); SetKey( HKEY_CLASSES_ROOT, szDesc, NULL, szOpenCommand ); } bool Registry::IsFileTypeRegisteredTo( const GR::tChar* szExtension, const GR::tChar* szAppDescription ) { GR::tChar szDesc[MAX_PATH], szTemp[MAX_PATH]; wsprintf( szDesc, _T( "%s.Document" ), szAppDescription ); GetKey( HKEY_CLASSES_ROOT, szExtension, _T( "" ), szTemp ); if ( _tcsicmp( szTemp, szDesc ) == 0 ) { return true; } return false; } void Registry::UnregisterFileType( const GR::tChar* szExtension, const GR::tChar* szAppDescription ) { if ( !IsFileTypeRegisteredTo( szExtension, szAppDescription ) ) { return; } DeleteBranch( HKEY_CLASSES_ROOT, szExtension ); }
Ein Aufruf sieht dann so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
// den Pfad zur eigenen EXE heraussuchen GR::tChar szDummy[MAX_PATH]; GetModuleFileName( NULL, szDummy, MAX_PATH ); GR::tString strKey = szDummy; // Dateinamen als Aufrufparameter mitgeben strKey += _T( " \"%1\"" ); // registrieren Registry::RegisterFileType( _T( ".igf" ), _T( "Painter Image" ), szDummy, strKey.c_str() ); // deregistrieren Registry::UnregisterFileType( _T( ".igf" ), _T( "Painter Image" ) );
Geändert von Endurion (16.01.11 um 07:10 Uhr)
-
Bei solchen Sachen ist ein Aufruf an SHChangeNotify zu empfehlen um den Cache zu löschen.
-
16.01.11 19:35 #5
danke erstmal aber das ist ja alles so kompliziert und das mit der verknüpfung war nicht das was ich erreichen will!
Ich möchte einfach das wenn ich z.B eine .exe öffne eine andere datei sich öffnet ich habs oben vertauscht sorry!
Also .exe öffnen die im hintergrund starten aber nur datei anzeigenlassen!
Allerdings nureine datei anzeigen also die exe in der die bestimmte datei ist
Bisschen kompliziert
Bei fragen einfach melden
MFG
-
Ist die anzuzeigende Datei wirklich als Datei auf der Festplatte, oder "in" der Exe?
-
Willst du beim Drücken auf eine Exe auch noch deine eigene exe, die sich in der anderen exe befindet mitstarten lassen?
-
19.01.11 16:09 #8
also zu sheel:
ja ist ne normale .txt datei als bsp.
zu cromon:
ich möchte quasie beim drücken der txt datei eine exe starten lassen so ist das gemein
MFG
-
Beim öffnen einer speziellen Textdatei oder allgemein bei Textdateien?
-
19.01.11 19:21 #10
allgemein bei textdateien
-
Ähnliche Themen
-
GUI mit Array verknüpfen
Von Delectation im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 10.01.08, 12:39 -
variablen verknüpfen
Von zerpheus im Forum Flash PlattformAntworten: 4Letzter Beitrag: 04.12.07, 17:39 -
3 Tabellen verknüpfen
Von Conspi im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 13.02.06, 00:33 -
PHP mit Javascript verknüpfen
Von helga im Forum PHPAntworten: 1Letzter Beitrag: 02.02.06, 10:30 -
Tabellenzellen verknüpfen
Von petschni im Forum PHPAntworten: 4Letzter Beitrag: 24.02.05, 18:27





Zitieren


Login






