Complete the PPP dial-up Delphi source code, including LCP, PAP and CHAP, NCP complete communication protocol, such as through the PPP dial-up can have normal access to the network, after paid for technical support, you can also use other language encapsulated into a DLL interface call (DLL must provide the source code and compile environment Settings)
CodePudding user response:
Can only help the top as soon as possibleCodePudding user response:
Can only help the top as soon as possibleCodePudding user response:
These are I've done under XP, Windows 7 at no, BCB code, can refer to:DeviceControls. H
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# # ifndef DeviceControlsH
# define DeviceControlsH
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#include
#include
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# define DN_DISABLEABLE (0 x00002000)//Can be rebalanced
# define DN_HAS_PROBLEM (0 x00000400)//Need device installer
# define CM_PROB_DISABLED (0 x00000016)//devinst is disabled
# define CM_PROB_HARDWARE_DISABLED (0 x0000001d)//device disabled
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Enum TGetDeviceState {gdsError, gdsEnabled gdsDisabled};
Typedef void __fastcall (__closure * TDeviceCallback) (DWORD, String, Boolean);
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
The class TDeviceControl: public TComponent
{
Private:
HINSTANCE FInstance;
Int (__stdcall * FCallProgram) (PULONG, PULONG, ULONG, ULONG);
Bool __fastcall GetRegistryProperty (HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData, ULONG Property,
PVOID Buffer, PULONG Length);
TGetDeviceState __fastcall GetDeviceInstState (ULONG DeviceInst);
Bool __fastcall IsCannotDisable (ULONG DeviceInst);
Public:
Void __fastcall EnumDevices (String AProperty, TDeviceCallback ACallback);
Bool __fastcall SetDeviceState (DWord ADevice, bool AEnabled);
Bool __fastcall GetDeviceState (DWord ADevice);
Int __fastcall OSVersion (void);
__fastcall TDeviceControl (TComponent * AOwner);
__fastcall ~ TDeviceControl (void);
};
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# endif
DeviceControls. CPP
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma hdrstop
# include "DeviceControls. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TDeviceControl: : TDeviceControl (TComponent * AOwner) : TComponent (AOwner)
{
FInstance=LoadLibrary (" SetupAPI. DLL ");
If (FInstance)
(FARPROC) FCallProgram
=GetProcAddress call (FInstance, "CM_Get_DevNode_Status");
The else FCallProgram=NULL;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TDeviceControl: : ~ TDeviceControl (void)
{
If (FInstance)
FreeLibrary (FInstance);
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Bool __fastcall TDeviceControl: : GetRegistryProperty (HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData,
ULONG Property, PVOID Buffer, PULONG Length)
{
while (! SetupDiGetDeviceRegistryProperty (DeviceInfoSet,
DeviceInfoData, Property, NULL, (BYTE *) * * *) (TCHAR Buffer, * Length, Length))
{
If (GetLastError ()==ERROR_INSUFFICIENT_BUFFER)
{
If LocalFree Buffer (LPTSTR *) (*) (* (LPTSTR *) Buffer);
* (LPTSTR *) Buffer=(PCHAR) LocalAlloc (LPTR, * Length);
}
The else return false;
}
Return (* (LPTSTR *) Buffer) [0].
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
TGetDeviceState __fastcall TDeviceControl: : GetDeviceInstState (ULONG DeviceInst)
{
DWORD Status Problem;
ULONG dtFlag=0;
If (FCallProgram (& amp; The Status, & amp; Problem, DeviceInst, dtFlag)!=0)
Return gdsError;
If ((Status & amp; DN_HAS_PROBLEM) & amp; & (CM_PROB_DISABLED==Problem))
Return gdsDisabled;
The else return gdsEnabled;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Bool __fastcall TDeviceControl: : IsCannotDisable (ULONG DeviceInst)
{
DWORD Status Problem;
ULONG dtFlag=0;
If (FCallProgram (& amp; The Status, & amp; Problem, DeviceInst, dtFlag)!=0)
return true;
The return! (the Status & amp; DN_DISABLEABLE) & amp; & (CM_PROB_HARDWARE_DISABLED!=Problem));
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TDeviceControl: : EnumDevices (String AProperty, TDeviceCallback ACallback)
{
LPTSTR Buffer=NULL;
DWORD BufSize=0;
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull