ネイティブC++で、現在のプロセス名と日時を取得するにはどうすればよいですか。私はC++プログラマーではありません。
C#では、次のようにするのは非常に簡単です。
プロセス名:
Process.GetCurrentProcess().ProcessName
日付時刻:
DateTime.Now.ToString("yyyy-MM-dd_HH.mm.ss.ff")
それらをC++ネイティブでどのように取得できますか?
ネイティブC++で、現在のプロセス名と日時を取得するにはどうすればよいですか。私はC++プログラマーではありません。
C#では、次のようにするのは非常に簡単です。
プロセス名:
Process.GetCurrentProcess().ProcessName
日付時刻:
DateTime.Now.ToString("yyyy-MM-dd_HH.mm.ss.ff")
それらをC++ネイティブでどのように取得できますか?
現在のプロセスの名前を取得するには、次を使用できますGetModuleFileName()
。
char exe_path[MAX_PATH];
GetModuleFileName(NULL, exe_path, MAX_PATH);
exe_path
次に、最後の\
文字の後の部分を抽出できます。
現在の時刻を取得するには、を使用できますstd::time()
。
GetSystemTime
構文
void WINAPI GetSystemTime(
__out LPSYSTEMTIME lpSystemTime
);
パラメータ: lpSystemTime [out]
現在のシステムの日付と時刻を受け取るためのSYSTEMTIME構造体へのポインター。lpSystemTimeパラメーターはNULLであってはなりません。NULLを使用すると、アクセス違反が発生します。
戻り値:この関数は、値を返したり、拡張エラー情報を提供したりしません。
備考:現在のシステムの日付と時刻を設定するには、SetSystemTime関数を使用します。
要件:サポートされる最小のクライアントWindows 2000 Professional
サポートされる最小サーバー: Windows 2000 Server
ヘッダー: Winbase.h(Windows.hを含む)
ライブラリ: Kernel32.lib
DLL: Kernel32.dll
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724390(v=vs.85).aspx
プロセス名の場合:
プロセス名:
char name[256];
GetProcessImageFileName(GetCurrentProcess(),name,256);
コマンドライン引数からも取得できます
また、日付については、time.hからlocaltime()を使用します。例は、次のとおりです。