Avatar billede mads-j Nybegynder
26. december 2001 - 00:27 Der er 22 kommentarer

forslag modtages gerne:-)

Jeg sidder og laver et lille kode husker program.

Det eneste programmet skal gøre, er er huske 2 indtastede værdier (brugernavn,kodeord)

Brugeren kommer ind på den specifikke hjemmeside, og har før han kommer ind, indtastet brugernavn og kodeord i programmet, så skal programmet indsætte kode/brugernavn i de felter der er på hjemmesiden, via en genvej..

nogle der har et forslag til hvilke komponenter jeg skal bruge til at lave dette?

mvh
mads-j
Avatar billede _benne_ Nybegynder
26. december 2001 - 00:38 #1
Måske kunne du lave noget fis med at logge input/output via http-protecollen på winsck.dll - jeg er ikke 100% sikker...
Avatar billede dkn Nybegynder
26. december 2001 - 00:44 #2
via en genvej ?

Bruger du en Twebbrowser i et program?
Avatar billede mads-j Nybegynder
26. december 2001 - 00:47 #3
lidt dårligt formuleret med den genvej..

f.eks. hvis nu du trykker f12 så skal den indsætte disse værdier..

Det jeg gerne vil vide er hvordan jeg får internet/delphi til at spille sammen...
Avatar billede mads-j Nybegynder
26. december 2001 - 00:47 #4
benne> tror du man kan det?
Avatar billede mads-j Nybegynder
26. december 2001 - 00:48 #5
dkn>
jeg bruger twebbrowser i mange programmer, men er ikke begyndt at udvikle dette lille program, så jeg er åben for muligheder:-)
Avatar billede _benne_ Nybegynder
26. december 2001 - 00:56 #6
mads> bare en syg tankegang - min hjerne er gået total kold i aften, så det er garenteret den mest umulige løsning jeg har givet dig...
Avatar billede nico26 Nybegynder
26. december 2001 - 02:08 #7
Hvis bare skal indsætte noget tekst på en htmlside i en TWebBrowser kan det sagtens lade sig gøre fra delphi.
Avatar billede dkn Nybegynder
26. december 2001 - 02:11 #8
nej han skal jo indsætte noget text i en edit field på en html side, men stadig er det faktisk ikke så svært igen.
Avatar billede nico26 Nybegynder
26. december 2001 - 02:33 #9
Jeg har bikset et lille eksempel sammen. Tricket er at man giver html komponenterne et id som man i Delphi kan bruge til at finde den med

<html>
  <body>
    <h1>Html i Delphi</h1>
    <input type=\"text\" id=\"brugernavn\" value=\"\"/><br/>
    <input type=\"password\" id=\"password\" value=\"\"/>
  </body>
</html>



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw_TLB, MSHTML_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  ComObj;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate(NavnetPåHTMLSiden, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

procedure TForm1.Button2Click(Sender: TObject);

  procedure SetTextValue(Doc: IHTMLDocument2; const TextID, Value: string);
  var
    Elements: IHTMLElementCollection;
    Elt: IDispatch;
    Text: DispHTMLTextElement;
  begin
    Elements := Doc.all;
    Elt := Elements.item(TextID, EmptyParam);

    if Assigned(Elt) then
    begin
      OleCheck(Elt.QueryInterface(DispHTMLTextElement, Text));
      Text.setAttribute(\'Value\', Value, 0);
    end;
  end;

var
  Doc: IHTMLDocument2;
begin
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if Assigned(Doc) then
  begin
    SetTextValue(Doc, \'brugernavn\', \'Elmer Fjot\');
    SetTextValue(Doc, \'password\', \'123456\');
  end;
end;

end.
Avatar billede mads-j Nybegynder
26. december 2001 - 12:37 #10
Iden er vel at brugeren skal gøre følgende:

Indsætte brugernavn og password i det program, så vil jeg tro det er nemmest at gemme disse 2 værdier i en database eller måske endda bare en ini fil...

Så når bruger kommer ind på hjemmeside, skal han/hun, bare trykke på en forudbestemt genvej, for at indsætte disse 2 værdier...

som dkn siger, skal disse 2 værdier jo indsættes i nogle edit felter på hjemmesiden...

Nogle gode ider?

Avatar billede nico26 Nybegynder
26. december 2001 - 13:08 #11
Ovenstående kode indsætter værdier i to edit felter. I stedet for at hardcode værdierne skal du bare hente dem fra en database eller fil
Avatar billede mads-j Nybegynder
26. december 2001 - 14:35 #12
nogle ekspempler på det nico?
Avatar billede nico26 Nybegynder
26. december 2001 - 15:27 #13
Hvis det kun er en enkelt bruger du skal gemme oplysninger for, er det nemmeste nok at bruge registreringsdatabasen
Avatar billede mads-j Nybegynder
26. december 2001 - 15:29 #14
ja jeg skal j0  \"bare\" gemme en bruges valg, den bruger som bruger programmet

og skal kun gemme 1 password og et brugernavn
Avatar billede nico26 Nybegynder
26. december 2001 - 15:33 #15
nå - men så gemmer du bare i reg db. dvs. opretter en nøgle under Current_User\\software\\programnavn
Avatar billede dkn Nybegynder
28. december 2001 - 15:11 #16
//Gem dette som: \"C:\\minhtmltest.htm\"

<HTML>
<HEAD>
    <TITLE>[Test]</TITLE>
</HEAD>
<BODY>
Username:
<INPUT TYPE=\"text\" NAME=\"userfieldname\">
<BR><BR>
Password:
<INPUT TYPE=\"text\" NAME=\"passwordfieldname\">
<BR><BR><BR>
</BODY>
</HTML>



//I dit program skriver du:

Uses mshtml;


procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate(\'C:\\minhtmltest.htm\');
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  Index: Integer;
  Doc: IHTMLDocument2;
  Disp: IDispatch;
  Inp: IHTMLInputElement;
  Form: IHTMLFormElement;
begin
  if Supports(WebBrowser1.Document, IHTMLDocument2, Doc)
  then begin
    Disp := Doc.all.item(\'userfieldname\', 0);
    if Supports(Disp, IHTMLInputElement, Inp)
    then Inp.value := \'Mit Username\';

    Disp := Doc.all.item(\'passwordfieldname\', 0);
    if Supports(Disp, IHTMLInputElement, Inp)
    then Inp.value := \'Mit Password\';
  end;
end;



Så skulle den gerne skrive teksten ind i html dokumentet.
dkn
Avatar billede mads-j Nybegynder
28. december 2001 - 16:54 #17
dkn hvad siger du til dem her? hvad mangler jeg?Error] Unit1.pas(36): Undeclared identifier: \'IHTMLDocument2\'
[Error] Unit1.pas(38): Undeclared identifier: \'IHTMLInputElement\'
[Error] Unit1.pas(39): Undeclared identifier: \'IHTMLFormElement\'
[Error] Unit1.pas(41): There is no overloaded version of \'Supports\' that can be called with these arguments

Avatar billede dkn Nybegynder
28. december 2001 - 17:55 #18
Uses mshtml;

og en twebrowser på din form. Det virkede fint hos mig
Avatar billede mads-j Nybegynder
28. december 2001 - 17:57 #19
glemte uses mshtml:-)
Avatar billede mads-j Nybegynder
28. december 2001 - 21:39 #20
Dkn>
nu har jeg testet dit lille eksempel, og det virker jo ok
det eneste som den ikke gør, er at sætte username/password ind på selve minhtmlside

Meningen er jo at man skal kunne trykke på den button for at indsætte disse 2 værdier..

nogle ide til hvordan jeg får disse koder trukket ud af programmet og ind på hjemmesiden?
Avatar billede dkn Nybegynder
28. december 2001 - 23:45 #21
hmm jeg er ikke helt sikker på hvad du mener?
Du snakker om en hjemmeside...er det på nettet du vil indsætte tekst i en form?
Det jeg viste dig sætter username/password ind hvor det skal - men det kræver jo at du bruger en twebbrowser i Dit program.
Avatar billede mads-j Nybegynder
29. december 2001 - 03:44 #22
jeg har gjort det du viste mig, og i dit eksempel smidder den jo kodden ind i selve programmet, (ind i browser komponenten)

det den skal er jo at indsætte disse værdier på en extern hjemmeside
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester