farzad_az_shiraz
شنبه 28 اردیبهشت 1387, 22:10 عصر
سلام
من مي خوام با توابع API بتونم mailam را باز كنم. البته با استفاده از تابع شورت كات يا همون hotkey ولي نميدونم چطوري ؟
البته من مي تونم با اين تابع مثلا يه فايل exe را صدا بزنم و اجرا كنم ولي فقط دو كليد را ميتونم تركيب كنم و نه بيشتر.
مثلا در مثال زير كه calc.exe را صدا زدم .
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,shellapi, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Timer1: TTimer;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Application.Handle,$BFFFA,MOD_WIN,7 4);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
VAR MSG:tagMSG;
begin
WaitMessage;
IF PeekMessage(MSG,Application.Handle,WM_HOTKEY,WM_HO TKEY,PM_REMOVE) THEN
BEGIN
If(HiWord(MSG.lParam)=74)and (LOWORD(MSG.lParam)=MOD_WIN) THEN
BEGIN
WinExec('calc.exe',SW_SHOW);
END;
end;
end;
در مثال بالا WIN + J ماشين حساب ويندوز را صدا ميزنه.
ولي نمي دونم چرا بايد دوبار WIN +J را بزنم تا اين كارو بكنه ؟
ممنون مي شم شما اولا استفاده از اين تابع را براي تركيب سه كليد و دوم اينكه من ميخوام mail را با ساختن شورتكات صدا بزنم.
ممنون از لطف همگي
من مي خوام با توابع API بتونم mailam را باز كنم. البته با استفاده از تابع شورت كات يا همون hotkey ولي نميدونم چطوري ؟
البته من مي تونم با اين تابع مثلا يه فايل exe را صدا بزنم و اجرا كنم ولي فقط دو كليد را ميتونم تركيب كنم و نه بيشتر.
مثلا در مثال زير كه calc.exe را صدا زدم .
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,shellapi, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Timer1: TTimer;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Application.Handle,$BFFFA,MOD_WIN,7 4);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
VAR MSG:tagMSG;
begin
WaitMessage;
IF PeekMessage(MSG,Application.Handle,WM_HOTKEY,WM_HO TKEY,PM_REMOVE) THEN
BEGIN
If(HiWord(MSG.lParam)=74)and (LOWORD(MSG.lParam)=MOD_WIN) THEN
BEGIN
WinExec('calc.exe',SW_SHOW);
END;
end;
end;
در مثال بالا WIN + J ماشين حساب ويندوز را صدا ميزنه.
ولي نمي دونم چرا بايد دوبار WIN +J را بزنم تا اين كارو بكنه ؟
ممنون مي شم شما اولا استفاده از اين تابع را براي تركيب سه كليد و دوم اينكه من ميخوام mail را با ساختن شورتكات صدا بزنم.
ممنون از لطف همگي