Winexec の使い方

解決


AS  2023-06-15 10:07:13  No: 150964  IP: 192.*.*.*

すみません、c:\ 専用で作っていたプログラムをF:\でも使えるようにするためにDRVという変数を使うことにしました。
Winexec( DRV+':\AAAAA\BBB.exe', SW_SHOW);
としたら、エラーが出るので下のようにしたら、エラーは出なくなりましたが、
BBB.exeを立ち上がらせることができなくなりました。
手動で立ち上がらせるとさせたい仕事をするのですが。
どうしたらいいのでしょうか。
よろしくお願いします。

procedure TForm1.FormCreate(Sender: TObject);
begin
  DrtPath :=ExtractFilePath(Application.ExeName);
  Drv :=copy(DrtPath,1,1);
end;

procedure TForm1.button1Click(Sender: TObject);
begin
  Winexec( PAnsiChar(DRV+':\AAAAA\BBB.exe'), SW_SHOW);
end;

編集 削除
igy  2023-06-15 12:37:30  No: 150965  IP: 192.*.*.*

> BBB.exeを立ち上がらせることができなくなりました。 

このとき、winexec の 戻り値は、何が返ってきていますか?

編集 削除
AAAAA  2023-06-15 13:06:38  No: 150966  IP: 192.*.*.*

procedure TForm2.XXXX(P: PAnsiChar);
begin
    Memo1.Lines.Add(StrPas(P));
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
    DRV1 := 'A';   //String
    DRV2 := 'B';   //AnsiString

    TEXT1 := 'CCCCC'; //String
    TEXT2 := 'DDDDD'; //AnsiString

    XXXX (PAnsiChar(DRV1 + 'XXXXX'));  //String     + 'AAAAA'     A
    XXXX (PAnsiChar(DRV2 + 'YYYYY'));  //AnsiString + 'BBBBB'     BYYYYY

    XXXX (PAnsiChar(DRV1 + TEXT1));    //String     + String      A
    XXXX (PAnsiChar(DRV2 + TEXT1));    //AnsiString + String      B

    XXXX (PAnsiChar(DRV1 + TEXT2));    //String     + AnsiString  A
    XXXX (PAnsiChar(DRV2 + TEXT2));    //AnsiString + AnsiString  BDDDDD

    XXXX (PAnsiChar(TEXT1));           //String                   C
    XXXX (PAnsiChar(TEXT2));           //AnsiString               DDDDDD

    XXXX (PAnsiChar('ZZZZZ'))  ;       //'ZZZZZ'                  ZZZZZZ

end;

PWideChar で Stirng型(UnicodeString) を囲んじゃダメだね 
PWideChar(AnsiString(DRV) + 'AAAAAAA' 
にするか 
DRV を AnsiString 型にするか
どちらか

編集 削除
AS  2023-06-15 13:10:19  No: 150967  IP: 192.*.*.*

igyさん、ありがとうございます。

下のでいいのでしょうか?
A=2
です。

   A:=Winexec(PANsiChar(DRV+':\AstaI\AstaI.exe'), SW_SHOW);
   showmessage(IntToStr(A));

編集 削除
AS  2023-06-15 13:20:15  No: 150968  IP: 192.*.*.*

AAAAAさん、ありがとうございました。

DRV:Ansistring;

としたら、完全にうまく働きました。

正直、AnsiChar、Charとか使ったことがないので、何が何だか分かりませんので、
助かりました。

編集 削除