PseuWoWConsole 1.0.0 by TheTourist.

This app is a wrapper for PseuWow. What it does is open a port on 8095 on the machine, and anything written to this port will treated as if you inputted it in the console.

Sorry it took me so long to add this.
This commit is contained in:
thetourist 2007-07-24 07:38:59 +00:00
parent 5b8bf4c1c1
commit 15e24961ce
20 changed files with 1863 additions and 0 deletions

View File

@ -0,0 +1,27 @@
=======================================================
PseuWoWConsole - Version 1.0.0
=======================================================
"What ain't no country I ever heard of! They speak English in What? "
=======================================================
Greetings from TheTourist
=======================================================
This app is a wrapper for PseuWow.
What it does is open a port on 8095 on the machine, and anything written to this port will treated as if you inputted it in the console.
Try this from HyperTerm:
SAY Hello Bitches
to port 8095, your Bot will say
Hello Bitches!
Thus from code, script or external app you can make calls to your bot.
=======================================================
Code
=======================================================
I can't profess to be a trained developer, I am entirely self taught. So any advice or corrections are welcome. Code was written in Delphi 6 with the JEDI VCL suite installed. Feel Free to modify and share as needed.
This is all released under the GNU General Public License, which you review at: http://www.gnu.org/copyleft/gpl.html
As I feel it's better to share, we all get along better that way.

View File

@ -0,0 +1,40 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J+
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-E"F:\ttWoWEmu\pseuwow\"
-LE"c:\program files\borland\delphi6\Projects\Bpl"
-LN"c:\program files\borland\delphi6\Projects\Bpl"
-U"E:\Coding\Delphi\rutinas\fastlib"
-O"E:\Coding\Delphi\rutinas\fastlib"
-I"E:\Coding\Delphi\rutinas\fastlib"
-R"E:\Coding\Delphi\rutinas\fastlib"

View File

@ -0,0 +1,583 @@
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=1
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=F:\ttWoWEmu\pseuwow\
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=E:\Coding\Delphi\rutinas\fastlib
Packages=Vcl50;Vclx50;VclSmp50;Vcldb50;vclado50;ibevnt50;Vclbde50;vcldbx50;Qrpt50;TeeUI50;TeeDB50;Tee50;Dss50;TeeQR50;VCLIB50;Vclmid50;vclie50;Inetdb50;Inet50;NMFast50;webmid50;dclocx50;dclaxserver50
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=$00000C0A
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
c:\program files\borland\delphi6\Bin\dclsoap60.bpl=Borland SOAP Components
c:\program files\borland\delphi6\Projects\Bpl\ThirdParty2000.bpl=3rd Party Components
c:\program files\borland\delphi6\Projects\Bpl\SweetControls6.bpl=CA SweetControls
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=1
Item0=E:\Coding\Delphi\rutinas\fastlib
[HistoryLists\hlOutputDirectorry]
Count=1
Item0=F:\ttWoWEmu\pseuwow\
[Exception Log]
EurekaLog Version=6003
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
TerminateBtn Operation=2
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=2
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soAppUpTime=1
soExcDate=1
soExcAddress=1
soExcModuleName=1
soExcModuleVersion=1
soExcType=1
soExcMessage=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soOSCharset=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
soCustomData=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoDoNotStoreProcNames=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
boHandleSafeCallExceptions=0
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_Caption=1
mtDialog_Caption0="Error occurred"
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happended (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_OSCharset=1
mtLog_OSCharset0="Charset"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English

View File

@ -0,0 +1,16 @@
program PseuWoWConsole;
uses
Forms,
fMain in 'fMain.pas' {frmMain},
RedirectConsole in 'RedirectConsole.pas',
modRichEdit in '..\..\..\Projects\Common\modRichEdit.pas';
{$R *.RES}
begin
Application.Initialize;
Application.Title := 'PseWoW Console';
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.

Binary file not shown.

View File

@ -0,0 +1,15 @@
program PseuWoWConsole;
uses
Forms,
fMain in 'fMain.pas' {frmMain},
RedirectConsole in 'RedirectConsole.pas';
{$R *.RES}
begin
Application.Initialize;
Application.Title := 'PseWoW Console';
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.

Binary file not shown.

View File

@ -0,0 +1,144 @@
/////////////////////////////////////////////////////
// //
// UNiT REDiRECT CONSOLE by SONiC //
// //
// Console input/output redirection with pipes //
// Last revision: 02/SEPT/02 //
// //
// Bugs/comments to: Sonic1980@msn.com //
// Home page: http://sonic.rulestheweb.com //
// //
// Freeware //
// //
/////////////////////////////////////////////////////
unit RedirectConsole;
interface
const
CRLF=#13#10;
var
RC_SendBuf: string;
RC_End: Boolean;
RC_ExitCode: Cardinal;
procedure RC_Run(Command: string);
procedure RC_LineIn(s: string);
var RC_LineOut: procedure(s: string);
implementation
uses Windows, Forms;
procedure RC_LineIn(s: string);
begin
RC_SendBuf:=RC_SendBuf+s+CRLF;
end; // RC_LineIn;
function IsWinNT: Boolean;
var osv: tOSVERSIONINFO;
begin
osv.dwOSVersionInfoSize:=sizeof(osv);
GetVersionEx(osv);
result:=osv.dwPlatformID=VER_PLATFORM_WIN32_NT;
end; // IsWinNT
procedure SplitLines(s: string);
var t: string;
begin
while pos(CRLF, s)<>0 do begin
t:=copy(s, 1, pos(CRLF, s)-1);
RC_LineOut(t);
delete(s, 1, pos(CRLF, s)+1);
end;
if length(s)>0 then RC_LineOut(s);
end; // SplitLines
procedure RC_Run(Command: string);
const bufsize=1024; // 1KByte buffer
var
buf: array [0..bufsize-1] of char;
si: tSTARTUPINFO;
sa: tSECURITYATTRIBUTES;
sd: tSECURITYDESCRIPTOR;
pi: tPROCESSINFORMATION;
newstdin, newstdout, read_stdout, write_stdin: tHandle;
bread, avail: dword;
begin
// Configuraciones de seguridad para WinNT
if IsWinNT then begin
InitializeSecurityDescriptor(@sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(@sd, true, nil, false);
sa.lpSecurityDescriptor:=@sd;
end else sa.lpSecurityDescriptor:=nil;
// Creamos Pipe A
if not CreatePipe(newstdin, write_stdin, @sa, 0) then begin
RC_LineOut('Error creating Pipe A');
exit;
end;
// Creamos Pipe B
if not CreatePipe(read_stdout, newstdout, @sa, 0) then begin
RC_LineOut('Error creating Pipe B');
CloseHandle(newstdin);
CloseHandle(write_stdin);
exit;
end;
// Configuramos si
GetStartupInfo(si);
si.dwFlags:=STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
si.wShowWindow:=SW_HIDE;
si.hStdOutput:=newstdout;
si.hStdError:=newstdout;
si.hStdInput:=newstdin;
// Creamos proceso
if not CreateProcess(pchar(command), nil, nil, nil, true,
CREATE_NEW_CONSOLE, nil, nil, si, pi) then begin
RC_LineOut('Error creating process: '+command);
CloseHandle(newstdin);
CloseHandle(newstdout);
CloseHandle(read_stdout);
CloseHandle(write_stdin);
exit;
end;
// Loop principal
fillchar(buf, sizeof(buf), 0);
RC_End:=false;
RC_SendBuf:='';
repeat
// application.processmessages;
Application.HandleMessage;
GetExitCodeProcess(pi.hProcess, RC_ExitCode);
if (RC_ExitCode<>STILL_ACTIVE) then RC_End:=True;
PeekNamedPipe(read_stdout, @buf, bufsize, @bread, @avail, nil);
// Comprobamos texto de salida
if (bread<>0) then begin
fillchar(buf, bufsize, 0);
if (avail>bufsize) then
while (bread>=bufsize) do begin
ReadFile(read_stdout, buf, bufsize, bread, nil);
SplitLines(buf);
fillchar(buf, bufsize, 0);
end
else begin
ReadFile(read_stdout, buf, bufsize, bread, nil);
SplitLines(buf);
end;
end;
// Comprobamos texto de entrada
while (Length(RC_SendBuf)>0) do begin
WriteFile(write_stdin, RC_SendBuf[1], 1, bread, nil);
Delete(RC_SendBuf, 1, 1);
end;
until RC_End;
// Cerramos las cosas
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
CloseHandle(newstdin);
CloseHandle(newstdout);
CloseHandle(read_stdout);
CloseHandle(write_stdin);
end; // RC_Run
end.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,92 @@
object Form1: TForm1
Left = 268
Top = 121
Width = 537
Height = 364
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 15
object Memo1: TMemo
Left = 0
Top = 73
Width = 529
Height = 264
Align = alClient
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ParentFont = False
ScrollBars = ssVertical
TabOrder = 0
WordWrap = False
end
object Edit2: TEdit
Left = 8
Top = 304
Width = 425
Height = 23
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ParentFont = False
TabOrder = 1
Text = 'dir *.* /s'
OnKeyPress = Edit2KeyPress
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 529
Height = 73
Align = alTop
BevelOuter = bvNone
TabOrder = 2
object Edit1: TEdit
Left = 8
Top = 10
Width = 513
Height = 23
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ParentFont = False
TabOrder = 0
Text = 'd:\windows\system32\cmd.exe'
end
object Button2: TButton
Left = 8
Top = 40
Width = 75
Height = 25
Caption = 'RUN'
TabOrder = 1
OnClick = Button2Click
end
object Button3: TButton
Left = 88
Top = 40
Width = 75
Height = 25
Caption = 'Exit'
TabOrder = 2
OnClick = Button3Click
end
end
end

View File

@ -0,0 +1,66 @@
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, RedirectConsole, ExtCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Edit2: TEdit;
Panel1: TPanel;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure MyLineOut(s: string); // Output procedure
begin
form1.memo1.lines.add(s);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RC_LineOut:=MyLineOut; // set Output
edit2.align:=albottom;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
RC_Run(Edit1.text); // run console program
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
RC_LineIn('exit');
Close;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
const EnterKey=#13; NoKey=#00;
begin
if key=EnterKey then begin // send command line on Enter Key
RC_LineIn(edit2.text);
edit2.text:='';
key:=NoKey;
end;
end;
end.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,144 @@
object frmMain: TfrmMain
Left = 393
Top = 142
Width = 535
Height = 390
Caption = 'PseuWoW Console'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
OldCreateOrder = False
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 15
object Panel1: TPanel
Left = 0
Top = 0
Width = 527
Height = 73
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object txtExe: TEdit
Left = 8
Top = 10
Width = 513
Height = 23
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ParentFont = False
TabOrder = 0
Text = '[enter path to pseuwow bin]'
end
object btnRun: TButton
Left = 8
Top = 40
Width = 75
Height = 25
Caption = 'RUN'
TabOrder = 1
OnClick = btnRunClick
end
object btnExit: TButton
Left = 88
Top = 40
Width = 75
Height = 25
Caption = 'Exit'
TabOrder = 2
OnClick = btnExitClick
end
end
object Console: TRichEdit
Left = 0
Top = 73
Width = 527
Height = 239
Align = alClient
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
Lines.Strings = (
'')
ParentFont = False
ReadOnly = True
ScrollBars = ssVertical
TabOrder = 1
OnResizeRequest = ConsoleResizeRequest
end
object grpCmd: TGroupBox
Left = 0
Top = 312
Width = 527
Height = 51
Align = alBottom
Caption = 'Command'
TabOrder = 2
object comCommand: TComboBox
Left = 8
Top = 19
Width = 513
Height = 23
AutoDropDown = True
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ItemHeight = 15
ParentFont = False
TabOrder = 0
OnKeyDown = comCommandKeyDown
Items.Strings = (
'!'
'!SAY'
'QUIT'
'SAY')
end
end
object servRemote: TServerSocket
Active = False
Port = 8089
ServerType = stNonBlocking
OnClientRead = servRemoteClientRead
Left = 432
Top = 32
end
object timerStart: TTimer
Interval = 3000
OnTimer = timerStartTimer
Left = 472
Top = 32
end
object clientSock: TClientSocket
Active = False
ClientType = ctNonBlocking
Host = '127.0.0.1'
Port = 8085
OnConnecting = clientSockConnecting
OnConnect = clientSockConnect
OnError = clientSockError
Left = 400
Top = 32
end
object TrayIcon: TJvTrayIcon
Active = True
IconIndex = 0
Visibility = [tvVisibleTaskBar, tvVisibleTaskList, tvAutoHide, tvAutoHideIcon, tvRestoreClick, tvMinimizeClick]
Left = 360
Top = 32
end
end

View File

@ -0,0 +1,272 @@
unit fMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, RedirectConsole, ExtCtrls, IniFiles, ScktComp, JvComponentBase,
JvTrayIcon, ComCtrls, modRichEdit, StrUtils;
type
TfrmMain = class(TForm)
Panel1: TPanel;
txtExe: TEdit;
btnRun: TButton;
btnExit: TButton;
servRemote: TServerSocket;
timerStart: TTimer;
clientSock: TClientSocket;
TrayIcon: TJvTrayIcon;
Console: TRichEdit;
grpCmd: TGroupBox;
comCommand: TComboBox;
procedure btnRunClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure timerStartTimer(Sender: TObject);
procedure servRemoteClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormDestroy(Sender: TObject);
procedure clientSockConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure clientSockError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ConsoleResizeRequest(Sender: TObject; Rect: TRect);
procedure comCommandKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure clientSockConnecting(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
App : String;
Running : Boolean;
Ready : Boolean;
function ConsoleCommand(AString : String):Boolean;
procedure ShutDown;
procedure Execute(AFile: String);
procedure Launch;
procedure Log(AText: String; Color : TColor = clAqua);
procedure WriteFromPseWow(AString : String);
procedure AddHistoryItem(Item : String);
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
procedure MyLineOut(s: string); // Output procedure
begin
// frmMain.memo1.lines.add(s);
frmMain.WriteFromPseWow(s);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
RC_LineOut:=MyLineOut; // set Output
Ready := False;
end;
procedure TfrmMain.btnRunClick(Sender: TObject);
var
IniFile : TInifile;
begin
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.INI');
IniFile.WriteString('Execute','Application',txtExe.Text);
IniFile.UpdateFile;
IniFile.Free;
RC_Run(txtExe.text); // run console program
end;
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
ShutDown();
end;
procedure TfrmMain.ShutDown;
begin
Log('Shut down PseuWow Process',clRed);
RC_LineIn('!');
RC_LineIn('quit');
Sleep(3000);
end;
procedure TfrmMain.Execute(AFile : String);
begin
servRemote.Active := True;
Running := True;
Panel1.Hide;
RC_Run(AFile);
comCommand.SetFocus;
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if RC_ExitCode = STILL_ACTIVE then
begin
ShutDown;
CanClose := True;
end;
end;
procedure TfrmMain.timerStartTimer(Sender: TObject);
begin
timerStart.Enabled := False;
if Ready then
begin
TrayIcon.HideApplication;
Launch;
Exit;
end
else
begin
if clientSock.Active = false then
clientSock.Active := True;
end;
timerStart.Enabled := True;
end;
procedure TfrmMain.servRemoteClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
RC_LineIn('!');
RC_LineIn(Socket.ReceiveText);
Log('Received Remote Commad: ' + Socket.ReceiveText, clGreen );
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
servRemote.Active := False;
end;
procedure TfrmMain.clientSockConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Ready := True;
clientSock.Active := False;
Log('**** WS Is Ready For Connections ****');
Launch;
end;
procedure TfrmMain.clientSockError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Ready := False;
clientSock.Active := False;
Log('Still Waiting For Server',clMaroon);
ErrorCode := 0;
end;
procedure TfrmMain.Launch;
var
IniFile : TInifile;
begin
if Ready = False then
Exit;
Running := False;
timerStart.Enabled := False;
//TT: Read from Inifile for the path the file we want.
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.INI');
App := IniFile.ReadString('Execute','Application','');
if App = '' then
begin
if FileExists(ExtractFilePath(Application.ExeName)+'pseuwow.exe') then
App := ExtractFilePath(Application.ExeName)+'pseuwow.exe';
end;
IniFile.WriteString('Execute','Application',App);
IniFile.UpdateFile;
IniFile.Free;
if App <> '' then
Execute(App);
end;
procedure TfrmMain.Log(AText: String; Color: TColor);
begin
AddColouredLine(Console,'CONSOLE: '+AText, Color);
end;
procedure TfrmMain.ConsoleResizeRequest(Sender: TObject; Rect: TRect);
var
ScrollMessage: TWMVScroll;
i : Integer;
begin
ScrollMessage.Msg := WM_VScroll;
for i := 0 to Console.Lines.Count do
begin
ScrollMessage.ScrollCode := sb_LineDown;
ScrollMessage.Pos := 0;
Console.Dispatch(ScrollMessage);
end;
end;
procedure TfrmMain.comCommandKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then
begin
if ConsoleCommand(comCommand.Text) then
begin
key := 0;
Exit;
end;
// send command line on Enter Key
RC_LineIn(comCommand.Text);
AddHistoryItem(comCommand.Text);
comCommand.Text := '';
key:=0;
end;
end;
procedure TfrmMain.clientSockConnecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
Log('Establishing Connection to WS',clGreen);
end;
procedure TfrmMain.WriteFromPseWow(AString: String);
begin
AString := AnsiReplaceText(AString,'|r','');
//This doesnt ADD any color at the moment it just seems to clean up the string a bit
AddColourToLine(Console,AString);
end;
procedure TfrmMain.AddHistoryItem(Item: String);
begin
with comCommand do
begin
if Items.IndexOf(Item) = -1 then
begin
Items.Add(Item);
end;
end;
end;
function TfrmMain.ConsoleCommand(AString: String): Boolean;
begin
Result := False;
AString := UpperCase(AString);
if (AString = 'QUIT') or (AString = 'EXIT') then
begin
Result := True;
ShutDown;
Sleep(1000);
Close;
end;
end;
end.

Binary file not shown.

View File

@ -0,0 +1,144 @@
object frmMain: TfrmMain
Left = 393
Top = 142
Width = 535
Height = 390
Caption = 'PseuWoW Console'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
OldCreateOrder = False
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 15
object Panel1: TPanel
Left = 0
Top = 0
Width = 527
Height = 73
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Edit1: TEdit
Left = 8
Top = 10
Width = 513
Height = 23
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ParentFont = False
TabOrder = 0
Text = '[enter path to pseuwow bin]'
end
object Button2: TButton
Left = 8
Top = 40
Width = 75
Height = 25
Caption = 'RUN'
TabOrder = 1
OnClick = Button2Click
end
object Button3: TButton
Left = 88
Top = 40
Width = 75
Height = 25
Caption = 'Exit'
TabOrder = 2
OnClick = Button3Click
end
end
object Console: TRichEdit
Left = 0
Top = 73
Width = 527
Height = 239
Align = alClient
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
Lines.Strings = (
'')
ParentFont = False
ReadOnly = True
ScrollBars = ssVertical
TabOrder = 1
OnResizeRequest = ConsoleResizeRequest
end
object grpCmd: TGroupBox
Left = 0
Top = 312
Width = 527
Height = 51
Align = alBottom
Caption = 'Command'
TabOrder = 2
object comCommand: TComboBox
Left = 8
Top = 19
Width = 513
Height = 23
AutoDropDown = True
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = 16744576
Font.Height = -11
Font.Name = 'Fixedsys'
Font.Style = []
ItemHeight = 15
ParentFont = False
TabOrder = 0
OnKeyDown = comCommandKeyDown
Items.Strings = (
'!'
'!SAY'
'QUIT'
'SAY')
end
end
object servRemote: TServerSocket
Active = False
Port = 8089
ServerType = stNonBlocking
OnClientRead = servRemoteClientRead
Left = 432
Top = 32
end
object timerStart: TTimer
Interval = 3000
OnTimer = timerStartTimer
Left = 472
Top = 32
end
object clientSock: TClientSocket
Active = False
ClientType = ctNonBlocking
Host = '127.0.0.1'
Port = 8085
OnConnecting = clientSockConnecting
OnConnect = clientSockConnect
OnError = clientSockError
Left = 400
Top = 32
end
object JvTrayIcon1: TJvTrayIcon
Active = True
IconIndex = 0
Visibility = [tvVisibleTaskBar, tvVisibleTaskList, tvAutoHide, tvAutoHideIcon, tvRestoreClick, tvMinimizeClick]
Left = 360
Top = 32
end
end

View File

@ -0,0 +1,272 @@
unit fMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, RedirectConsole, ExtCtrls, IniFiles, ScktComp, JvComponentBase,
JvTrayIcon, ComCtrls, modRichEdit, StrUtils;
type
TfrmMain = class(TForm)
Panel1: TPanel;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
servRemote: TServerSocket;
timerStart: TTimer;
clientSock: TClientSocket;
JvTrayIcon1: TJvTrayIcon;
Console: TRichEdit;
grpCmd: TGroupBox;
comCommand: TComboBox;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure timerStartTimer(Sender: TObject);
procedure servRemoteClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormDestroy(Sender: TObject);
procedure clientSockConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure clientSockError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ConsoleResizeRequest(Sender: TObject; Rect: TRect);
procedure comCommandKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure clientSockConnecting(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
App : String;
Running : Boolean;
Ready : Boolean;
function ConsoleCommand(AString : String):Boolean;
procedure ShutDown;
procedure Execute(AFile: String);
procedure Launch;
procedure Log(AText: String; Color : TColor = clAqua);
procedure WriteFromPseWow(AString : String);
procedure AddHistoryItem(Item : String);
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
procedure MyLineOut(s: string); // Output procedure
begin
// frmMain.memo1.lines.add(s);
frmMain.WriteFromPseWow(s);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
RC_LineOut:=MyLineOut; // set Output
Ready := False;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
var
IniFile : TInifile;
begin
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.INI');
IniFile.WriteString('Execute','Application',Edit1.Text);
IniFile.UpdateFile;
IniFile.Free;
RC_Run(Edit1.text); // run console program
end;
procedure TfrmMain.Button3Click(Sender: TObject);
begin
ShutDown();
end;
procedure TfrmMain.ShutDown;
begin
Log('Shut down PseuWow Process',clRed);
RC_LineIn('!');
RC_LineIn('quit');
Sleep(3000);
end;
procedure TfrmMain.Execute(AFile : String);
begin
servRemote.Active := True;
Running := True;
Panel1.Hide;
RC_Run(AFile);
comCommand.SetFocus;
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if RC_ExitCode = STILL_ACTIVE then
begin
ShutDown;
CanClose := True;
end;
end;
procedure TfrmMain.timerStartTimer(Sender: TObject);
begin
timerStart.Enabled := False;
if Ready then
begin
JvTrayIcon1.HideApplication;
Launch;
Exit;
end
else
begin
if clientSock.Active = false then
clientSock.Active := True;
end;
timerStart.Enabled := True;
end;
procedure TfrmMain.servRemoteClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
RC_LineIn('!');
RC_LineIn(Socket.ReceiveText);
Log('Received Remote Commad: ' + Socket.ReceiveText, clGreen );
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
servRemote.Active := False;
end;
procedure TfrmMain.clientSockConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Ready := True;
clientSock.Active := False;
Log('**** WS Is Ready For Connections ****');
Launch;
end;
procedure TfrmMain.clientSockError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Ready := False;
clientSock.Active := False;
Log('Still Waiting For Server',clMaroon);
ErrorCode := 0;
end;
procedure TfrmMain.Launch;
var
IniFile : TInifile;
begin
if Ready = False then
Exit;
Running := False;
timerStart.Enabled := False;
//TT: Read from Inifile for the path the file we want.
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.INI');
App := IniFile.ReadString('Execute','Application','');
if App = '' then
begin
if FileExists(ExtractFilePath(Application.ExeName)+'pseuwow.exe') then
App := ExtractFilePath(Application.ExeName)+'pseuwow.exe';
end;
IniFile.WriteString('Execute','Application',App);
IniFile.UpdateFile;
IniFile.Free;
if App <> '' then
Execute(App);
end;
procedure TfrmMain.Log(AText: String; Color: TColor);
begin
AddColouredLine(Console,'CONSOLE: '+AText, Color);
end;
procedure TfrmMain.ConsoleResizeRequest(Sender: TObject; Rect: TRect);
var
ScrollMessage: TWMVScroll;
i : Integer;
begin
ScrollMessage.Msg := WM_VScroll;
for i := 0 to Console.Lines.Count do
begin
ScrollMessage.ScrollCode := sb_LineDown;
ScrollMessage.Pos := 0;
Console.Dispatch(ScrollMessage);
end;
end;
procedure TfrmMain.comCommandKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then
begin
if ConsoleCommand(comCommand.Text) then
begin
key := 0;
Exit;
end;
// send command line on Enter Key
RC_LineIn(comCommand.Text);
AddHistoryItem(comCommand.Text);
comCommand.Text := '';
key:=0;
end;
end;
procedure TfrmMain.clientSockConnecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
Log('Establishing Connection to WS',clGreen);
end;
procedure TfrmMain.WriteFromPseWow(AString: String);
begin
AString := AnsiReplaceText(AString,'|r','');
//This doesnt ADD any color at the moment it just seems to clean up the string a bit
AddColourToLine(Console,AString);
end;
procedure TfrmMain.AddHistoryItem(Item: String);
begin
with comCommand do
begin
if Items.IndexOf(Item) = -1 then
begin
Items.Add(Item);
end;
end;
end;
function TfrmMain.ConsoleCommand(AString: String): Boolean;
begin
Result := False;
AString := UpperCase(AString);
if (AString = 'QUIT') or (AString = 'EXIT') then
begin
Result := True;
ShutDown;
Sleep(1000);
Close;
end;
end;
end.

View File

@ -0,0 +1,48 @@
2007-06-06 11:25:28
2007-06-06 11:25:28 --- Initializing Instance ---
2007-06-06 11:25:28 Loading DefScripts from folder './scripts/'
2007-06-06 11:25:28 Error executing '_startup.def'
2007-06-06 11:25:28 Errors while initializing!
2007-06-06 11:26:03
2007-06-06 11:26:03 --- Initializing Instance ---
2007-06-06 11:26:03 Loading DefScripts from folder './scripts/'
2007-06-06 11:26:03 Error executing '_startup.def'
2007-06-06 11:26:03 Errors while initializing!
2007-06-06 11:26:31
2007-06-06 11:26:31 --- Initializing Instance ---
2007-06-06 11:26:31 Loading DefScripts from folder './scripts/'
2007-06-06 11:26:31 Error executing '_startup.def'
2007-06-06 11:26:31 Errors while initializing!
2007-06-06 11:27:01
2007-06-06 11:27:01 --- Initializing Instance ---
2007-06-06 11:27:01 Loading DefScripts from folder './scripts/'
2007-06-06 11:27:01 Error executing '_startup.def'
2007-06-06 11:27:01 Errors while initializing!
2007-06-06 11:28:07
2007-06-06 11:28:07 --- Initializing Instance ---
2007-06-06 11:28:07 Loading DefScripts from folder './scripts/'
2007-06-06 11:28:07 Error executing '_startup.def'
2007-06-06 11:28:07 Errors while initializing!
2007-06-06 11:28:39
2007-06-06 11:28:39 --- Initializing Instance ---
2007-06-06 11:28:39 Loading DefScripts from folder './scripts/'
2007-06-06 11:28:39 Error executing '_startup.def'
2007-06-06 11:28:39 Errors while initializing!
2007-06-06 11:30:01
2007-06-06 11:30:01 --- Initializing Instance ---
2007-06-06 11:30:01 Loading DefScripts from folder './scripts/'
2007-06-06 11:30:01 Error executing '_startup.def'
2007-06-06 11:30:01 Errors while initializing!
2007-06-06 11:30:34
2007-06-06 11:30:34 --- Initializing Instance ---
2007-06-06 11:30:34 Loading DefScripts from folder './scripts/'
2007-06-06 11:30:34 Error executing '_startup.def'
2007-06-06 11:30:34 Errors while initializing!