1

ネイティブC++で、現在のプロセス名と日時を取得するにはどうすればよいですか。私はC++プログラマーではありません。

C#では、次のようにするのは非常に簡単です。

プロセス名:

Process.GetCurrentProcess().ProcessName

日付時刻:

DateTime.Now.ToString("yyyy-MM-dd_HH.mm.ss.ff")

それらをC++ネイティブでどのように取得できますか?

4

3 に答える 3

2

現在のプロセスの名前を取得するには、次を使用できますGetModuleFileName()

char exe_path[MAX_PATH];
GetModuleFileName(NULL, exe_path, MAX_PATH);

exe_path次に、最後の\文字の後の部分を抽出できます。

現在の時刻を取得するには、を使用できますstd::time()

于 2012-05-18T11:38:40.083 に答える
2

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

プロセス名の場合:

QueryFullProcessImageName関数

GetModuleFileNameEx関数

プロセス関数とスレッド関数はここにあります

于 2012-05-18T11:50:06.680 に答える
1

プロセス名:

char name[256];
GetProcessImageFileName(GetCurrentProcess(),name,256);

コマンドライン引数からも取得できます

また、日付については、time.hからlocaltime()を使用します。例は、次のとおりです。

于 2012-05-18T11:42:43.777 に答える