#include <windows.h>
#include <RestartManager.h>
#include <stdio.h>


#pragma comment(lib, "Rstrtmgr.lib")


int __cdecl wmain(int argc, WCHAR **argv)
{
	DWORD dwSession;

	PCWSTR pszFile = _T("D:\\R00RR0162232162_2023070523_MACHINE-ALARM.csv");
	HANDLE hFile = CreateFile(pszFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL);
	auto thisProcID = GetProcessId(GetCurrentProcess());

	WCHAR szSessionKey[CCH_RM_SESSION_KEY + 1] = { 0 };
	DWORD dwError = RmStartSession(&dwSession, 0, szSessionKey);
	wprintf(L"RmStartSession returned %d\n", dwError);

	if (dwError == ERROR_SUCCESS) 
	{
		dwError = RmRegisterResources(dwSession, 1, &pszFile, 0, NULL, 0, NULL);
		wprintf(L"RmRegisterResources(%ls) returned %d\n", pszFile, dwError);
		if (dwError == ERROR_SUCCESS)
		{
			DWORD dwReason;
			UINT i;
			UINT nProcInfoNeeded;
			UINT nProcInfo = 10;
			RM_PROCESS_INFO rgpi[10];
			dwError = RmGetList(dwSession, &nProcInfoNeeded,
				&nProcInfo, rgpi, &dwReason);
			wprintf(L"RmGetList returned %d\n", dwError);
			if (dwError == ERROR_SUCCESS)
			{
				wprintf(L"RmGetList returned %d infos (%d needed)\n", nProcInfo, nProcInfoNeeded);
				for (i = 0; i < nProcInfo; i++)
				{
					wprintf(L"%d.ApplicationType = %d\n", i, rgpi[i].ApplicationType);
					wprintf(L"%d.strAppName = %ls\n", i, rgpi[i].strAppName);
					wprintf(L"%d.Process.dwProcessId = %d\n", i, rgpi[i].Process.dwProcessId);

					HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_TERMINATE,
						FALSE, rgpi[i].Process.dwProcessId);
					if (hProcess)
					{
						FILETIME ftCreate, ftExit, ftKernel, ftUser;

						if (GetProcessTimes(hProcess, &ftCreate, &ftExit, &ftKernel, &ftUser) &&
							CompareFileTime(&rgpi[i].Process.ProcessStartTime, &ftCreate) == 0)
						{
							WCHAR sz[MAX_PATH];
							DWORD cch = MAX_PATH;
							if (QueryFullProcessImageNameW(hProcess, 0, sz, &cch) && cch <= MAX_PATH)
							{
								wprintf(L"  = %ls\n", sz);
							}
						}

						if (thisProcID == rgpi[i].Process.dwProcessId)
						{
							wprintf(L"%d.Process.dwProcessId = %d  This is me.. I dont kill myself...\n", i, rgpi[i].Process.dwProcessId);
						}
						else
						{
							if (TerminateProcess(hProcess, 0))
							{
								wprintf(L"%d.Process.dwProcessId = %d  TerminateProcess ok\n", i, rgpi[i].Process.dwProcessId);
							}
							else
							{
								wprintf(L"%d.Process.dwProcessId = %d  TerminateProcess fail\n", i, rgpi[i].Process.dwProcessId);
							}
						}

						CloseHandle(hProcess);
					}
				}
			}
		}
		RmEndSession(dwSession);
	}


	CloseHandle(hFile);
	return 0;
}

전화번호 0507-1491-6288

 

 

 

내가 나중에 필요할 까봐 여기에 올려둠

아무나 사용해도 됨.

MD5 Hash : 4818f3d8d3fee5cda082f0d8cb24bf9623c4b750

EXE 파일 크기 : 328KB (335,872 바이트)

 

mspaint.zip
0.19MB

대충   이렇게 생긴 USB 형태의 Bluetooth 송수신 동글.

드라이버 다운로드는 여기서

Wide Applications:
1. Travelling: suitcase, handbag, travel bag, luggage, laptop, backpack, handbag, and so on.
2. Sports: gym locker, bike, bicycle, golf bags, and so on.
3. Public Areas: student dormitory, school locker, gym locker, employee locker, hospital locker, and so on.
4. Residential: door lock, gate, apartment lock, basement anti-theft security, and so on.
5. Business: office, hospital, fence, and so on.
6. Transportation: garage, toolbox, and so on .
7. Furniture: wardrobes, closet, cabinet, drawers, safes, and so on.


Specifications:
* Fingerprint reader: 96*96 sensor
* Waterproof level: IP56
* FRR:<1%
* FAR:<0.002%
* Material: zinc alloy
* Working voltage: 3.0-4.2V
* Lock weight and Size: 90g
* Lock size: 7.6*4.6*1.3(cm)
* Fingerprint sensor coverage: 72*64MM
*Unlock speed: within 0.5 second
*working period: a year per power Charge
* LED light: three color light: red / blue / green
* Battery: 3.7V lithium build in battery
* Working temperature: -10~+40 degrees Celsius
* Fingerprint capacity: record 10 times and save 10 groups

 

 

 

 

 

 

 

 

1. 저장하기

import tensorflow.compat.v1 as tf
import numpy as np
import gym
from collections import deque
import random
import os

tf.disable_v2_behavior()


def createFolder(directory):
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)
    except OSError:
        print ('Error: Creating directory. ' +  directory)


sess = tf.Session()


DQNmain = DQNet(sess, input_size, output_size, "DQNMain")
modelSaver= tf.train.Saver(var_list= tf.global_variables(), allow_empty=False)
sess.run( tf.global_variables_initializer())

.....
.....

여러 코드 구현

.....
.....


createFolder('my_test_model')
modelSaver.save(sess, 'my_test_model/mymodel', write_meta_graph = False, global_step=global_step)

 

 

 

2. 불러다 쓰기

sess = tf.Session()

# 네트워크 구성
DQNmain = DQNet(sess, input_size, output_size, "DQNMain")

# modelsaver
modelSaver = tf.train.Saver(var_list = tf.global_variables(), allow_empty=False)

# 저장된 checkpoint 있는지 체크..
# 있으면 load.. 없으면 에러
ckpt = tf.train.get_checkpoint_state('my_test_model/')
if ckpt and tf.train.checkpoint_exists(ckpt.model_checkpoint_path):
    modelSaver.restore(sess, ckpt.model_checkpoint_path)
else:
    print("Model data not found...")
    exit()

 

1. MathJax

아래와 같이 수식입력이 필요한 경우 MathJax Library를 사용하면 편리하다

MathJax는 MathML, LaTeX 및 ASCIIMathML 마크 업을 사용하여 웹 브라우저에 수학 표기법을 표시하는 크로스 브라우저 JavaScript 라이브러리이다.

MathJax는 아파치 라이선스에 따라 오픈 소스 소프트웨어로 제공된다

 

2. 다운로드

MathJax 의 GitHub 홈페이지에서 소스를 다운로드 받을 수 있습니다만, 다운로드 없이 그냥 쓰기로 합니다.

(다른 블로그에서도 다운로드 없이 그냥 쓰네요)

 

GitHub - mathjax/MathJax-src: MathJax source code for version 3 and beyond

MathJax source code for version 3 and beyond. Contribute to mathjax/MathJax-src development by creating an account on GitHub.

github.com

 

3. 블로그 관리에서 파일 업로드 및 HTML 편집

블로그 관리 > 꾸미기 > 스킨편집 > HTML 를 통해 HTML을 편집한다.

<head></head> 사이에 아래 코드를 추가하면 된다.

아래 코드를 복사해서 적용하세요

<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

 

4. 수식입력 테스트

글쓰기로 입력하면 수식이 나옵니다.

결과

 

5. 수식입력기

저 복잡한 문법을 익히기도 어렵습니다.

온라인으로 저 수식을 만들어주는 웹사이트가 있습니다.

CodeCog에서 수식을 만들고 블로그에 올리세요.

 

 

Online LaTeX Equation Editor - create, integrate and download online.

EqnEditor (v5 beta) for online mathematics - delivering thousands of beautiful equations every second -

editor.codecogs.com

1. 개요

SyntaxHighlighter는 블로그나 웹사이트에서 사용할 수 있는 코드 구문 하이라이터입니다.
HTML, Javascript, Python, C 등 여러 언어에 사용할 수 있고 스크린샷 같은 방식보다 가독성이 좋습니다.

2. 파일 다운로드

최신 버전은 4.0인데 별도의 빌드 과정이 필요합니다. 빌드를 해서라도 4.0 버전을 사용하려는 분들은 GitHub에서 직접 다운로드 하십시오.

https://github.com/syntaxhighlighter/syntaxhighlighter

 

GitHub - syntaxhighlighter/syntaxhighlighter: SyntaxHighlighter is a fully functional self-contained code syntax highlighter dev

SyntaxHighlighter is a fully functional self-contained code syntax highlighter developed in JavaScript. - GitHub - syntaxhighlighter/syntaxhighlighter: SyntaxHighlighter is a fully functional self-...

github.com

저는 빌드하기 귀찮으니... 3.08 버전을 사용합니다.

syntaxhighlighter-3.0.83.zip
4.49MB

혹은 다음 링크를 이용하세요

https://github.com/syntaxhighlighter/syntaxhighlighter/archive/3.0.83.zip

상기 소스를 다운 받고 압축을 풉니다

 

3. Scripts와 Styles내 파일들 업로드하기

블로그 설정 -&amp;amp;amp;amp;amp;amp;amp;gt; 꾸미기 -&amp;amp;amp;amp;amp;amp;amp;gt; 스킨 편집

 

필요한 파일들을 업로드 하기 위해 업로드 페이지로 들어갑니다

압축을 푼 폴더에서 scripts 폴더와 styles 폴더에 있는 파일들을 전부 업로드합니다.

4. HTML 편집하기

HTML 페이지로 들어가 아래와 같이 필요한 파일들을 채워 넣습니다.

 

<!--Syntaxhighlighter 코드시작 (순서도 중요한듯)-->
<script type="text/javascript" src="./images/XRegExp.js"></script>          <!--정규식처리용-->
<script type="text/javascript" src="./images/shCore.js"></script>
<script type="text/javascript" src="./images/shBrushCpp.js"></script>       <!--브러시들 필요에 따라서 추가-->
<script type="text/javascript" src="./images/shBrushCss.js"></script>
<script type="text/javascript" src="./images/shBrushJScript.js"></script>
<script type="text/javascript" src="./images/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushXml.js"></script>
<script type="text/javascript" src="./images/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="./images/shCore.css">          <!--코어스타일-->
<link type="text/css" rel="Stylesheet" href="./images/shThemeDefault.css">
<!---link type="text/css" rel="stylesheet" href="./images/shThemeMidnight.css" /---> <!--테마-->
<script type="text/javascript"> SyntaxHighlighter.all(); </script>
<style>
.syntaxhighlighter { padding-bottom: 1px; }
</style> <!-- 스크롤바 제거 -->
<!--Syntaxhighlighter 코드종료-->

입력을 다 했으면 "적용" 버튼을 누릅니다.

4. 사용 방법

블로그 글쓰기에서 HTML모드로 진입합니다.

아래와 같은 방법으로 직접 입력합니다

<pre class="brush:사용할 언어>

소스 코드
이것
저것

</pre>

 

예를 들면...

+ Recent posts