Ads 468x60px

Smaller time frame always follow the bigger time frame. It's better wait be patience to enter in position than risk with BIG SL. Having strong trading discipline and taking losses when necessary is a sign of serious trading approach

Saturday, August 11, 2012

CONTROL AUTOPLAY (DYNAMICALLY) FROM YOUR PROGRAM


You know how to stop Windows' [CD-ROM] AutoPlay from occurring by holding SHIFT or by changing Windows settings. Here's how to detect whether an AutoPlay is about to occur from your application and then either allowing or stopping it.
We're going to ask Windows to send us a message when the AutoPlay is about to occur. In order to catch this message, first of all we have to override our default Windows message handler -- "WndProc()." You can do this by inserting the following code in your form's (named "Form1" for example) public declarations section:
MsgID_QueryCancelAutoPlay : Word;
    
procedure
  WndProc( var Msg : TMessage );
    override;
Now, type in the following code in the "implementation" section (again, assuming that your form is named "Form1") to actually handle the Windows messages. As you can see, we're only interested in catching "QueryCancelAutoPlay" messages, so we'll let the default (or the inherited) "WndProc()" handle all other messages.
procedure TForm1.
  WndProc( var Msg : TMessage );
begin
  if( MsgID_QueryCancelAutoPlay
      = Msg.Msg )then
  begin
    // set Msg.Result
    //   to 1 to stop AutoPlay or
    //   to 0 to continue with AutoPlay
    Msg.Result := 1;
  end else
    inherited WndProc( Msg );
end;
Finally, we have to ask Windows to actually send a "QueryCancelAutoPlay" message to our message handler by inserting the following code in the "FormCreate()" event (click on your form, go to the "events" tab in the "Object Inspector" and double click on "Create"):
MsgID_QueryCancelAutoPlay
  := RegisterWindowMessage(
       'QueryCancelAutoPlay' );

comments