●API起動

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

情報

ダウンロード

概要

 起動時に最大化等のオプションを付けられます。また、起動したプログラムのハンドルを取得できます。
 掲示板の質問と回答を参考に改良して作りました。(勝手にしてすみません)

サンプル

#最大化して起動
「notepad.exe」をSW_SHOWMAXIMIZEDとしてAPI起動

本体

!SW_HIDE=0;//隠し起動
!SW_SHOWNORMAL=1;//通常
!SW_SHOWMINIMIZED=2;//最小化
!SW_SHOWMAXIMIZED=3;//最大化
!SW_SHOWNOACTIVATE=4;//非アクティブ起動
!SW_SHOW=5;//復元
!SW_MINIMIZE=6;/*指定されたウィンドウを最小化して
次アクティブウィンドウをアクティブ*/
!SW_SHOWMINNOACTIVE=7;//非アクティブ最小化
!SW_SHOWNA=8;//非アクティブ復元
!SW_RESTORE=9;//元に戻す
!SW_SHOWDEFAULT=10;/*アプリケーションを起動したプログラムがCreateProcess関数に
パラメータとして渡したSTARTUPINFO構造体で指定されているSW_値に基づいて表示状態を設定*/
!SW_FORCEMINIMIZE=11;/*(Windows 2000/XPのみ)ウィンドウを所有しているスレッドが
ハングしている状態であっても最小化。他のスレッドからウィンドウを
最小化させる場合にのみこのフラグを使用するべき*/
#-------------------------------------
●ShellExecuteExA({参照渡し}pExecInfo) =DLL("shell32.dll","BOOL ShellExecuteExA(LPSHELLEXECUTEINFO pExecInfo)")
●CloseHandle(h)=DLL("Kernel32.dll","BOOL CloseHandle(HANDLE hObject)")
!SEE_MASK_NOCLOSEPROCESS=$40//hProcessにプロセスハンドルを返す
!SHELLEXECUTEINFO_TYPE="DWORD,DWORD,HWND,LPCTSTR,LPCTSTR,LPCTSTR,LPCTSTR,INT,HINSTANCE,LPVOID,LPCTSTR,HKEY,DWORD,HANDLE,HANDLE,HANDLE"
■SHELLEXECUTEINFO
 ・cbSize{=60} //構造体サイズ
 ・fMask //オプション
 ・hwnd //親ウィンドウ
 ・lpVerb //動作名
 ・lpFile //ファイル名
 ・lpParameters //コマンドラインパラメータ
 ・lpDirectory //起動時ディレクトリ
 ・nShow //表示形式
 ・hInstApp //結果値
 ・lpIDList //アイテムIDリスト
 ・lpClass //クラス名
 ・hkeyClass //ファイルクラスのレジストリキー
 ・dwHotKey //ホットキー
 ・hIcon //ファイルクラスのアイコン
 ・hMonitor //モニタ
 ・hProcess //プロセスハンドル
●API起動(Sを{=?}MODEとして{=?}Oで)
 もし、MODE=空ならば、MODE=SW_SHOWNORMAL
 GとはSHELLEXECUTEINFO
 これについて
  nShow=MODE
  fMask=SEE_MASK_NOCLOSEPROCESS
  lpFile=S
  lpParameters=O
 G構造体とは文字列;G構造体に60を確保
 PACK(G,G構造体,SHELLEXECUTEINFO_TYPE)
 ShellExecuteExA(G構造体)
 Hとは整数
 #UNPACK(G構造体,G,SHELLEXECUTEINFO_TYPE)
 H=G構造体の57を「DWORD」でバイナリ取得
 Hで戻る

総合: -
今日: -
昨日: -
名前:
コメント:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル