実行中のプログラム

  Win32 Console Application の場合

  
#include "stdafx.h"

int main(int argc, char* argv[])
{
	printf( "%s\n", argv[0] );

	return 0;
}
  



  Win32 Application の場合



  
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow )
{
	MessageBox( NULL, GetCommandLine(), "CommandLine", MB_OK );
  

パスは、ダブルクォーテーションで挟まれた状態で返されます
( 引数がある場合は、コマンドラインとして全て戻されます )

※ lpCmdLine は、実行ファイルのパスを除いたものです



  NT4.0 は不可ですが、プロセスID からプログラム名を取得

  
#include "tlhelp32.h"
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow )
{
	HANDLE hSnapshot;
	PROCESSENTRY32 pe;
	DWORD ProcessId;

	ProcessId = GetCurrentProcessId();
	hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS , 0);
	if (hSnapshot) {
		pe.dwSize = sizeof(PROCESSENTRY32);
		if ( Process32First(hSnapshot, &pe) ) {
			while( 1 ) {
				if (pe.th32ProcessID == ProcessId) {
					MessageBox(
						NULL,
						pe.szExeFile,
						"実行ファイル",
						MB_OK
					);
					break;
				}
				if ( !Process32Next(hSnapshot, &pe) ) {
					break;
				}
			}
		}
		CloseHandle(hSnapshot);
	}

  

ウィンドウハンドルから、プロセスID を取得するには、以下のようにします

  
GetWindowThreadProcessId( hWnd, &ProcessId );
  











  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ