让我懵了好久的代码,高手过来帮我翻译翻译好吗?如果是超级高手,我急切盼望能在每个句子后面来个注释,谢了哈
var
Humtex:THandle;
FoundWnd:THandle;
ModuleName:String;
function EnumWndProc(Hwnd:THandle;Param:Cardinal):BOOL;stdcall;
var
ClassName,WinModuleName:string;
WinInstance:THandle;
begin
Result:=True;
SetLength(ClassName,100);
GetClassName(Hwnd,PChar(ClassName),Length(ClassName));
ClassName:=PChar(ClassName);
if ClassName=TForm1.ClassName then
begin
SetLength(WinModuleName,200);
WinInstance:=GetWindowLong(Hwnd,GWL_HINSTANCE);
GetModuleFileName(WinInstance,PChar(WinModuleName),Length(WinModuleName));
WinModuleName:=PChar(WinModuleName);
if WinModuleName=ModuleName then
begin
FoundWnd:=Hwnd;
Result:=False;
end;
end;
end;begin
humtex:=CreateMutex(nil,False,'ClientMutex');
if (WaitForSingleObject(Humtex,0)<>Wait_TimeOut) then
begin
Application.Initialize;
showwindow(Application.Handle,SW_HIDE);
Application.ShowMainForm:=false;
Application.Title := 'XHDSEND';
Application.CreateForm(TForm1, Form1);
//Application.CreateForm(TForm2, Form2);
Application.Run;
end
else
begin
SetLength(ModuleName,200);
GetModuleFileName(HInstance,PChar(ModuleName),Length(ModuleName));
ModuleName:=PChar(ModuleName);
EnumWindows(@EnumWndProc,0);
if (FoundWnd<>0) then
begin
if not IsWindowVisible(FoundWnd) then
PostMessage(FoundWnd,WM_App,0,0);
SetForegroundWindow(FoundWnd);
end;
end;
end.
var
Humtex:THandle;
FoundWnd:THandle;
ModuleName:String;
function EnumWndProc(Hwnd:THandle;Param:Cardinal):BOOL;stdcall;
var
ClassName,WinModuleName:string;
WinInstance:THandle;
begin
Result:=True;
SetLength(ClassName,100);
GetClassName(Hwnd,PChar(ClassName),Length(ClassName));
ClassName:=PChar(ClassName);
if ClassName=TForm1.ClassName then
begin
SetLength(WinModuleName,200);
WinInstance:=GetWindowLong(Hwnd,GWL_HINSTANCE);
GetModuleFileName(WinInstance,PChar(WinModuleName),Length(WinModuleName));
WinModuleName:=PChar(WinModuleName);
if WinModuleName=ModuleName then
begin
FoundWnd:=Hwnd;
Result:=False;
end;
end;
end;begin
humtex:=CreateMutex(nil,False,'ClientMutex');
if (WaitForSingleObject(Humtex,0)<>Wait_TimeOut) then
begin
Application.Initialize;
showwindow(Application.Handle,SW_HIDE);
Application.ShowMainForm:=false;
Application.Title := 'XHDSEND';
Application.CreateForm(TForm1, Form1);
//Application.CreateForm(TForm2, Form2);
Application.Run;
end
else
begin
SetLength(ModuleName,200);
GetModuleFileName(HInstance,PChar(ModuleName),Length(ModuleName));
ModuleName:=PChar(ModuleName);
EnumWindows(@EnumWndProc,0);
if (FoundWnd<>0) then
begin
if not IsWindowVisible(FoundWnd) then
PostMessage(FoundWnd,WM_App,0,0);
SetForegroundWindow(FoundWnd);
end;
end;
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货