https://drive.google.com/file/d/1mXt...ew?usp=sharing
分享一下程式
不過這是用BCB6.0設計的,新版BCB編譯可能會因為字元出錯,以後有機會再設計吧,有幾個地方說明一下
1.雙擊右下角圖示改變圖示開關監控
語法:
case WM_LBUTTONDBLCLK:
Timer1->Enabled=!Timer1->Enabled;
if(Timer1->Enabled) {
Clipboard()->Clear();
ListView1->Tag=0;
Clip2Bmp.hIcon=LoadIcon(HInstance,"Clip2Bmp1");
strcpy(Clip2Bmp.szTip,"監控中");
} else {
Clip2Bmp.hIcon=LoadIcon(HInstance,"Clip2Bmp2");
strcpy(Clip2Bmp.szTip,"閒置中");
}
Shell_NotifyIcon(NIM_MODIFY,&Clip2Bmp);
// ShowWindow(Application->Handle,SW_RESTORE);
// ShowWindow(Handle,SW_RESTORE);
break;
2.右上角"關閉'按鈕
語法:
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
ShowWindow(Application->Handle,SW_HIDE);
ShowWindow(Handle,SW_HIDE);
CanClose=(Tag==1);
}
//---------------------------------------------------------------------------
3.還有SHBrowseForFolder使用
語法:
String WorkDir;
BROWSEINFO bi;
char WDir[MAX_PATH];
char FolderName[MAX_PATH];
LPITEMIDLIST ItemID;
memset(&bi, 0, sizeof(BROWSEINFO));
memset(WDir, 0, MAX_PATH);
bi.hwndOwner = Handle;
bi.pszDisplayName = FolderName;
bi.lpszTitle = "請選擇路徑";
ItemID = SHBrowseForFolder(&bi);
SHGetPathFromIDList(ItemID, WDir);
WorkDir = String(WDir);
if(WorkDir!="") StatusBar1->SimpleText=WorkDir+"\\";
ScanFile();
注意藍字部分,才能使用SHBrowseForFolder
語法:
//---------------------------------------------------------------------------
#include <shlobj.h> //要放於 vcl.h 之前
#define NO_WIN32_LEAN_AND_MEAN
#include <vcl.h>
#include <Clipbrd.hpp>
#pragma hdrstop