2、它常被用做线程间同步的技术手段。简要的提一下互斥对象:互斥对象把第一次建立它的程序作为主程序,这样只用检测互斥对象是否已经有主程序就判断程序是否已经运行过,这里需要涉及到一个api函数:WaitForSingleObject,该函数的第一个参数为用以检测的互斥对象,第2个参数的表示函数返回结果前的滞留时间,如果改函数返回wait_TimeOut就表明互斥对象已经有了一个主程序。 注意:以下的代码都出现在工程文件中,而不是单元文件中。 var myMutex:HWND; begin //CreateMutex建立互斥对象,并且给互斥对象起一个唯一的名字。
6、delphi自身TForm类的问题,下面给出一个解决方案:在窗口上放一个ApplicationEvents控件,它管理着应用程序所有的消息。我们在它的OnMessage事件里写上下面的代码: ifMsg.hwnd=Form1.Handlethen begin //161是在标题栏按下鼠标 //8是在标题栏的最小化按钮上按下鼠标 if(Msg.message=161)and(msg.wParam=8)then begin Form1.WindowState:=wsMinimized; end; end;programMyThreadTest;
7、uses Windows, Forms, SysUtils, Messages, Dialogs, Unit1in'Unit1.pas'{Form1}, {$R*.res} var myMutex, FindHid:HWND; MoudleName:string; functionEnumWndProc(hwnd:Thandle;param:Cardinal):bool;stdcall; //由于用于api回调函数,请使用windows传统的参数传递方式stdcall var ClassName,WinMoudleName:stri