maraigue (owner)

Revisions

gist: 67916 Download_button fork
public
Description:
Windowsのコンソールプログラムを、コンソールを表示させずに実行するためのプログラム
Public Clone URL: git://gist.github.com/67916.git
cmdrun.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Windowsのコンソールプログラムを、コンソールを表示させずに実行するためのプログラム。
// > cmdrun.exe hogepiyo.bat
// のように利用する。
//
// VC++2003 + Windows Vista SP1で動作確認済み
//
// (C)2009 H.Hiro(Maraigue) http://hhiro.net/about/
// 利用条件: CC-BY-2.1-JA
// (http://creativecommons.org/licenses/by/2.1/jp/)
 
#include <windows.h>
 
int WINAPI WinMain
(HINSTANCE hInst, HINSTANCE hPreInst, LPSTR szCmdLine, int nCmdShow){
  // ファイルの指定がないときは、-1を返す
  if(szCmdLine[0] == '\0') return -1;
 
  // 実行する
  HINSTANCE inst = ShellExecuteA(NULL, NULL, szCmdLine, NULL, NULL, SW_HIDE);
  
  // 実行してみた結果に応じてステータスコードを返す。
  // 成功した場合は0、失敗したときはShellExecuteの返り値(0~32)に
  // 1を加えたものを返す。
  if((INT_PTR)inst <= 32){
    return((int)inst + 1);
  }else{
    return 0;
  }
}