Internet Explorer erweitern
-
Hi!
Ist es möglich mit Visual C++ und der MFC den Internet Explorer um einige Features (z.B. Menüerweiterungen bzw. Tooltips) zu erweitern? Könnte man das mit ActiveX-Steuerelementen realisieren?
-
Was geht ist:
Creating Custom Explorer Bars, Tool Bands, and Desk Bands
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/programmersguide/shell_adv/bands.asp
-
Vielen Dank!
-
Wenn ich versuche einige der Beispielprogramme auf der MSDN Seite zu linken, bekomme ich folgende Fehlermeldung:
Datei "nafxcwd.lib" kann nicht geoeffnet werden
Diese Datei habe ich auch leider nicht, da ich nur die Autorenversion von VC besitze. Kann man die irgendwo herbekommen?
-
Stell in den Projekteinstellungen die Nutzung der MFC auf dynamisch - schon gehts.
-
Danke!
Ich bin gerade dabei einen zusätzlichen Menüeintrag zu erweitern. Dazu muss entsprechende Registry-Einträge vornehemen. 1.Schritt: "Create a valid (globally unique identifier (GUID)." Wie mach ich denn das??
Ich weiss, das dies natürlich wenig mit C++ zu tun hat
-
Hat sich erledigt..
Eins noch: Gibt es eine Möglichkeit mit Visual C++ Einträge in der Registry vorzunehmen?
-
Grundsätzlich: In C++ kannst Du alles machen...
Registry: RegOpenKeyEx, RegCreateKeyEx
http://msdn.microsoft.com/library/en-us/sysinfo/base/registry_functions.asp
-
Kann man mit C++ auch COM Objekte registrieren?
-
Wenn Du auf die Registry zugreifen kannst, kannst Du logischerweise auch COM-Objekte registrieren...
-
...wenn ich nur wüsste wie das geht...
-
Wenn DU mit VC ein COM-Projekt anlegst, macht der alles für Dich selber... (bzw. in der MFC/ATL).
-
OK,,
eine Frage noch,,
Warum funktioniert folgendes nicht?
HKEY hKey = HKEY_LOCAL_MACHINE; const char* strPath="SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\nn"; CString value="Testvalue"; if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,strPath,0,NULL,REG_OPTION_NON_VOLATILE,KEY_QUERY_VALUE,NULL,&hKey,NULL)) AfxMessageBox("Fehler bei Erstellung des Schlüssels!"); if(RegSetValueEx(hKey,value,0,REG_SZ,(LPBYTE) &value,sizeof(CString))) AfxMessageBox("Fehler bei Eintragung des Wertes!"); RegCloseKey(hKey);
Der Schlüssel wird erstellt, der Wert allerdings nicht..
-
AJ_Styles schrieb:
RegSetValueEx(hKey,value,0,REG_SZ,(LPBYTE) &value,sizeof(CString))
Du solltest auch einen String übergeben und keinen Zeiger auf den CString... =>
RegSetValueEx(hKey, value,0,REG_SZ,(LPBYTE) (LPCTSTR) value, (value.GetLength()+1)*sizeof(TCHAR))
-
Geht leider immer noch nicht,,
Es wird jedesmal die Meldung "Fehler bei Eintragung des Wertes ausgegeben",,
HKEY hKey = HKEY_LOCAL_MACHINE; const char* strPath="SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\nn"; CString value="Test"; if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,strPath,0,NULL,REG_OPTION_NON_VOLATILE,KEY_QUERY_VALUE,NULL,&hKey,NULL)) AfxMessageBox("Fehler bei Erstellung des Schlüssels!"); if(RegSetValueEx(hKey, value,0,REG_SZ,(LPBYTE) (LPCTSTR) _ value,(value.GetLength()+1)*sizeof(TCHAR))) AfxMessageBox("Fehler bei Eintragung des Wertes!"); RegCloseKey(hKey);
-
Du solltest vielleicht auch noch sagen, dass Du schreiben willst....
Also anstelle von KEY_QUERY_VALUE musst Du "KEY_WRITE" nehmen! Und nächstesmal auch gleich "GetLastError" abfragen und den Fehlercode posten... sonst muss man immer so lange raten (bzw. den Code gaaaanz genau anschauen).
-
Jetzt gehts!!
Danke Jochen!