Solved

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

Posted on 2006-06-08
5
178 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
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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
HTML text in the body of an email (delphi code) 12 166
Delphi 2 68
Need Help Delphi 2010 CheckBox1 Stored value in memo 13 70
How to build JSON File in Delphi 6 3 45
Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
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…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

809 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