Autor Beitrag
Anfänger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Fr 23.07.04 21:20 
der Befehl "InternetAutodialHangup(0); " exestiert nach angaben von verschiedenen Internetseiten in der Unit WinINet.
Als ich ihn benutzen wollte, fand delphi den Befehl nicht.

Ist meine Datei veraltet? (ich habe delphi3!)

Wenn ja, wo bekomme ich die neue?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.07.04 01:51 
Durchaus möglich, dass die WinINet Unit von D3 noch etwas unvollständig ist.

Neue was? Neue Delphi Version? Bei Borland oder online bei diversen EDV Buch- und Softwareversand Shops. Die Unit alleine wirst du nicht bekommen, da es gegen die Lizenzbestimmungen ist auch nur einezelne Units weiterzugeben.

Als Alternative könntest du die Jedi WinAPI Übersetzungen benutzen: www.delphi-jedi.org/APILIBRARY:462799 Aber ob die mit D3 gehen, kann ich nicht sagen.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Sa 24.07.04 10:59 
Sorry, aber ich steige irgendwie durch die Seite nicht durch.
Und noch weniger, was ich mit der anfangen soll.

Könnte mir jemand den Code Posten, der den Befehl ausführt?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.07.04 14:27 
Dann scroll doch mal runter bis zum Tabellenanfang. Der erste Download ist gleich den den du brauschst, da müsste die Übersetzung der WinINet Unit von den Jedis drinn sein. Heißt wahrscheinlich JwaWinINet.pas.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: So 25.07.04 12:25 
Habs darin nicht gefunden.

Habe allerdings in der Seite von Borland was gefunden, es gedownloadet und den Befehl gesucht.

Auch dort war er nicht vorhanden!
Wie darf ich das denn verstehen?


Es gibt doch bestimmt noch andere Befehle, mit denen man die Internetverbindung kappen kann, könnte mir jemand den Code geben?
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 25.07.04 18:33 
Was denn? Scheitert´s nur an der einen Funktion? Bitte sehr:
ausblenden Delphi-Quelltext
1:
2:
function InternetAutodialHangup(dwReserved: DWORD): BOOL; stdcall;
  external 'wininet.dll';

Der Wert für "dwReserved" ist (sagt schon der Name) reserviert und muss daher Null sein. Fertig.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: So 25.07.04 19:43 
Danke!!!!!!!!!!!!!!! :P

Ich hätt nicht gedacht, dass die Dll auf dem Computer ist und man so einfach drauf zugreifen kann.

Nochmals danke!
Funzen tuts natürlich auch.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 25.07.04 20:19 
Du kannst solche Informationen auch selbst gewinnen. Wenn du wieder mal ein Problem mit einer Funktion hast, die es scheinbar nicht gibt (oder tatsächlich, weil dein Delphi vllt. zu alt ist), dann schau mal in Microsofts Definitionen rein. Entweder online im MSDN, oder du ziehst dir das Platform SDK (Links müssten im DF zu finden sein), das ist eine frei und kostenlos verfügbare Untermenge des MSDN. Kann ich als Nachschlagewerk nur empfehlen, weil es auch aktueller ist als die "Win32.hlp", die bei Delphi dabei ist.

So, und da steht bspw. bei "InternetAutodialHangup" folgendes:
Microsofts Platform SDK hat folgendes geschrieben:
Disconnects an automatic dial-up connection.
ausblenden Quelltext
1:
2:
3:
BOOL InternetAutodialHangup(
  DWORD dwReserved
);


Parameters

dwReserved
[in] Reserved. Must be zero.


Return Values

Returns TRUE if successful, or FALSE otherwise.


Requirements

Client: Included in Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, and Windows 95.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
Version: Requires Internet Explorer 4.0 or later.
Header: Declared in Wininet.h.
Library: Use Wininet.lib.


Du hast also die Syntax und müsstest (mit ein paar kleinen Kenntnissen) eine Delphi-Funktion daraus machen können. Dann sollte man eigentlich nur noch wissen, dass solche API-Funktionen meist mit stdcall deklariert werden müssen, und der Name der DLL darf natürlich auch nicht fehlen. Nun steht im rot markierten Teil zwar "Wininet.lib", aber die LIB-Datei entspricht in den meisten Fällen der DLL.

Und anhand der Systemanforderungen kannst du sehen ob es vllt. günstiger wäre, die Funktion dynamisch zu laden, weil sie bspw. nur auf bestimmten Windows-Versionen vorhanden ist. In solchen Fällen würdest du mit der statischen Variante eine Fehlermeldung riskieren. Gutes Beispiel: "RegisterServiceProcess" unter NT/2000/XP. :)

Aber in deinem Fall gibt´s die Funktion eigentlich überall, vorausgesetzt der IE4 ist min. da.