Avatar billede vlamik Nybegynder
11. august 2000 - 18:26 Der er 4 kommentarer og
2 løsninger

Genveje

Hejsa...

Hvodan kan man lave en genvej i C++Builder 3?? Er der en funktion eller skal man bruge et komponent? I så fald hvor kan man få det henne?

På forhånd Tak

Mikkel Bøg Clemmensen
Avatar billede lbs Nybegynder
11. august 2000 - 18:42 #1
Den letteste mulighed er at bruge en lille vbs script som du kalder med ShellExecute..
hvis det ikke er helt tilstrækkeligt kan du gøre det .. det er bare lidt komplekst:

Jeg kan ikke forklare dig hvordan det gøres for 60 point, men jeg kan vise dig hvor du kan læse om det:

http://msdn.microsoft.com/library/default.asp?URL=/library/techart/msdn_shellnk1.htm
Avatar billede lbs Nybegynder
11. august 2000 - 18:46 #2
http://msdn.microsoft.com/scripting/windowshost/doc/wsmthcreateshortcut.htm

her kan du se hvordan du laver en shortcut med et script...
Avatar billede vlamik Nybegynder
13. august 2000 - 10:07 #3
Hvordan kan man bruge ShellExecute() til at aktivere et vbs script??
Avatar billede lbs Nybegynder
13. august 2000 - 11:52 #4

HINSTANCE ShellExecute(
    HWND hwnd,
    LPCTSTR lpVerb,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    LPCTSTR lpDirectory,
    INT nShowCmd
);


så det bliver noget lignende


ShellExecute(hwnd,\"open\",\"c:\\din-fil.vbs\",NULL,NULL,SW_HIDE)

her er hwnd et handle til dit aktuelle vindue..
hvis du ikke har noget kan du prøve at give NULL med her, selvom det ikke går hvis dit script bruger dialogvinduer(tror jeg nok)


du skal inkludere en header, brug windows.h,
og så skal du linke med shell32.lib


du kan læse mere om kommandoen her

http://msdn.microsoft.com/library/psdk/shellcc/shell/Functions/ShellExecute.htm

Mvh Jonas
Avatar billede borrisholt Novice
21. august 2000 - 00:29 #5
Jeg har noget Delphi kode liggende der kan gøre det for dig. Du ligger bare Delphi koden i en unit for sig selv så kan den saktens kaldes inde fra C++ milijøet. Jeg har ingen C++ Compiler her på mit arbejde så jeg kan ikke lige tilbyde at porte det ....


Det følgende laver en genvej til dig

uses ComObj, ActiveX, ShlObj, Registry, filectrl;
const  SFolderKey = \'\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\';  { Registry key where Folder information is kept }


function GetFolderLocation(const FolderType: string): string;
{ Retrieves from registry path to folder indicated in FolderType }
begin
  with TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;
      if not OpenKey(SFolderKey, False) then { open key where shell folder information is kept. }
        raise ERegistryException.CreateFmt(\'Folder key \"%s\" not found\', [SFolderKey]);
      Result := ReadString(FolderType);  { Get path for specified folder }
      if Result = \'\' then
        raise ERegistryException.CreateFmt(\'\"%s\" item not found in registry\',[FolderType]);
      CloseKey;
    finally
      Free;
    end;
end;

procedure MakeLink(AppName : String; StartIn : String = \'\';LinkLocation : String= \'\');
var
  SL: IShellLink;
  PF: IPersistFile;
  LnkName: WideString;
begin
  if LinkLocation = \'\' then
    LinkLocation := GetFolderLocation(\'Startup\');

  if LinkLocation[Length(LinkLocation)] <> #92 then
    LinkLocation := LinkLocation + #92;

  AppName := ExpandFileName(AppName);

  if (not FileExists(AppName)) and (not DirectoryExists(LinkLocation))then
    exit;

  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, SL)); { IShellLink implementers are required to implement IPersistFile }
  PF := SL as IPersistFile;
  OleCheck(SL.SetPath(PChar(AppName)));  // set link path to proper file
  StartIn := \'\"\' + StartIn + \'\"\';
  SL.SetArguments(PChar(StartIn));
  LnkName := PChar(LinkLocation) + ChangeFileExt(ExtractFileName(AppName), \'.lnk\');
  PF.Save(PWideChar(LnkName), True);      // save link file
end;

Koden kaldes som følger :
  MakeLink(Application.ExeName,\'C:\\Billeder\\\');

Jens B
Avatar billede vlamik Nybegynder
19. september 2000 - 20:10 #6
Jeg har ikke rigtig haft brug for det indtil videre så jeg fordeler pointene, det synes jeg er meget rimligt, da jeg kunne bruge begge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester