最新版本是2.2
之前的校内网相册批量下载工具已经失效了(详见http://ldsea.cn/xiaonei-album/),校内网更换了域名,登陆以及相册的URL均发生了变化,昨天已经修复了之前的软件,并添加了一个工具,可以选择相册图片的名字方式,一种是按照原有图片的名字,另一种是按照以相册的名字为前缀的下载,看个人喜好来选择。
界面以及使用如下所示:





最新版本是2.2
之前的校内网相册批量下载工具已经失效了(详见http://ldsea.cn/xiaonei-album/),校内网更换了域名,登陆以及相册的URL均发生了变化,昨天已经修复了之前的软件,并添加了一个工具,可以选择相册图片的名字方式,一种是按照原有图片的名字,另一种是按照以相册的名字为前缀的下载,看个人喜好来选择。
界面以及使用如下所示:
最新版本是2.2
我们来开发一个用家用摄像头捕捉图像的小程序。程序的主要代码如下,其中步骤说明将插入到代码当中。
步骤一:
在C++ builder中新建的Form上插入:2个button,一个panel,一个ComboBox和一个SaveDialg
步骤二:编写代码
//----------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "vfw.h" //双击Form后,在代码区先加入vfw头文件。
//----------------------------------------------------------------------------
#pragma resource "*.dfm"
#pragma package(smart_init)
TForm1 *Form1; //加入自定义变量。
HWND hWndC;
CAPDRIVERCAPS CapDrvCaps;
CAPSTATUS CapStatus;
//----------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent *Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Table1->Open();
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) // 加入启动camere的程序。
{
char szDeviceName[80];
char szDeviceVersion[80];
for (int wIndex=0;wIndex<10;wIndex++)
{
if (capGetDriverDescription(wIndex,szDeviceName,sizeof(szDeviceName),szDeviceVersion,sizeof(szDeviceVersion)))
{
Camera->Items->Add(szDeviceName);
}
}
if(Camera->Items->Count>0)
Camera->ItemIndex=0;
else
{
ShowMessage("There is no camera!");
Close();
}
//检查视频是否处于实时捕获状态
if(CapStatus.fLiveWindow==1)
//CapStatus.fLiveWindow=1表明当前初频已处于实时捕获状态,否则CapStatus.fLiveWindow=0
{
ShowMessage("You needn't do it again!");
return;
}
hWndC=capCreateCaptureWindow((LPSTR)"My Capture Window",WS_CHILD | WS_VISIBLE,0,0,160,120,(HWND)Panel2->Handle,Camera->ItemIndex+1);
//连接设备:
capDriverConnect(hWndC,0);
capPreviewRate(hWndC,50); // rate, in milliseconds
capPreview(hWndC,TRUE); // starts preview
//获取视频驱动相关性能
capDriverGetCaps(hWndC,&CapDrvCaps,sizeof(CAPDRIVERCAPS));
//获取捕获窗口状态
capGetStatus(hWndC,&CapStatus,sizeof(CAPSTATUS));
SetWindowPos(hWndC,NULL,0,0,CapStatus.uiImageWidth,CapStatus.uiImageHeight,SWP_NOZORDER | SWP_NOMOVE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(hWndC)
{
capPreview(hWndC,FALSE);
capDriverDisconnect(hWndC);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender) //加入图像保存程序。
{
if(SavePictureDialog1->Execute())
capFileSaveDIB(hWndC,(SavePictureDialog1->FileName+".bmp").c_str());
}
//---------------------------------------------------------------------------
步骤三:
运行并测试。
步骤一:
在C++ builder中新建的Form上插入:2个button,一个panel,一个ComboBox和一个SaveDialg
步骤二:编写代码
//----------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "vfw.h" //双击Form后,在代码区先加入vfw头文件。
//----------------------------------------------------------------------------
#pragma resource "*.dfm"
#pragma package(smart_init)
TForm1 *Form1; //加入自定义变量。
HWND hWndC;
CAPDRIVERCAPS CapDrvCaps;
CAPSTATUS CapStatus;
//----------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent *Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Table1->Open();
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) // 加入启动camere的程序。
{
char szDeviceName[80];
char szDeviceVersion[80];
for (int wIndex=0;wIndex<10;wIndex++)
{
if (capGetDriverDescription(wIndex,szDeviceName,sizeof(szDeviceName),szDeviceVersion,sizeof(szDeviceVersion)))
{
Camera->Items->Add(szDeviceName);
}
}
if(Camera->Items->Count>0)
Camera->ItemIndex=0;
else
{
ShowMessage("There is no camera!");
Close();
}
//检查视频是否处于实时捕获状态
if(CapStatus.fLiveWindow==1)
//CapStatus.fLiveWindow=1表明当前初频已处于实时捕获状态,否则CapStatus.fLiveWindow=0
{
ShowMessage("You needn't do it again!");
return;
}
hWndC=capCreateCaptureWindow((LPSTR)"My Capture Window",WS_CHILD | WS_VISIBLE,0,0,160,120,(HWND)Panel2->Handle,Camera->ItemIndex+1);
//连接设备:
capDriverConnect(hWndC,0);
capPreviewRate(hWndC,50); // rate, in milliseconds
capPreview(hWndC,TRUE); // starts preview
//获取视频驱动相关性能
capDriverGetCaps(hWndC,&CapDrvCaps,sizeof(CAPDRIVERCAPS));
//获取捕获窗口状态
capGetStatus(hWndC,&CapStatus,sizeof(CAPSTATUS));
SetWindowPos(hWndC,NULL,0,0,CapStatus.uiImageWidth,CapStatus.uiImageHeight,SWP_NOZORDER | SWP_NOMOVE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(hWndC)
{
capPreview(hWndC,FALSE);
capDriverDisconnect(hWndC);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender) //加入图像保存程序。
{
if(SavePictureDialog1->Execute())
capFileSaveDIB(hWndC,(SavePictureDialog1->FileName+".bmp").c_str());
}
//---------------------------------------------------------------------------
步骤三:
运行并测试。
在内网论坛看到有人发帖说需要一个照片自动归档的软件,就是把图片可以按照图片的日期放到相应的文件夹中,感觉用AutoIt这种软件应该挺好实现的,就写了一个,代码如下
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
AutoPhoto()
Func AutoPhoto()
Local $font,$msg,$Button_1,$radio1,$radio2,$radio3,$radio4,$isOldPhoto,$isCreatDate
$isOldPhoto=True;
$isCreatDate=True;
GUICreate("图片自动归档程序V1.1--Made By 蓝色天空",500,200) ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW) ; will display an empty dialog box
GUICtrlCreateLabel("这是一个图片自动归档程序,请把该软件放到图片的同一目录下。", -1, 10) ; next line
GUICtrlCreateLabel("选择是否保留原图片和归档日期的方式后,点击按钮后图片即可自动归档", -1, 30) ; next line
$radio1 = GUICtrlCreateRadio("保留原图片", 10, 60, 100, 20)
$radio2 = GUICtrlCreateRadio("不保留原图片", 150, 60, 100, 20)
GUIStartGroup()
GUICtrlSetState($radio1, $GUI_CHECKED)
$radio3 = GUICtrlCreateRadio("按创建日期归档", 10, 80, 100, 20)
$radio4 = GUICtrlCreateRadio("按修改日期归档", 150, 80, 100, 20)
GUIStartGroup()
GUICtrlSetState($radio3, $GUI_CHECKED)
$Button_1 = GUICtrlCreateButton("开始自动归档", 10, 120, 100)
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
$isOldPhoto=True;
Case $msg = $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED
$isOldPhoto=False;
Case $msg = $radio3 And BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED
$isCreatDate=True;
Case $msg = $radio4 And BitAND(GUICtrlRead($radio4), $GUI_CHECKED) = $GUI_CHECKED
$isCreatDate=False;
Case $msg = $Button_1
doAutoPhoto($isOldPhoto,$isCreatDate); Will Run/Open Notepad
EndSelect
WEnd
GUIDelete()
EndFunc ;==>Example1
Func doAutoPhoto($isOldPhoto,$isCreatDate)
Local $search,$file,$t,$yyyymd
; 显示当前目录中所有文件的文件名
$search = FileFindFirstFile("*.jpg")
; 检查搜索是否成功
If $search = -1 Then
MsgBox(0, "错误", "该目录下已经没有jpg图片文件")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If $isCreatDate=True Then
$t = FileGetTime($file, 1)
EndIf
If $isCreatDate=False Then
$t = FileGetTime($file, 0)
EndIf
If Not @error Then
$yyyymd = $t[0] & "年" & $t[1] & "月" & $t[2] & "日"
;MsgBox(0, $file+"的创建日期:", $yyyymd)
If $isOldPhoto=True Then
FileCopy($file, @ScriptDir & "\" & $yyyymd & "\", 8)
EndIf
If $isOldPhoto=False Then
FileMove($file, @ScriptDir & "\" & $yyyymd & "\", 8)
EndIf
;MsgBox(4096, "文件:", @ScriptDir & "\" & $yyyymd & "\")
EndIf
If @error Then ExitLoop
;MsgBox(4096, "文件:", $file)
WEnd
FileClose($search)
MsgBox(64, "海蓝", "恭喜,所有图片归档完毕")
EndFunc
使用时将这个软件和你需要整理的图片放到同一个目录下,然后点击那个“开始自动归档”按钮,选择是否保留原图片,以及是按创建日期归档,还是按修改日期归档。然后点击下面的按钮就好了

原先目录下有4张图片

当运行程序后,会变为如下的样子,会按照日期进行归档

下载地址:
下载文件
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
AutoPhoto()
Func AutoPhoto()
Local $font,$msg,$Button_1,$radio1,$radio2,$radio3,$radio4,$isOldPhoto,$isCreatDate
$isOldPhoto=True;
$isCreatDate=True;
GUICreate("图片自动归档程序V1.1--Made By 蓝色天空",500,200) ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW) ; will display an empty dialog box
GUICtrlCreateLabel("这是一个图片自动归档程序,请把该软件放到图片的同一目录下。", -1, 10) ; next line
GUICtrlCreateLabel("选择是否保留原图片和归档日期的方式后,点击按钮后图片即可自动归档", -1, 30) ; next line
$radio1 = GUICtrlCreateRadio("保留原图片", 10, 60, 100, 20)
$radio2 = GUICtrlCreateRadio("不保留原图片", 150, 60, 100, 20)
GUIStartGroup()
GUICtrlSetState($radio1, $GUI_CHECKED)
$radio3 = GUICtrlCreateRadio("按创建日期归档", 10, 80, 100, 20)
$radio4 = GUICtrlCreateRadio("按修改日期归档", 150, 80, 100, 20)
GUIStartGroup()
GUICtrlSetState($radio3, $GUI_CHECKED)
$Button_1 = GUICtrlCreateButton("开始自动归档", 10, 120, 100)
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
$isOldPhoto=True;
Case $msg = $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED
$isOldPhoto=False;
Case $msg = $radio3 And BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED
$isCreatDate=True;
Case $msg = $radio4 And BitAND(GUICtrlRead($radio4), $GUI_CHECKED) = $GUI_CHECKED
$isCreatDate=False;
Case $msg = $Button_1
doAutoPhoto($isOldPhoto,$isCreatDate); Will Run/Open Notepad
EndSelect
WEnd
GUIDelete()
EndFunc ;==>Example1
Func doAutoPhoto($isOldPhoto,$isCreatDate)
Local $search,$file,$t,$yyyymd
; 显示当前目录中所有文件的文件名
$search = FileFindFirstFile("*.jpg")
; 检查搜索是否成功
If $search = -1 Then
MsgBox(0, "错误", "该目录下已经没有jpg图片文件")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If $isCreatDate=True Then
$t = FileGetTime($file, 1)
EndIf
If $isCreatDate=False Then
$t = FileGetTime($file, 0)
EndIf
If Not @error Then
$yyyymd = $t[0] & "年" & $t[1] & "月" & $t[2] & "日"
;MsgBox(0, $file+"的创建日期:", $yyyymd)
If $isOldPhoto=True Then
FileCopy($file, @ScriptDir & "\" & $yyyymd & "\", 8)
EndIf
If $isOldPhoto=False Then
FileMove($file, @ScriptDir & "\" & $yyyymd & "\", 8)
EndIf
;MsgBox(4096, "文件:", @ScriptDir & "\" & $yyyymd & "\")
EndIf
If @error Then ExitLoop
;MsgBox(4096, "文件:", $file)
WEnd
FileClose($search)
MsgBox(64, "海蓝", "恭喜,所有图片归档完毕")
EndFunc
使用时将这个软件和你需要整理的图片放到同一个目录下,然后点击那个“开始自动归档”按钮,选择是否保留原图片,以及是按创建日期归档,还是按修改日期归档。然后点击下面的按钮就好了
原先目录下有4张图片
当运行程序后,会变为如下的样子,会按照日期进行归档
下载地址:
下载文件
(一)
“妈妈,妈妈,”小怪兽问,“我什么时候才能长大呢?”
正做饭的怪兽妈妈和蔼地问:“干吗想长大呀,做妈妈的乖宝宝不好吗?”
“长大了我就能让奥特曼打了。”小怪兽一脸的憧憬。
(二)
“妈妈,妈妈。”小怪兽兴奋地跑进屋,“我考上啦……”
正做饭的怪兽妈妈穿着围裙迎出来:“你考上什么啦,儿子。”
小怪兽满脸的幸福:“我考上‘替身演员’了,一级棒的。”
“你真了不起,儿子。”怪兽妈妈说,“不过,替身演员是干什么的呀。”
“就是给与奥特曼对打的怪兽当替身,妈妈,以后你从电视上看到的每一只被奥特曼打的怪兽都是我哟。“
“妈妈,妈妈,”小怪兽问,“我什么时候才能长大呢?”
正做饭的怪兽妈妈和蔼地问:“干吗想长大呀,做妈妈的乖宝宝不好吗?”
“长大了我就能让奥特曼打了。”小怪兽一脸的憧憬。
(二)
“妈妈,妈妈。”小怪兽兴奋地跑进屋,“我考上啦……”
正做饭的怪兽妈妈穿着围裙迎出来:“你考上什么啦,儿子。”
小怪兽满脸的幸福:“我考上‘替身演员’了,一级棒的。”
“你真了不起,儿子。”怪兽妈妈说,“不过,替身演员是干什么的呀。”
“就是给与奥特曼对打的怪兽当替身,妈妈,以后你从电视上看到的每一只被奥特曼打的怪兽都是我哟。“









