Results 1 to 11 of 11

Thread: ShellExecute

  1. #1
    Senior Member
    Join Date
    Jan 2005
    Location
    Waspik
    Posts
    579

    ShellExecute

    In Delphi heb ik een keer de volgende code gebruikt om een e-mail programma te starten. (Werkte altijd prima)

    Code:
      if ShellExecute(0,'open','mailto:my_email@planet.nl?subject=test; Melding&body=', NIL, NIL, SW_SHOWNORMAL) < 32 then  // uses ShellAPI
      begin
    lazarus loopt tijdens het compileren vast met de volgende melding: Identifier not found "SW_SHOWNORMAL"

    Hoe start je in lazarus een e-mail programma op?
    Last edited by Hansvb; 03-Aug-13 at 23:38.

  2. #2
    Senior Member AntonSteen's Avatar
    Join Date
    Dec 2006
    Location
    IJsselmonde (Rotterdam)
    Posts
    352
    Hans, ik denk dat je hier wel wat aan zal hebben, succes

    http://wiki.freepascal.org/Executing_External_Programs
    Lazarus als hobby, en dan niet in de kroeg
    http://www.wavdsteen.com

  3. #3
    Unit LCLType.

    Bart

  4. #4
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by Bart B View Post
    Unit LCLType.
    Hmmm opvallend: in de link van Anton staat dit:
    Pascal Code:
    1. // or a useful procedure:
    2. procedure RunShellExecute(const prog,params:string);
    3. begin
    4.   // ( Handle, nil/'open'/'edit'/'find'/'explore'/'print',   // 'open' isn't always needed
    5.   // path+prog, params, working folder,
    6.   // 0=hide / 1=SW_SHOWNORMAL / 3=max / 7=min)   // for SW_ constants : uses ... Windows ...
    7.   if ShellExecute(0,'open',PChar(prog),PChar(params),PChar(extractfilepath(prog)),1) >32 then; //success
    8.   // return values 0..32 are errors
    9. end;
    en daar zeggen ze in de comment (op regel 6) dat het in de Windows-unit staat,
    net als bij Delphi.
    TMemoryLeak.Create(Nil);

  5. #5
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Quote Originally Posted by VideoRipper View Post
    .......en daar zeggen ze in de comment (op regel 6) dat het in de Windows-unit staat,
    net als bij Delphi.
    Ik heb ShellExecute ook gebruikt en die SW_SHOWNORMAL staat inderdaad in Windows-Unit.
    Als ik die Unit even weghaal en compileer, dan krijg ik dezelfde foutmelding.
    (Naast nog een stuk of tien andere )

    Greets,
    Peter.
    Carpe Diem !
    (Horatius)

  6. #6
    Het staat (ook) in LCLType, zodat de constante beschikbaar is voor programma's die niet Windows in hun uses clause hebben staan.

    Bart

  7. #7
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Quote Originally Posted by Bart B View Post
    Het staat (ook) in LCLType, zodat de constante beschikbaar is voor programma's die niet Windows in hun uses clause hebben staan.

    Bart
    Maar met dit weer hen ik alle Windows open staan.
    Dus bij mij staattie in de uses hoor.
    Zeker 's nachts.
    Carpe Diem !
    (Horatius)

  8. #8
    Senior Member
    Join Date
    Jan 2005
    Location
    Waspik
    Posts
    579
    uses Windows was inderdaad de oplossing. Eigenlijk heel logisch

  9. #9
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Vind je?

    de unit Windows is is eclusief voor het gebruik van windows gerelateerde functies en API's.
    Of zit daar ook iets in dat een Unixshell opent.
    Want Lazarus zal toch objectief moeten blijven.

  10. #10
    Shellexecute is Windows only.
    Kijk even hier (http://wiki.freepascal.org/Executing_External_Programs) voor cross-platform opties.

  11. #11
    Dus was de uses van Windows niet alleen logisch, maar ook een waarschuwing voor mensen met multiplatform als doel.
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •