掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DOS アプリケーションを呼び出して実行させるには? (ID:19240)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi2005を使ってエディタを作成しているものです。 DOS アプリケーションを呼び出して結果を取得したいとおもったのでCreateProcessを使って プログラムを組み立てたのですが、いざ実行してみると「正しくない型キャスト」とエラーが 出てきてしまってコンパイルできずにいます。 CreateProcessについてなど、いろいろ見回ってみたのですがいまいち自分のエラーの原因が 分からなくて躓いております。 以下がプログラム抜粋なのですが… ------------------------------ //DOS表示および実行関係 procedure ExecProcess(Command, Dest: String); var SI :TStartupInfo; PI :TProcessInformation; begin //ウィンドウの属性を初期化 begin SI.cb := SizeOf(TStartupInfo); //構造体のサイズ指定 SI.dwX := 0; //ウィンドウの位置指定 SI.dwY := 0; SI.dwXSize := 0; //ウィンドウのサイズ指定 SI.dwYSize := 0; SI.wShowWindow := SW_SHOWNORMAL; //ウィンドウの表示状態指定 SI.dwFlags := 0; //有効な設定項目を指定 SI.lpReserved := nil; //それ以外の項目を初期化 SI.lpDesktop := nil; SI.lpTitle := nil; SI.cbReserved2 := 0; SI.lpReserved2 := nil; // DOS プロンプトが表示されるのを抑止する end; If NOT CreateProcess(nil,PChar(Format('%s %s',[Command,Dest])),nil,nil,False, 0, nil, nil, SI, PI) Then //↑エラー発生箇所 Raise Exception.Create('実行ファイルの設定が正しくありません'); While WaitForSingleObject(PI.hProcess, 0) = WAIT_TIMEOUT Do Application.ProcessMessages; //プロセス終了まで待機する CloseHandle(PI.hProcess); end; ------------------------- このままのプログラムだと、//↑エラー発生箇所部分で正しくない型キャストとエラーが出ているのです。 CreateProcessの使い方が間違っているのでしょうか? こういった掲示板で質問させていただくのは初めてなので、何か説明の不十分なところがあったなら申し訳ありません。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.