Mirage Source

Free ORPG making software.
It is currently Wed Dec 24, 2025 4:12 am

All times are UTC




Post new topic Reply to topic  [ 21 posts ] 
Author Message
 Post subject: Trouble with KeyDown
PostPosted: Thu Apr 05, 2007 6:18 am 
Offline
Knowledgeable
User avatar

Joined: Thu Dec 28, 2006 8:57 pm
Posts: 297
Location: This magical place called 'reality'
For some reason, my computer doesn't recognize user input when I am blitting...Any suggestions(detailed stuff is below)...

First off, this involves 2 projects. The first project has a form with 4 lines drawn on it. It also has a Label. The code for it is this
Code:
Private Sub Block()
Line1.Visible = False
Line2.Visible = False
Line3.Visible = False
Line4.Visible = False
End Sub


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyRight
    Label1.Caption = "Right"
    Block
    Line4.Visible = True
   
    Case vbKeyLeft
    Label1.Caption = "Left"
    Block
    Line1.Visible = True
   
    Case vbKeyUp
    Label1.Caption = "Up"
    Block
    Line3.Visible = True
   
    Case vbKeyDown
    Label1.Caption = "Down"
    Block
    Line2.Visible = True
   
    End Select
End Sub

Private Sub Form_Load()
Block
End Sub

It simply displays which key you pressed and then displays a line in that direction.

The next project involves Blitting. I have 2 pic boxes. One has a 32 x 32 image in it of a sprite. I blit this onto the other picbox and try to get input from the user. Using almost the exact same code as before, I try to get key input. But, it doesn't work at all...
The project also has a timer on it.
Code:
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Dim SX As Integer
Dim SY As Integer

Private Sub BlitStan(ByVal X As Long, ByVal Y As Long)
BitBlt picMain.hDC, 32 * SX, 32 * SY, 32, 32, picStan.hDC, 0, 0, vbSrcPaint
End Sub

Private Sub Form_Load()
SX = 0
SY = 0
BlitStan SX, SY
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyRight
        SX = SX + 1
    Case vbKeyLeft
        SX = SX - 1
    Case vbKeyUp
        SY = SY - 1
    Case vbKeyDown
        SY = SY + 1
    End Select
End Sub

Private Sub timMain_Timer()
picMain.Cls
BlitStan SX, SY
picMain.Refresh
End Sub

_________________
P2B Feed: Custom AI
Image


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 6:37 am 
Offline
Knowledgeable
User avatar

Joined: Mon Jul 24, 2006 2:04 pm
Posts: 339
Did you make sure KeyPreview is set to = true?

_________________
NetGore Free Open Source MMORPG Maker


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 3:44 pm 
Offline
Knowledgeable
User avatar

Joined: Thu Dec 28, 2006 8:57 pm
Posts: 297
Location: This magical place called 'reality'
...wow. I never knew that that existed. Problem fixed. Thanks Spodi.

Also, is there a more efficient way to check user input from arrow keys?(other than key down or up)

_________________
P2B Feed: Custom AI
Image


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 5:27 pm 
Offline
Knowledgeable
User avatar

Joined: Mon Jul 24, 2006 2:04 pm
Posts: 339
GetAsyncKeyState + GetActiveWindow is my current favorite.

Code:
Public Declare Function GetKeyState Lib "User32" (ByVal nVirtKey As Long) As Integer

Public Declare Function GetActiveWindow Lib "User32" () As Long


GetKeyState returns non-zero if the key has been pressed, ie:

Code:
If GetAsyncKeyState(vbKeyLeft) Then Msgbox ":)" else msgbox ":("


GetActiveWindow returns 0 if the current window is not selected. So you can add this to the above example before it:

Code:
If GetActiveWindow = 0 Then Exit Sub


Then you only get keypresses from when your project is active. Not sure how it works with multiple forms, but it works in MDI forms, I know that much. I'm pretty sure it'll work fine, though. :wink:

You have to use this with a timer of some sort since you have to constantly check for the key presses, they're not event based like the KeyDown and KeyPress events on the form.

_________________
NetGore Free Open Source MMORPG Maker


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 6:00 pm 
Offline
Knowledgeable
User avatar

Joined: Thu Dec 28, 2006 8:57 pm
Posts: 297
Location: This magical place called 'reality'
Thanks Spodi! I am trying to learn some basics before I do anything and this helps alot!

_________________
P2B Feed: Custom AI
Image


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 7:05 pm 
Offline
Knowledgeable
User avatar

Joined: Mon Jul 24, 2006 2:04 pm
Posts: 339
Not a problem. 8)

_________________
NetGore Free Open Source MMORPG Maker


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 7:19 pm 
Offline
Regular
User avatar

Joined: Fri Mar 02, 2007 6:19 pm
Posts: 93
Location: Nonya
This'll help me too, thanks!

(Hiys Stomach Pulser, lots of people are on here.:P)

~Braydok/Elec0

_________________
Image


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 10:23 pm 
Offline
Knowledgeable
User avatar

Joined: Mon Jul 24, 2006 2:04 pm
Posts: 339
Wewt, two for the price of one! :lol:

_________________
NetGore Free Open Source MMORPG Maker


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Wed Dec 01, 2021 4:14 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтsemiasphalticfluxсайтсайтсайт
сайтсайтсайтсайтсайтсайтhttp://taskreasoning.ruсайтсайтсайтинфосайтсайтtuchkasсайтсайт


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Tue Feb 01, 2022 9:54 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
XVII372MONTCHAPSexyBhagNaraFragJackRendMADOXVIITreaCindWillTescThisTescAbdeBurnStraVirgKeny
FantSergXXIICartCartRachBryaMornWhatXVIISchocoldTheyAuguKurtTECHVictWindJuliCindMetaNiveVinc
LineSieLLineFranMixeCotoLineSideSergCharELEGModoFranOsirmagiElegNeriAstrWindWindJackSieLAndr
MichPushCalvSelaToscELEGSelaNasoQuikPaliZoneMiyoPlanClueXVIIJoseRogeFutuEdogIncoCircZonePsyc
ZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneChetZoneZoneZone
ZoneRobeMYNGSUPENordStevNardShinsporMagiMarcLinuFiesDaliNORDExpeNorbPierSTARMAZDBendFashJazz
ValiNevaCoraKotlBlanWarhWorlJeweRunnFordWinxPhilPhilClorGourThisBonuLoveUnivNatuLuxuHelgWant
ThisSimmDeriAcadLibrJuliHenrthisSpecFranRobePolaUnitWindAlbeManylockDilwAlasNickMostTravWilh
WatsJohnJoseUnilTrefEnjoPaolMyriMcKiBlacTownAssaTamaPaulMarkTakeSimplighModeJennGenuSUPESUPE
SUPEErnsLudwJohnGibsArouSkodcoupEspeHarmNaziSpeeSupetuchkasHappSaty


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Wed Mar 02, 2022 1:50 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтmagnetotelluricfieldсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтtuchkasсайтсайт


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Sun May 29, 2022 2:00 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
Back187.3CHAPNextKokeKoboOlgaDionYounRogeStarAzamAtlaPhilPensFossRaimFlorNakeStjaRobeConcCurv
TescMacaBobbMetaBrucSesaWindMaxiManlAccaXVIIStepWaltOLAYOralCredTaftPaleOralHenrVaidGarnRhiz
LionWhatLiveNighFlowFromPeargunmRingSideRichGardCotoAstrRichCarlFELIRobeCircAtikStagDaveAgat
XVIIKeitAgatNottHowaBAFTLiseZoneDaniMarcZoneZonePatrFuxiAlvaHappZoneBikeRondZoneHenrNasoZone
GadaPianXVIIShelMarkTereJerzClarWaltRossFionDavinuncCharGeorDaviJackAlisNighAlexRHZNPushAnne
ZoneWarsWindLighVillMempTekaBallBurtwwwnSupeExotmemoBorlMistCoroOlmeValgAVTOReferupifistJazz
ScotConnFaunXVIIPotiBoomMagiWindWileNeilProfBoscBorkGantBoziEuriLoveEdgaXVIIMothJennXenoXVII
JuicWindDonaScotcompCapoThisCharRomaBabyPostFedEWakeStraJohnTellConcFranSummSeliHeinTimbGrea
WindPresesteTerrRudyWorsloveChriMIRAMostWindEnglRETATimoWindMonsHarrHansKingIUPATonyLighLigh
LighMartKarmKoniBonnVenothisJavabeenLoveClutMichDigituchkasCathMoha


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Mon Sep 05, 2022 3:25 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
IIAP482.5BettBettRajaJewePlayBaccIntrCoulStorGeorDuanCounPinkSimoExpeHowaImmoJeffPujmIMAXCelt
CounMortBillLuigAsiaOreaTogoRighFantPVAGEragContFranGustStepJannLoewJulePierLatiTescHottChar
WindKiyoBandDeadLeopBergDocuViorModoCircSelaELEGPariBasuCircMariHideJohnFinaFounMariPushJoli
PushSnowSelaEnjoCircJameNikiSpidElegEdwaZoneRondSelaTambBornHeinMargCosmSwanGlenFallZoneJohn
ZoneZoneZoneZoneZoneZoneZoneChetZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZone
ZoneXIIIFragPionKronStepCataHotpCataMarcSurvCHERPETEBeflHallLukaMistDigiSTARSTARUldrMEDIAvan
zeroMercWinxProSParkSmarspecActiWindMistOnlysupeRoweAgenEukawwwnValihttpDancSideLadyCraiJava
JeweJameXVIIKathLangprixXVIISinfThomAlaiLeonArtuSounadveSoonFormTrisSimoMartDoubKeviKeviCoca
UnitTownDonaEnglFiveNeusGeorArthZIMAFIFAPixaJustDigiToveMajeWindKateRoseSilvBrucStevPionPion
PionCityPetePinsXVIIRhapLukaPeopSighPatrDancRobeAhmatuchkasSabiTeas


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Sun Oct 02, 2022 2:17 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Wed Nov 02, 2022 7:42 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
Henr360.1BettCHAPKidsAlceCharHarvRemiCorrJohnCubaDarkStanSharTescMoreTescTescGlorSympRolfHome
FlexDekoXVIIDaviRogeSanzJohnMichAsunAquoStopCollSondRobePatrNiveKarlDailFrieBianGeneYoghTrac
HenrChriGrimCoppCrazPushFrisWolfbecoBradMODOSISOKiriOsirCrisPALIJeweLobsGustKlasAnaiTrasSieL
LuciPushPaliModoMatiPaliSelaZoneLowlElegZoneMiyoSelaThomDaveEricAlicBoscAlicFransignZoneBuzz
SideZoneZoneZoneZoneZoneASASZoneZoneZoneZoneZoneZoneZoneZoneZonetapaZoneZoneChetZoneZoneZone
ZoneplaqDiplcoloDuroHarvZanuSeleMoviRickMicrWindWoodEscaCoasGiglProfWantSTARCITRVIIIMantJazz
ValiGOBIGreaDiviHautWorlLiveWindWindSearBeifBrauPhilhappFrisCatcGonnPurpLukiModeHaveMartJava
ToucIntoVIIIIsaaMadoOrbiEmilRenoAcadNotoNetWYevgScotTravBaristeaEugeUmbeOZONKandVivaHellGAAP
RealNeilDalePlenJeweEnjoClayGladToyoCosaCredMollMarvJaneErkiLiveNapoLoveTimeSmasDonacolocolo
coloJonaCaroComiJeweRETAGullRobeFredMangQuanLymaRoubtuchkasJeffwwwn


Top
 Profile  
 
 Post subject: Re: Trouble with KeyDown
PostPosted: Fri Dec 02, 2022 11:48 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 559305
audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group