Working with delphi menus (Views: 1215)
Problem/Question/Abstract: How to hack delphi environment (IDE)? Answer: This is just a sample application for interacting with Delphi IDE.U can use it more extensively. For invoking other applications u just need to change the menuclick event handler. Given below is the full code. Compile this unit into a package and install the same. unit SubhaExp; interface uses Windows, Menus, ExtCtrls, SysUtils, Forms, ToolsApi; type TSubhaMenu = class private FMainMenu: TMainMenu; FFileMenu: TMenuItem; FGiriMenu: TMenuItem; procedure OnMenuItemClick(Sender: TObject); public procedure AddMenuItem; procedure RemoveMenuItem; end; var FSubhaMenu: TSubhaMenu; procedure Register; implementation procedure TSubhaMenu.AddMenuItem; var i: Integer; begin FMainMenu := (BorlandIDEServices as INTAServices).MainMenu; for i := 0 to FMainMenu.Items.Count - 1 do begin if AnsiSameCaption(FmainMenu.items[i].Caption, 'File') then begin FFileMenu := FMainMenu.items[i]; Break; end; end; FGiriMenu := TMenuItem.Create(FFileMenu); FGiriMenu.Caption := 'Subha IDE Services'; FGiriMenu.OnClick := OnMenuItemClick; for i := 0 to FFileMenu.count - 1 do begin if FFileMenu.Items[i].isLine then begin FFileMenu.Insert(i, FGiriMenu); Break; end; end; end; procedure TSubhaMenu.RemoveMenuItem; var i: Integer; begin for i := 0 to FFileMenu.Count - 1 do begin if AnsiSameCaption(FFileMenu.Items[i].Caption, 'Subha IDE Services') then begin FFileMenu.Remove(FFileMenu.items[i]); Break; end; end; end; procedure TSubhaMenu.OnMenuItemClick(Sender: TObject); begin Application.MessageBox(PChar('This Is only a Simple Example' + ' to Work With Delphi IDE ' + #13#10 + ' For Further Details On This Contact' + #13#10#13#10 + ' Subha@botree.co.in'), PChar('Message From Subha'), MB_OK); end; procedure Register; begin FSubhaMenu.AddMenuItem; Application.MessageBox('Subha Narayanan Has Hacked Your ' + ' Delphi Environment !!! ' + #13#10 + ' See You Soon With Lot More Goodies !!! ' + #13#10 + ' CopyRight (c) 2001, Subha Narayanan. ', ' Welcome To Delphi ', MB_SYSTEMMODAL); end; initialization FSubhaMenu := TSubhaMenu.Create; finalization FSubhaMenu.RemoveMenuItem; FSubhaMenu.Free; end. |