| 05-27-2006, 11:36 PM | #1 |
I'm just having fun messing with the World Editor. The only thing this can do for now is to change the font of the JASS editor. You use it by starting WEHelper.exe. It will load the World Editor and add a new menu. I've planned a few other features, but input would be appreciated. Planned features: - A menu where you can add different programs (Like a mini start menu). - More stuff for the JASS Editor. - A XP theme enabler. (See Nantuko Husk’s nice little thread for more info) Might add features: - Tabs for opened maps. - Optimize map (Calls other optimizing tools) |
| 05-28-2006, 03:09 PM | #2 |
Dll injection eh? |
| 05-30-2006, 12:11 AM | #3 |
This will sure be useful, once the mentioned features are implemented. |
| 06-05-2006, 09:42 PM | #4 |
A updated version. Loader by xttocs. Features: - Change map launch parameters - Remove udg_ variable prefix - Change font of jass editor. See Helpers\AlphaHelper.ini for settings. How this works: WEHelper.exe start the World Editor and loads WEHelper.dll into it. WEHelper.dll loads all the .dll in the Helpers\ folder. WEHelper.dll calls the Helper_Call function in the user dll. WEHelper contains information that the user dll can call to get. The Callback points to a THCallback function. To get the process with all access call Callback(H_PROCESS, 0, 0). It will return the handle to the process. Code:
unit HelperAPI; interface type THCallback = function(Reason, Param1, Param2:Cardinal):Cardinal; THCall = function(Reason, Param1, Param2:Cardinal; Callback:Cardinal):Cardinal; const // THCall Reasons H_INIT = 0; H_EXIT = 1; H_GETNAME = 2; H_KNOWWE = 3; H_CONFIG = 4; // THCallback Reasons H_UNIQUEID = 0; H_PROCESS = 1; H_CALL = 'Helper_Call'; implementation end. Helper Framework: Code:
unit HelperFramework;
interface
uses Windows;
const
GlobalVariablePrefix_Address: DWord = $7DAAA8;
LaunchParamenter_Address: DWord = $4D7B51;
LaunchParamenter: DWord = $7BDA60;
var Process: Cardinal;
procedure UseGlobalVariablePrefix(Enable:Boolean);
procedure SetMapLaunchParameters(Parameters:String);
implementation
procedure SetMapLaunchParameters(Parameters:String);
var Data:Byte;
Write:Cardinal;
WriteAddress, StrLoop,StrLength: Cardinal;
begin
Data := $60;
WriteProcessMemory(Process, Pointer(LaunchParamenter_Address), @Data, 1, Write);
StrLength := Length(Parameters);
for StrLoop := 0 to StrLength do
begin
if (StrLoop >= StrLength) then
Data := 0
else
Data := Byte( Parameters[StrLoop+1] );
WriteAddress := LaunchParamenter + StrLoop;
WriteProcessMemory(Process, Pointer(WriteAddress), @Data, 1, Write);
end;
end;
procedure UseGlobalVariablePrefix(Enable:Boolean);
var Data:Byte;
Write:Cardinal;
begin
if Enable then
Data := $75
else
Data := $00;
WriteProcessMemory(Process, Pointer(GlobalVariablePrefix_Address), @Data, 1, Write);
end;
end.Demo User Dll: Code:
library DemoHelper;
uses
Windows, Messages, HelperAPI;
function Helper_Call(Reason, Param1, Param2:Cardinal; Callback:Cardinal):Cardinal;
var S:String;
begin
case Reason of
H_INIT: // Before WE Starts
begin
end;
H_KNOWWE: // Once the main window is created
begin
end;
H_GETNAME: // When the config dialog wants helper name.
begin
if Param1 = 0 then
Result := 1 // Yes we want to list this helper in the configure list
else
begin
S := 'Demo Helper'; // String to add to the configure list
Result := Integer(Pointer(PChar(S)));
end;
end;
H_EXIT: // When WE exists
begin
end;
end;
end;
exports Helper_Call;
begin
end. |
| 06-18-2006, 04:42 PM | #5 |
*update* Manager.exe updates/downloads the helpers. Use WEHelper.exe to use them with WE. ____ JassPreprocessor A helper which can use #import in jass code in WE. #include <test> will load the file test.j that should be placed in WEHelper.exe's root folder + "Lib\". If you write #include "C:\test.j" it will load "C:\test.j". |
| 06-19-2006, 10:16 AM | #6 |
The menu it adds to the WE, seems to crash it when used. At least for me. |
