Source code overdruk
#COMPILE EXE "c:\winnt\RASelect.exe" 'kies uw eigen
locatie
$DIM ALL
'versie 5: inlezen in omgekeerde volgorde. Laatst gebruikte komt nu bovenaan
$INCLUDE "win32api.inc"
$INCLUDE "ras_wrap.bas"
$RESOURCE "RASelect.pbr"
%MenuBreedte = 260 'buttongrootteX + 3*buttonspatie
%RuimteTussenButtons= 24
%ButtonGrootteX = 100
%ButtonGrootteY = 20
%buttonspatie = 20 'ruimte horizontaal tussen button rijen en tussen de rand en buttons
%MaxRASEntries = 20
%IDOffset = 300 'IDs van de buttons vanaf 300 ....
%IDStop = 399
$Programma="RASelect v1.1a"
GLOBAL hDlg AS LONG
GLOBAL hRas AS LONG
GLOBAL hVerbinden AS LONG
GLOBAL IDRAS() AS LONG
GLOBAL RASnaam() AS STRING
'----------------------------------------------------
SUB Wacht(BYVAL TijdInMs AS LONG)
LOCAL r AS LONG
FOR r =1 TO TijdInMs/50
DIALOG DOEVENTS
SLEEP(50)
NEXT r
END SUB
'---------------------------------------------------
FUNCTION AfbrekenVerbinding() AS LONG
DIM hRas AS LONG
'gestart met AFBREKEN op de commando lijn
hRas = rsGetConnectionHandle(1)
IF hRas = %False THEN
MSGBOX "Fout ! ! ! (handle control failure)"+$CR+"(Is er wel een
openstaande verbinding?)",,$Programma
FUNCTION=0
ELSE
rsHangupConnection hRas
MSGBOX "Eén verbinding is afgebroken.",,$Programma
FUNCTION=1
END IF
END FUNCTION
'---------------------------------------------------
FUNCTION Verbind(Keuze AS LONG) AS LONG
DIALOG NEW hDlg,"Verbinden met : "+RASNaam(Keuze),,,300,100 TO hVerbinden
CONTROL ADD LABEL, hVerbinden,0, "Openen verbinding . . . . ", 10,10,80,18
DIALOG SHOW MODELESS hVerbinden
wacht 300
hRas = rsDialEntry(Keuze)
IF hRas = %False THEN
CONTROL ADD LABEL, hVerbinden,0, "Niet gelukt!", 10,40,180,50
DIALOG DOEVENTS
BEEP
wacht 3000
DIALOG END hVerbinden, 0
DIALOG SHOW STATE hDlg,%SW_SHOW
FUNCTION=0
ELSE
CONTROL ADD LABEL, hVerbinden,0, "U bent verbonden met "+RASNaam(Keuze),
10,40,180,50
wacht 3000
DIALOG END hVerbinden, 0
DIALOG END hDlg, 0
FUNCTION=1
END IF
END FUNCTION
'--------------------------------------------------------
CALLBACK FUNCTION Cancel AS LONG
DIALOG END hDlg, 0
FUNCTION = 1
END FUNCTION
CALLBACK FUNCTION Stopverbinding AS LONG
LOCAL Resultaat AS LONG
Resultaat=AfbrekenVerbinding
IF Resultaat=0 THEN BEEP
FUNCTION = 1
END FUNCTION
CALLBACK FUNCTION Gekozen AS LONG
LOCAL resultaat AS LONG
LOCAL Keuze AS LONG
'in de variabele CBCTL zit nu de waarde van de ID die aangeklikt is
'die waarden waren met een FOR/NEXT loop in het begin aangemaakt
'lopend van 301 tot en met de hoogst mogelijke aantal RAS verbindingen die zijn toegestaan
'dus 300 eraf trekken en de waarde van de juiste verbinding is er. . . . .
'de exacte offset waarde (300) zit in constante %IDOffset
'laat hoofddialoogdialoog even verdwijnen
DIALOG SHOW STATE hDlg,%SW_HIDE
'en tuig de gekozen verbinding op:
Keuze=CBCTL-%IDOffset '1 voor de eerste, twee voor de tweede button etc
resultaat=Verbind(Keuze)
FUNCTION = 1
END FUNCTION
'----------------------------------------------------
FUNCTION PBMAIN()
DIM i AS LONG
DIM iEntries AS LONG
DIM iSelect AS LONG
' DIM hRas AS LONG
DIM sSelect AS STRING
DIM ky AS STRING
LOCAL invoer AS STRING
LOCAL Tekst AS STRING
LOCAL Resultaat AS LONG
' maak diverse IDs aan voor de RAS buttons
DIM RasNaam(%MaxRASEntries)
DIM IDRas(%MaxRASEntries)
FOR i = 1 TO %MaxRASEntries 'hoogst mogelijke aantal verbindingen
'maak voor elke mogelijke entry een uniek ID nummer aan, beginnen met %IDOffset+1 (301)
IDRAS(i)=%IDOffset+i
NEXT i
'- Get the number of ras entries in the phone book
iEntries = rsAvailableEntries
Tekst="Bij opgave van een verbindingsnaam bij opstarten, wordt die verbinding
automatisch gemaakt. Die naam moet gelijk zijn aan één van de buttons."
IF iEntries < 1 THEN
MSGBOX "Geen Ras vermeldingen gevonden",,$Programma
ELSE
invoer=UCASE$(COMMAND$)
iSelect=0
FOR i = 1 TO iEntries
RASNaam(i)=TRIM$(rsGetEntryName(i))
NEXT i
' en meteen vergelijken
FOR i = 1 TO iEntries
IF UCASE$(RASNaam(i))=invoer THEN
iSelect=i 'exact match!
Resultaat=Verbind(iSelect) 'maak de opgegeven verbinding
IF Resultaat=1 THEN EXIT FUNCTION 'klaar is klara, programma einde
iSelect=0 : invoer=""
'niet gelukt, dus effe waarschuwen met een tekst bovenaan het dialoog
Tekst="Verbinding maken met "+RASNaam(i)+" is niet gelukt. Kies zelf uit de
lijst: "
END IF
NEXT i
IF invoer="0" THEN
Resultaat=AfbrekenVerbinding
IF Resultaat=1 THEN EXIT FUNCTION
END IF
IF iSelect=0 THEN
'invoer is niet herkend, dus wel melden wat was opgegeven en de lijst opgeven
IF invoer<>"" THEN
Tekst= "Uw invoer '"+invoer+"' is niet herkend als een beschikbare
verbinding. "+ _
"De opgave moet exact de naam van één van deze buttons zijn om automatisch te
verbinden." + $CR
END IF
'maak het dialoog zo groot als nodig is: aantal entries maal de ruimte tussen de buttons+
beetje voor OK
DIALOG NEW 0,"Beschikbare verbindingen op uw
systeem:"+STR$(iEntries),,,%MenuBreedte,(iEntries+5)*%RuimteTussenButtons,
%WS_SYSMENU TO hDlg
CONTROL ADD LABEL , hDlg, 0, Tekst, %buttonspatie,3,%MenuBreedte-2*%buttonspatie,30
FOR i = 1 TO iEntries
Tekst=RASNaam(i)
CONTROL ADD BUTTON,hDlg,
IDRas(i),Tekst,%buttonspatie,(iEntries-i+2)*%RuimteTussenButtons,%ButtonGrootteX,%ButtonGrootteY
CALL Gekozen
NEXT i
CONTROL ADD BUTTON,hDlg, %IDStop,"Verbinding
stoppen",%buttonspatie*2+%ButtonGrootteX,2*%RuimteTussenButtons,%ButtonGrootteX,(iEntries-1)*%RuimteTussenButtons+%ButtonGrootteY
CALL Stopverbinding
CONTROL ADD BUTTON,hDlg,
%IDCancel,"Afsluiten",(%MenuBreedte-%ButtonGrootteX)/2,(iEntries+3)*%RuimteTussenButtons,100,%ButtonGrootteY
CALL Cancel
DIALOG SHOW MODAL hDlg
END IF
END IF
END FUNCTION