Q&A

  • API 함수 winexec() 가 델파이7에서 안되는데..??

API 함수
winexec(), ShellExecute(), CreateProcess() 가
델파이4에서는 되는데
델파이7에서는 안됩니다.

그 이유와 해결방법좀 부탁합니다...

1  COMMENTS
  • Profile
    아프락삭스 2003.11.04 23:34
    안녕하세요?
    저도 초보라..설명은 잘 못하겠지만..
    얼마전에 예제로 해본저이 있어서 예제 코드를 옮겨 놓습니다..
    Uses절에 ShellAPI를 입력하시구요..

    버튼을 클릭했을때, 알맵을 실행시키는 것입니다..
    이미 실행이 되었을 경우에는 다시(Top) 보여줍니다..
    음..
    그럼..도움이 되셨길....

    procedure TfrmMain.btnAlMapClick(Sender: TObject);
    Var
      FileName : String;
      Reg : TRegistry;
      szPath : String;
      HWnd : THandle;
    Begin
      HWnd := FindWindow('TfMain', Nil);
      If HWnd <> 0 Then
      Begin
        BringWindowToTop(HWnd);
      End
      Else
      Begin
        Reg := TRegistry.Create;
        Try
          Reg.RootKey := HKEY_CURRENT_USER;
          If Reg.OpenKey('SoftwareESTSoftALZip', True) Then
          Begin
            If Reg.ValueExists('RootDir') Then
            Begin
              szPath := Reg.ReadString('RootDir');
              If Length(szPath) > 0 Then
              Begin
                szPath := szPath + 'ALZip.EXE';
                If ShellExecute(0, 'Open', PChar(ExtractFileName(szPath)),'',
                PChar(ExtractFilePath(szPath)), SW_SHOWNORMAL) = ERROR_FILE_NOT_FOUND Then
                  Inform('알Map.EXE is not exists.', 'Execute Error');
                //WinExec(PChar(szPath), SW_SHOWNORMAL);
              End;
            End;
          End;
        Finally
          Reg.Free;
        End;
      End;
    End;
    //    WinExec('C:WINNTaaa.wxe', SW_SHOWNORMAL);
    //  CreateProcess로도 가능하다..