Solved

How to fill web page fields from a Win32 Delphi application.

Posted on 2006-06-08
5
182 Views
Last Modified: 2010-04-05
Hello.

I need to fill some web page fields with data that is already in a Windows 32 Delphi application.

The problem is that I don't know the name of the fields of the web page because it has
frames and the right mouse button (to see the source code) is disabled. If I use the browser's
menu: View/"Source code" I only get this:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
      <HEAD>
            <TITLE>Logistics System 2.01</TITLE>
            <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
            <meta content="C#" name="CODE_LANGUAGE">
            <meta content="JavaScript" name="vs_defaultClientScript">
            <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
            <SCRIPT language="javascript">history.forward();</SCRIPT>
            <SCRIPT language="javascript">self.resizeTo(1024,768);</SCRIPT>
      </HEAD>
      <FRAMESET border="0" frameSpacing="0" rows="71,*" frameBorder="NO" cols="*">
            <FRAME name="frmEncabezado" src="wfrEncabezado.aspx" frameBorder="no" noResize scrolling="no">
            <FRAMESET frameSpacing="0" frameBorder="no" cols="184,786">
                  <FRAME name="frmMenu" src="wfrMenu.aspx" frameBorder="yes" bordercolor="#005fb3" scrolling="yes">
                  <FRAME name="frmTrabajo" src="wfrBlank.aspx" frameBorder="no" scrolling="yes">
            </FRAMESET>
      </FRAMESET>
</HTML>
 

In the Windows 32 application I have all the data that the users have to type manually to the web form, and I want to copy the data automatically when they push a button "copy data". The web application is from another company and I
have no access to the code.


Thanks in advance.

0
Comment
Question by:arturosm
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 10

Accepted Solution

by:
atul_parmar earned 250 total points
ID: 16868512
As I extensively use javascript I would suggest it. Because you dont know the field name where you want to set the value you wil have to find the correct field first and then set its value.

Here is the javascript that goes through all the elements and displays all of them in alert.

var
  s : TStringList;
begin
  s := TStringList.Create;
  s.Add('javascript:function myselect() {');
  s.Add('var ecnt=document.forms[0].elements.length;');
  s.Add('var i;');
  s.Add('var elist="";');
  s.Add('for (i=0; i<ecnt; i++) {');
  s.Add('el = document.forms[0].elements[i];');
  s.Add('elist=elist+el.name+"="+el.type+"\n";');
  s.Add('}'); //end for
  s.Add('alert(elist);'); //end for
  s.Add('}; myselect();');
  WebBrowser1.navigate(s.text);
  s.Free;
end;

I hope this will help you. and once you know the field name setting its value is pretty simple.

See the following on how to set values through javascript.
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21867605.html
0
 
LVL 26

Assisted Solution

by:EddieShipman
EddieShipman earned 250 total points
ID: 16873633
You need to obtain the HTML source from the frame that has the elements you want to fill in.
Then you can call the functions in my post here to fill them.
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20848037.html

You'll have to modify the sAction and sMyFormTitle variables and the parameters in the array passed
to FormSubmit to match what is in the form on the frame.

This works on a running instance of IE.
0
 

Author Comment

by:arturosm
ID: 16898842
Thank you friends,

Sorry, I have been very busy and shifted from this subject to another more urgent. However, I still have to solve this one. I'm going to review with care your comments tomorrow.

Thank you very much for your help.


arturosm

0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

710 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question