Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
execute QM commands from buttons on a web page
#8
Now that i look at this idea better  its not great  idea. Big potential security  vulnerability  there .someone could  change run notepad line  to something  else  could  easily  do damage to the pc it runs  on.  Would need  to put in place code to protect against this potential vulnerability.

also you have mistakes in your code
these lines are incorrect
,MSHTML.HTMLInputElement- button3=+doc.getElementById("Button2");;<--------------------- wrong button id

wrong variable name------->>>> ,button2._setevents("sub.button3")

if  i am reading this correctly you were thinking of being able to run programs from the text area text that was typed? not just notepad?

this shows how to get the text area text i added in some comments so maybe you will understand better

Function HtmlElementsDialog2 
Code:
Copy      Help
str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 448 214 "Dialog"
;3 ActiveX 0x54030000 0x0 0 0 448 214 "SHDocVw.WebBrowser {8856F961-340A-11D0-A96B-00C04FD705A2}"
;END DIALOG
;DIALOG EDITOR: "" 0x2040701 "*" "" "" ""

str controls = "3"
str ax3SHD
ax3SHD="$desktop$\index+.html";; change to location of your html files
if(!ShowDialog(dd &sub.DlgProc &controls)) ret

#sub DlgProc
function# hDlg message wParam lParam

sel message
,case WM_INITDIALOG
,;Gets document
,MSHTML.HTMLDocument doc=sub.DT_GetHtmlDocument(hDlg 3)

,;get input button1 element and set events for it
,MSHTML.HTMLInputElement- button1=+doc.getElementById("Button1")
,button1._setevents("sub.button1")

,;get input button2 element and set events for it
,MSHTML.HTMLInputElement- button2=+doc.getElementById("Button2")
,button2._setevents("sub.button2")    

,;get input button3 element and set events for it
,MSHTML.HTMLInputElement- button3=+doc.getElementById("Button3")
,button3._setevents("sub.button3")    
,;Note: HTMLInputElement can be used for any type of input elements. For some element types also can be used specific interfaces, eg HTMLInputTextElement.
,;Note: Use thread variables for html elements for which is called _setevents.
,;Note: After navigating to other page, if these thread variables still must be used, they must be reinitialized, and _setevents called again. If not used, they should be cleared (=0).    
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
ret 1
#sub DT_GetHtmlDocument
function'MSHTML.HTMLDocument hDlg ctrlid [flags] ;;flags: 1 - return 0 if not loaded

;Returns MSHTML.HTMLDocument interface pointer of a web browser control which is on a custom dialog.
;Call this function from dialog procedure.
;Returns 0 if the control currently is not displaying a html document.

;hDlg - parent dialog
;ctrlid - web browser control id
;SHDocVw.WebBrowser we3
SHDocVw.WebBrowser we
we._getcontrol(id(ctrlid hDlg))
if(flags&1) if(we.Busy or we.ReadyState!=SHDocVw.READYSTATE_COMPLETE) ret
ret we.Document

#sub button1_onclick
function MSHTML.DispHTMLInputElement'btn1
out "button 1 clicked"
mes "sub1 button has been clicked"

#sub button2_onclick
function MSHTML.DispHTMLInputElement'btn2
out "button 2 clicked"
mes "this is QM mes"

#sub button3_onclick
function MSHTML.DispHTMLInputElement'btn3
out "button 3 clicked"
;on button3 click get html document
MSHTML.HTMLDocument doc=btn3.document

,;get text area element and text
str s    
MSHTML.HTMLInputElement textarea=+doc.getElementById("TextArea1")
s=textarea.innerText;;; gets text in text area
out s


Messages In This Thread
RE: execute QM commands from buttons on a web page - by Kevin - 08-17-2018, 10:42 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)