Externe Anwendung Öffnen



  • Hi Leutz!
    Folgendes Problem:
    Ich hab in der 1.cpp nen Button, mit dem möchte ich den Pfad öffnen den ich in der 2.cpp in TEdit angegeben habe!
    Wie realisier ich das?
    Mein Quelltext is bis jetzt soweit, das wenn ich den Button in 1.cpp klicke sich ein Fenster mit dem Pfad von TEdit öffnet aber nich die EXE die ich da angegeben hab! 😕 😕

    1.cpp - Button:

    void __fastcall TForm1::Button5Click(TObject *Sender)
    {
      SHELLEXECUTEINFO sei;
    
        ZeroMemory((PVOID)&sei, sizeof(sei));
    
        sei.cbSize = sizeof(sei);
        sei.fMask  = SEE_MASK_NOCLOSEPROCESS;
        sei.nShow  = SW_SHOW;
        sei.lpFile = TEXT("");
    
        ShellExecuteEx(&sei);
    
        if(sei.hProcess)
        {
            WaitForSingleObject(sei.hProcess, INFINITE);
            CloseHandle(sei.hProcess);
        }  
    }
    

    2.cpp:

    if (OpenDialog1->Execute())
      {
        Edit1->Text = OpenDialog1->FileName;
      }
    }
    

    Danke!!

    Edit:
    Bitte die Code-Tags benutzen. Danke!

    [ Dieser Beitrag wurde am 09.01.2003 um 20:14 Uhr von Jansen editiert. ]



  • An welcher Stelle hast du denn, deiner Meinung nach, den Inhalt von Edit1 an die ShellExecuteEx-Funktion übergeben?

    Ansonsten siehe FAQ, Thema 'externes Programm starten'.



  • Ich denk ma das wird hier gemacht auch wenn es nich dafür gedacht ist!

    if (OpenDialog1->Execute())
    

    Sonst wüßte ich nicht wo er den Pfad weitergibt!
    Aber ich weiß auch nich genau wie ich den Pfad an die ShellExecuteEx weisen soll!

    Don



  • ? Da hast du falsch gedacht 😃
    Der restliche Code ist nicht wirklich von dir, oder ?



  • Hawk:

    Der restliche Code ist nicht wirklich von dir, oder ?

    Nein der ShellExecute Code is nich von mir das hab ich aber auch nie gesagt!
    Denn würd ich (noch) gar nich hinkriegen!
    😉

    [ Dieser Beitrag wurde am 10.01.2003 um 18:45 Uhr von Don Zeitzo editiert. ]



  • Dann solltest du mal Anstalten machen, den Code verstehen zu wollen!
    (-:

    -junix

    [ Dieser Beitrag wurde am 10.01.2003 um 19:01 Uhr von junix editiert. ]



  • weisst du denn was du beim ShellExecute machst und verstehst du den code?
    für mich sieht das so aus:

    a)Google gesucht
    b)gefunden und kopiert
    c)versucht etwas zu machen was du nicht verstehst
    d)nachfragen

    Mag vielleich dumm klingen, aber überleg dir erstmal was du da kopiert hast und wenn du es dann nicht verstanden hast ruf die hilfe auf, und dann kanst du nachfragen. oder guck im FAQ.

    Tom



  • Ich versuche das Problem mit der Hilfe zu lösen und ich finde auch etwas dazu aber egal wie ich den Quelltext umbaue es funzt nich!
    Habt ihr vielleicht nen Tipp wo ich in der Hilfe suchen könnte!
    Mein Problem liegt darin das ich den Pfad von der Form2 nich an die Form1 weisen kann, sodass ich den Pfad dann in Form1 öffnen kann!

    Don



  • Hilfe: "ShellExecuteEx" in den Code-Editor tippen und F1 drücken.



  • Moin
    ich hab mich ma nen bissel im FAQ umgeguckt und will jetzt den Pfad an eine andere Form schicken!
    Und hab diesen Text dazu:

    if (OpenDialog1->Execute())
      {
        Edit1->Text = OpenDialog1->FileName;
    
        Form1->Button5->OnClick = Edit1->Text;
      }
    

    Aber er liefert mir bei der letzten Anweisung immer diese Fehlermeldung und aus der BCB Hilfe werd ich nich schlau!

    [C++ Fehler] Setup.cpp(28): E2034 Konvertierung von 'AnsiString' nach 'void (_fastcall * (_closure )(TObject *))(TObject *)' nicht möglich
    

    Wie kann ich das vermeiden?

    Don



  • Ich habe den eindruck, du weisst überhaupt nicht was du da machst!
    Überleg doch erstmal was du machst, eh du gleich postest, und so lange bettels dass du Links bekommst, so dass du den code 1 zu 1 kopieren kannst, aber nichts gelernt hast!

    Ausserdem meine ich, dass du die Fehlermeldung nicht verstehst, sonst würdest du wissen dass du mit dem Code der da steht total falsch liegst!

    __
    Tom



  • Fehlermeldungen haben Humor, *g*. So drückt sich also technisch aus, daß man einem OnClick-Ereignis keinen Text zuweisen kann.

    @Don Zeitzo, willst du nicht in Wahrheit, daß Form2->OpenDialog->FileName den Inhalt der Eigenschaft FileName vom OpenDialog der Form1 übernimmt? Versuch doch mal, dein Vorhaben ganz direkt umzusetzen. Wenn dann noch eine Fehlermeldung kommt, solte sie auch eine gut verstehbare Aussage haben. Aber das braucht es es eigentlich gar nicht.


Anmelden zum Antworten