|
|
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
HANDLE hMutex;
hMutex = CreateMutex(
NULL,
true,
"NoMulti"
);
if ( hMutex == NULL ) {
MessageBox( NULL, "ミューテックスの作成に失敗しました", "確認", MB_OK );
return 0;
}
DWORD nRet;
nRet = GetLastError();
if ( nRet == ERROR_ALREADY_EXISTS ) {
MessageBox( NULL, "二重起動を禁止します", "確認", MB_OK );
return 0;
}
| |
|
|
|
Mutex.cpp
|
#include "stdafx.h"
#include "resource.h"
#include <lightbox.h>
#define MAX_LOADSTRING 100
// グローバル変数:
HINSTANCE hInst; // 現在のインスタンス
TCHAR szTitle[MAX_LOADSTRING]; // タイトル バー テキスト
TCHAR szWindowClass[MAX_LOADSTRING]; // タイトル バー テキスト
// このコード モジュールに含まれる関数の前宣言:
ATOM MyRegisterClass( HINSTANCE hInstance );
BOOL InitInstance( HINSTANCE, int );
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
LRESULT CALLBACK About( HWND, UINT, WPARAM, LPARAM );
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
LboxUnlha Unlha;
LboxFileSystem Fs;
if ( Fs.Exist( "C:\\TEMP\\ken_all\\ken_all.lzh" ) ) {
Unlha.TargetPath.operator = ("C:\\TEMP\\ken_all\\ken_all2.lzh");
}
else {
Unlha.TargetPath.operator = ("C:\\TEMP\\ken_all\\ken_all.lzh");
}
Unlha.Freeze("C:\\TEMP\\ken_all\\ken_all.csv");
return 0;
}
| |
|
ken_all.csv は、ここから 全国一括をダウンロードして解凍したものです
|
#include "stdafx.h"
#include "resource.h"
#include <lightbox.h>
#define MAX_LOADSTRING 100
// グローバル変数:
HINSTANCE hInst; // 現在のインスタンス
TCHAR szTitle[MAX_LOADSTRING]; // タイトル バー テキスト
TCHAR szWindowClass[MAX_LOADSTRING]; // タイトル バー テキスト
// このコード モジュールに含まれる関数の前宣言:
ATOM MyRegisterClass( HINSTANCE hInstance );
BOOL InitInstance( HINSTANCE, int );
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
LRESULT CALLBACK About( HWND, UINT, WPARAM, LPARAM );
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
HANDLE hMutex;
CreateMutex(
NULL,
false,
"MyMutex"
);
hMutex = OpenMutex( SYNCHRONIZE, false, "MyMutex" );
if ( hMutex == NULL ) {
return 0;
}
WaitForSingleObject( hMutex, INFINITE );
LboxUnlha Unlha;
LboxFileSystem Fs;
if ( Fs.Exist( "C:\\TEMP\\ken_all\\ken_all.lzh" ) ) {
Unlha.TargetPath.operator = ("C:\\TEMP\\ken_all\\ken_all2.lzh");
}
else {
Unlha.TargetPath.operator = ("C:\\TEMP\\ken_all\\ken_all.lzh");
}
Unlha.Freeze("C:\\TEMP\\ken_all\\ken_all.csv");
ReleaseMutex( hMutex );
return 0;
}
| |
|
|
|
Creator
Locker
Operator
|
case WM_CREATE:
SetWindowText( hWnd, "Operator" );
hMutex = OpenMutex( SYNCHRONIZE, false, "MutexTrio" );
if ( hMutex == NULL ) {
MessageBox( hWnd, "ミューテックスは存在しません", "", MB_OK );
return -1;
}
WaitForSingleObject( hMutex, INFINITE );
MessageBox( hWnd, "所有権を取得しました", "", MB_OK );
ReleaseMutex( hMutex );
break;
| |
|
|
|