Autor Beitrag
EbbiDos
Hält's aus hier
Beiträge: 8

Win 2000
Delphi 5 Prof., VS 2003 .NET, PHP, Perl/CGI
BeitragVerfasst: Fr 02.06.06 05:16 
Hi!

Ich progge momentan ein Verwaltungsprogramm mit PHP+MySQL, da der "Auftraggeber" von jedem Rechner auf der Welt (mit INet) verwalten möchte. Das Prog besitzt MultiUser-Management (wie ein Forum) und konfigurierbare Zugriffsrechte...
Nun möchte der Auftraggeber manchen Nutzern nur an einem bestimmten PC gewisse Zugriffsrechte erlauben -> bspl. am Büro-Rechner darf er alles und vom Heim-PC darf er nur bestimmte Aktionen durchführen.

Ich möchte dieses Feature mit einem Registry-Eintrag bewerkstelligen. Wenn die Login-Seite im Browser aufgerufen wird, soll ein ActiveX den Registry-Eintrag lesen und mithilfe von Javascript an eine <form>...</form>-Struktur übergeben. Nachdem der Nutzer den Login-Button gedrückt hat, übernimmt das PHP-Prog die Auswertung des Registry-Eintrags.

...Soviel als Hintergrundinfo...

Nun zu meinem Problem: Ich bin jungfräulicher ActiveX-Einsteiger. :shock:
Deshalb Frage 1) Wie erstelle ich in Delphi ein nicht-sichtbares ActiveX, dass sich als <object ...></object> in HTML einbinden lässt und zudem nicht mehr können muss, als eine Funktion bereitzustellen, die ich mit Javascript aufrufen kann?
(Das ActiveX soll Client-seitig ausgeführt werden und die enthaltene Funktion liest den Registry-Eintrag)

Frage 2) als was compilieren OCX, DLL, oder was?

Frage 3) classid bzw. GUID -> lässt sich das Registrieren oder Installieren des ActiveX-Dingens auf dem Client-PC für den Nutzer damit unsichtbar "steuern"? (Trojaner können das ja auch irgendwie...) Ich möchte nach Möglichkeit dann im Browser keine Meldung angezeigt bekommen: "...wollen sie das Programm installieren...?"


Ich hoffe, jemand kann mir da weiterhelfen...
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Fr 02.06.06 08:11 
1.+2. Datei-Neu-ActiveX(Was genau weiß ich aber auch nicht :( Rest wird automatisch gemacht

3. Nein die normale Zone verbietet das, dafür extra Exploits zu verwenden halte ich für bedenklich bzw. es ist nicht sichergestellt, das die funktionieren.

Kann man sowas nicht direkt clientseitig über Javascript machen? Firefox unterstützt z.B. kein ActiveX. Oder ich würde das irgendwo auf Serverebene probieren zu verankern... Bin aber kein Web-Entwickler...
EbbiDos Threadstarter
Hält's aus hier
Beiträge: 8

Win 2000
Delphi 5 Prof., VS 2003 .NET, PHP, Perl/CGI
BeitragVerfasst: Fr 02.06.06 08:40 
Ich hatte mich bereits mit den Wizards von Delphi auseinandergesetzt, aber die wollen immer nur TActiveForm oder ActiveX-Komponenten (VCL) erstellen.
Das ActiveX soll im Grunde nichts anderes können als eine DLL, in der eine einzige Funktion gekapselt ist (z.B. function GetVersion: PChar; export;)
Entweder hab ich die entsprechenden Einstellungen noch nicht gefunden, oder es gibt sie einfach nicht in den Wizards.

Mit Javascript geht das nicht. Ich hab zwar nicht nachgesehen, aber Javascript ist Betriebssystem-unabhängig und wenn schon Datei-Handling nicht geht, bin ich mir ziemlich sicher, dass das Registry-Lesen erst recht nicht geht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 02.06.06 08:43 
Zitat:
Kann man sowas nicht direkt clientseitig über Javascript machen?
Dann würd ich mir stark überlegen ins Internet zu gehen :-(
Über ActiveX ist es schon möglich, MS macht das beim Automatischen Update auch nichts anders. Mit einem signierten Java-Applet könnte es auch funktionieren. Ich würde aber versuchen eine andere Lösung zu finden.

_________________
Markus Kinzler.
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Fr 02.06.06 11:00 
Knackbar ist alles, darüber müssen wir ja nicht diskutieren. Das beste wäre wirklich ein MAC Filter auf dem Server, der durch PHP gemanaget würde. Aber auch MACs kann man ja verzerren ;-)
69hamsta69
Hält's aus hier
Beiträge: 3

M$ WIN XP / SuSE Linux 10.1
Delphi 7 Enterprise / C/C++ im anfangsstadium
BeitragVerfasst: Fr 02.06.06 11:05 
user profile iconEbbiDos hat folgendes geschrieben:
Wie erstelle ich in Delphi ein nicht-sichtbares ActiveX, dass sich als <object ...></object> in HTML einbinden lässt und zudem nicht mehr können muss, als eine Funktion bereitzustellen, die ich mit Javascript aufrufen kann?
(Das ActiveX soll Client-seitig ausgeführt werden und die enthaltene Funktion liest den Registry-Eintrag)

ActiveX tutorial -> dsdt.info/tutorials/activex/


LG hamsta
EbbiDos Threadstarter
Hält's aus hier
Beiträge: 8

Win 2000
Delphi 5 Prof., VS 2003 .NET, PHP, Perl/CGI
BeitragVerfasst: Fr 02.06.06 21:50 
Ich hatte bereits erwähnt, dass die Wizards nur VCL oder TActiveForm-Applikationen erstellen. Das Tutorial nutzt auch nur die Wizards von Delphi. Damit kann ich aber keine nicht-sichtbaren ActiveX-Anwendungen erstellen.

Ich geb einfach mal Code-Äquivalent einer DLL an:
ausblenden accctrl.dpr
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
library accctrl;

uses
  ComServ,
  main;

exports
  GetRegUsers;

{$R *.RES}

begin
end.


und

ausblenden main.pas
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
unit main;

interface
uses Windows,Registry;

function GetRegUsers: PChar; export;

implementation

function GetRegUsers: PChar;
var reg: TRegistry;
    val: String;
begin
  reg := TRegistry.Create(KEY_READ);
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('SOFTWARE\TEST',false) then
    begin
      val := reg.ReadString('users');
      reg.CloseKey;
    end;
  finally
    reg.Free;
  end;
  Result := PChar(val);
end;

end.


Mehr soll das ActiveX auch nicht machen.
EbbiDos Threadstarter
Hält's aus hier
Beiträge: 8

Win 2000
Delphi 5 Prof., VS 2003 .NET, PHP, Perl/CGI
BeitragVerfasst: Sa 03.06.06 21:14 
bumb