menu contextuel dans IE

menu contextuel dans IE - C++ - Programmation

Marsh Posté le 30-09-2005 à 03:10:09    

Salut.
 
précision : je débute en developpement completement, pour l'instant je n'ai des connaissances en C++ avec les MFC.
 
Je voudrais ajouter dans internet explorer  une commande au menu contextuel pour que ca fasse un past sur un champ texte de la page web chargée.
 
j'ai cherché dans msdn, ainsi que des bouts de code via google, mais quedal je ne trouve rien, du moins pas par rapport au C++ http://forum-images.hardware.fr/images/perso/gallycyborg.gif (et j'aimerai bien ne pas avoir à m'éparpiller dans d'autres language pour l'instant).
 
Est ce compliqué à mettre en oeuvre?  
 
ou trouver infos ou exemple svp?
 
merci  :jap:


Message édité par giova le 30-09-2005 à 03:11:43
Reply

Marsh Posté le 30-09-2005 à 03:10:09   

Reply

Marsh Posté le 30-09-2005 à 10:09:39    

http://msdn.microsoft.com/workshop [...] erview.asp
Lire à partir de Controlling the Context Menus.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 30-09-2005 à 10:17:02    

Merci ! :jap:

Reply

Marsh Posté le 05-10-2005 à 18:15:27    

salut. Je reviens à ce sujet parcequ'il y a un petit truc qui me chiffonne...
 
Pour résumer la solution proposée par MSDN, il faut ajouter une clé dans la base de registre dont sa DefaultValue est le chemin absolu d'un fichier HTML contenant un script (ce script etant ce que l'on souhaite faire)...
 
cf ce tutorial
 
ok mais comme je le disais, j'aimerai ne pas m'etendre sur plusieurs language, pour l'instant je n'ai de connaissances qu'en C++ et vraiment, je ne voudrai pas avoir à me former au javascript pour le moment. Chaque chose en son temps...
 
j'aimerai que cette commande perso du menu contextuel appelle une fonction dans ma petite appli (ecrite en C++ donc) en lui passant comme parametre ce qu'il faut pour que ma fonction fasse le past d'un string dans le champ texte de la page web concernée...
 
Comme je débute la seule chose que je m'imagine, c'est que ce script envois un message windows WM_USER que mon appli interceptera, mais c'est tres flou dans ma tete.
 
Que pourriez vous me dire par rapport à tout ca pour m'aider SVP !

Reply

Marsh Posté le 06-10-2005 à 10:07:12    

Ton script peut instancier un composant COM avec qui il va dialoguer. Ce composant peut être fait en C++.
Par exemple chez moi Excel a rajouté ça:

Citation :

E&xporter vers Microsoft Excel->res://C:\PROGRA~1\MICROS~2\OFFICE11\EXCEL.EXE/3000


la ressource 3000 contient:

Code :
  1. <SCRIPT language=VBScript>
  2. DIM xlApp
  3. DIM xlWorkBook
  4. ON ERROR RESUME NEXT
  5. 'Set IE variables and get the URL
  6. SET ieParentWin = external.menuArguments
  7. ieSrcURL = ieParentWin.location.href
  8. fTableSel = FALSE
  9. SET ieSrcElem = ieParentWin.event.srcElement
  10. IF ERR = 0 AND UCASE(ieParentWin.document.selection.type) = "NONE" THEN
  11. tagName = UCASE(ieSrcElem.tagName)
  12. DO UNTIL tagName = "TABLE" OR tagName = "BODY"
  13.  SET ieSrcElem = ieSrcElem.parentElement
  14.  tagName = UCASE(ieSrcElem.tagName)
  15. LOOP
  16. IF tagName = "TABLE" THEN
  17.  tagParentName = tagName
  18.  SET ieParent = ieSrcElem
  19.  DO UNTIL tagParentName = "BODY" OR tagParentName = "VIEW"
  20.   SET ieParent = ieParent.parentElement
  21.   tagParentName = UCASE(ieParent.tagName)
  22.  LOOP
  23.  IF tagParentName <> "VIEW" THEN
  24.   fTableSel = TRUE
  25.   IF ieSrcElem.ID <> "" THEN
  26.    ieSrcConnect = ieSrcElem.ID
  27.   ELSE
  28.    SET ieTables = ieParentWin.document.all.tags("table" )
  29.    ieSrcConnect = 1
  30.    FOR EACH ieTable IN ieTables
  31.     IF ieTable.sourceIndex = ieSrcElem.sourceIndex THEN
  32.      EXIT FOR
  33.     END IF
  34.     ieSrcConnect = ieSrcConnect + 1
  35.    NEXT
  36.   END IF
  37.  END IF
  38. END IF
  39. END IF
  40. SET xlApp = CreateObject("Excel.Application" )
  41. ON ERROR GOTO 0
  42. SET xlWorkbook = xlApp.Workbooks.Add
  43. ON ERROR RESUME NEXT
  44. xlApp.Visible = True
  45. IF fTableSel THEN
  46. webQuerySourceHRef = ieSrcElem.getAttribute("o:WebQuerySourceHRef" )
  47. IF webQuerySourceHRef <> "" THEN
  48.  SET xlQueryTable = xlWorkbook.Worksheets(1).QueryTables.Add("URL;" & webQuerySourceHRef, xlWorkbook.WorkSheets(1).Cells(1,1))
  49.  xlQueryTable.EditWebPage = ieSrcURL
  50. ELSE
  51.  SET xlQueryTable = xlWorkbook.Worksheets(1).QueryTables.Add("URL;" & ieSrcURL, xlWorkbook.WorkSheets(1).Cells(1,1))
  52.  xlQueryTable.EditWebPage = ""
  53. END IF
  54. xlQueryTable.FieldNames = True
  55. xlQueryTable.RowNumbers = False
  56. xlQueryTable.FillAdjacentFormulas = False
  57. xlQueryTable.PreserveFormatting = True
  58. xlQueryTable.RefreshOnFileOpen = False
  59. xlQueryTable.BackgroundQuery = True
  60. xlQueryTable.RefreshStyle = 0 'xlOverwriteCells
  61. xlQueryTable.SavePassword = False
  62. xlQueryTable.SaveData = True
  63. xlQueryTable.AdjustColumnWidth = True
  64. xlQueryTable.RefreshPeriod = 0
  65. xlQueryTable.WebSelectionType = 3 'xlSpecifiedTables
  66. xlQueryTable.WebFormatting = 3 'xlWebFormattingNone
  67. xlQueryTable.WebTables = ieSrcConnect
  68. xlQueryTable.WebPreFormattedTextToColumns = True
  69. xlQueryTable.WebConsecutiveDelimitersAsOne = True
  70. xlQueryTable.WebSingleBlockTextImport = False
  71. xlQueryTable.WebDisableDateRecognition = False
  72. xlQueryTable.WebDisableRedirections = False
  73. xlQueryTable.Refresh
  74. ELSE
  75. xlApp.Dialogs(667).Show ieSrcURL
  76. END IF
  77. </Script>


note le CreateObject("Excel.Application" ).
En t'inspirant de ça:
http://www.01net.com/editorial/257 [...] -imprimer/
et de ce qu'il y a au dessus, le script doit pas être monstrueux pour récupérer le texte surligné, instancier un objet COM et lui envoyer le texte en question.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 06-10-2005 à 14:13:10    

Justement je suis en train de me plonger dans le directshow, et donc l'utilisation des COM.
 
Je vais étudier tout ca, merci encore une fois  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed