Avatar billede cro1984 Nybegynder
03. juli 2001 - 01:00 Der er 11 kommentarer og
1 løsning

Installation/afspilning fra Cd-rom

Jeg er i gang med at lave en slags database i Delphi 5. Jeg laver hjemmesider, men ellers har jeg ikke prøvet den form for programmering før, som er en del anderledes fra HTML.
Jeg har lavet et oversigt over programmer, spil mm. i det programmerede program, men jeg kan ikke finde ud af, hvordan jeg laver et slags link system, hvor jeg dobbelt klikker på teksten (programmet), samtidig med at den søger på cdrommen, og evt. installer/afspiller filen. Hvis ikke Cdrommen er i cd drevet(ne), skal den automatisk bede om f.eks. put cd (x) i cd drevet.

På forhånd tak for hjælpen.
Cro 

Avatar billede borrisholt Novice
03. juli 2001 - 01:03 #1
Jeg er ikke helt med ... Kan du lave en hjemmeside demo jeg lige kan se ?
Avatar billede darkside Nybegynder
03. juli 2001 - 02:40 #2
Hm det lyder som den slags menu system der er på pirat cd\'er...
Avatar billede kaspikov Nybegynder
03. juli 2001 - 08:27 #3
Først skal du finde cd-drevets navn, det kan gøres på mange måder men her er en:

var
cddrev: string;
begin
cddrev := ExtractFileDir(Application.exename);
end;

for så at eksekvere file og andet godt fra cd\'en skal du indsætte følgende kode:

ShellExecute(Handle, PChar(\'OPEN\'), PChar(cddrev +\'Sti\\filnavn.exe), nil, nil, 0);

Det burde gøre det. eksekveringen altså

Jeg kan ikke huske om ShellExecute returnerer noget, men hvis det er et handle til det vindue man får, så skal du checke det på den måde, men det kan jeg ikke huske!

Casper
Avatar billede easysoft_studios Nybegynder
03. juli 2001 - 22:00 #4
Benyt den måde Casper gav til at finde cd\'rom-drevet. Man må jo formode at dit program, ligger på cd\'en når den afspilles. (Ellers skal du til at rode med Registry (det kan jeg forklare mere om hvis du syndes))

For at undersøge om cd\'romen er i drevet, så brug fileexists()

fx:

  while FileExists(CDdrev + \'autorun.ini\') = False do
    ShowMessage(\'Indsæt cd\');

En simpel rutine der bliver ved med at vise beskeden Indsæt cd, indtil man klikker OK og cd\'en faktisk er i drevet! Håber det er til at forstå.

Autorun.ini er bare en dummy der skal ligge på cd\'en så du kan være sikker på at cd\'en er i drevet. Kald den noget andet, fx: s947665.fds så er sandsynlighederne for at der sker en misforståelse lille!


EasySoft Studios
Avatar billede zerohero Nybegynder
04. juli 2001 - 13:34 #5
Her er anden måde at gøre det på.
Den tæller alle dine cd-rom drev op og undersøger om der er ligger en cd-rom i drevet og dernæst om der eksitere filen \'autorun.ini\' i roden af cd\'en.

var
  drive : char;
  i : integer;
  filename : string;
  found : boolean;
begin
filename := \'autorun.ini\';
i := 1;
for drive := \'A\' to \'Z\' do
  begin
    case getdrivetype(pchar(drive + \':\\\')) of

      drive_cdrom:  if (disksize(i) > -1) then
                      begin
                        found := true;
                        if fileexists(chr(64+i)+\':\\\'+filename) then
                        //gøret eller andet
                        else
                        showmessage(\'Forkert CD-ROM\');
                      end;

end; //case
inc(i);
end;
if not found then showmessage(\'Der er ingen CD-ROM tilgængelige!\');
end;

Metoden er dog ikke nær så snild som easysoft studios og casper\'s eksempler men jeg vil vædde med at det er en metode du vil kunne bruge både nu men også i fremtiden.

EKSEMPEL:
Hvis du vil give mulighed for at brugeren kan installere din application på en HD\'en( i stedet for altid at skulle starte og fra CD-Rom!) og kun først når der skal installeres eller afspilles filer fra cd\'en behøver brugeren at tænke på din CD\'Rom - Desuden kan man jo dermed også anvende flere cd-rom\'er til samme application.

HUSK:
I stedet for drive_cdrom kan du også skrive:

drive_removable (finder alle Diskette drev på din computer).

drive_fixed (finder alle hardiske på din computer).

drive_remote (har noget med netværk at gøre!).

GOD FORNØJELSE

ZeroHero
Avatar billede zerohero Nybegynder
01. august 2001 - 13:11 #6
Kan du bruge mit svar???

ZeroHero
Avatar billede cro1984 Nybegynder
18. september 2001 - 20:12 #7
Har du en mail eller bruger du MSN...???
Cro1984@hotmail.com
Avatar billede zerohero Nybegynder
18. september 2001 - 21:11 #8
Mener du mig????
Avatar billede zerohero Nybegynder
18. september 2001 - 21:15 #9
I mit tilfælde ja. Det er følgende:

info@opengl-delphi.dk
Avatar billede zerohero Nybegynder
20. september 2001 - 20:37 #10
Jeg bruger ikke MSN - hvorfor da det???

ZeroHero
Avatar billede cro1984 Nybegynder
21. september 2001 - 13:15 #11
Har du ikke en mail adr....???
Jeg har nogle spr.
Avatar billede zerohero Nybegynder
21. september 2001 - 15:27 #12
send mig en mail med dine spørgsmål, så vil jeg besvare dem hurtigst muligt:

Dette er min mail adresse:

info@opengl-delphi.dk

ZeroHero
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