Prog.Hu

Windows kép és faxmegjelenítő-vel megynyitni egy képet (Delphi) probléma

Keresés
Hírlevél

Windows kép és faxmegjelenítő-vel megynyitni egy képet (Delphi)

2013-09-09T00:19+02:00
Halixxx
HalixxxProg.Hu
regisztrált tag
nyitotta: Halixxx, idő: 2005.08.11. 18:42, moderátor: netangel, megoldás elfogadva: 2005.08.11. 22:31
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben

Kategóriák:Programozási nyelvek » Delphi

Sorrend:
Időzóna:
Oldalanként:
Oszd meg!
Hogy tudom a Windows kép és faxmegjelenítővel megnyitni paraméteresen egy adott képfájlt.
(Shellexecute)
Asszem erre is megvan a vátasz(természetesen WinExec-el):
WinExec('rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen c:\kép.bmp');
Tudom hogy nem jó a kód, javítsd mint az elöbb! előzmény

Hello!

procedure TForm1.Button1Click(Sender: TObject);
var
Fajl: 'elérésiút.jpg';
begin
ShellExecute(Application.Handle, PChar('open'), PChar(Fajl), PChar(''), nil, SW_NORMAL);
end;
előzmény
De nekem az a legnagyobb gondom hogy nem tudom a windows kép és faxmegjelenítő exe-jét (a feladatkezelő szerint Explorer.exe)

  ShellExecute(Handle,nil,'explorer.exe',PChar('kép.bmp'),PChar('C:\'),SW_ShowNormal)
mondjuk így, de akkor ez InternetExplorer-t szedi elő ... és nem a képmegjelenítőt. előzmény
Asszem erre is megvan a vátasz(természetesen WinExec-el):
WinExec('rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen c:\kép.bmp');
Tudom hogy nem jó a kód, javítsd mint az elöbb! előzmény
Ja működik egyszerűbben is:
'rundll32.exe shimgvw.dll ImageView_Fullscreen c:\kép.bmp'
előzmény
Van olyan függvény ami PChar-ból Stringet csinál? előzmény
Alapból azzal nyitja meg, ha az az alapértelmezett képmegjelenítő. előzmény
A Delphi helpje azt mondja, hogy:


Long string to PChar conversions are not automatic. Some of the differences between strings and PChars can make conversions problematic:

Long strings are reference-counted, while PChars are not.
Assigning to a string copies the data, while a PChar is a pointer to memory.
Long strings are null-terminated and also contain the length of the string, while PChars are simply null-terminated.

Situations in which these differences can cause subtle errors are discussed in this section.
előzmény
Nekem fogalmam sincs, de mihez kell? előzmény
hát ezér

  WinExec('rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen '+'"'+(P)+'"')
A P az Pchar és a fordítónak nem tetszik. előzmény
Itt találtam ezt:
S1 := String (PChar (S1));
előzmény
De ha nem jó, akkor sztem használd Mester88 megoldását, azis ugyanúgy működik. előzmény
Itt a PChar hiba

  WinExec(PCHAR('rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen "'+DirectoryListBox1.Directory+'\'+P+'"'),SW_SHOW)

De nem hív meg semmit
-- a P a fájlnév -- előzmény
Sajna nincs fenn Delphim. De különben sima stringgel jó, ugye?
A másik topicba nem PAnsiChar-t írtál? Ugyan úgy kell mind a kettőt megcsinálni. előzmény
Ha
rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen
helyett
mspaint.exe-t írok akkor előszedi a paintot a fájllal
úgyhogy sztem ezekbe a sorokba lehet a probléma
rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen előzmény
Nekem működik. Windows XP Prof.
A win kép és faxmegjelenítő az alapértelmezett?
Megvan neked ez a dll? előzmény
jaja,megvan a dll
de nem ez az alapértelmezett....
be kéne állítani? előzmény
Igazábol fogalmam sincs. Ezt a hívást mondjuk a regeditben találtam a file asszociációknál, de sztem működnie kéne akkor is. előzmény
De ha a konzolba írom be akkor megy...
De delphiben nem... előzmény
Itt a megoldás
WinExec(PCHAR('rundll32.exe c:\windows\System32\shimgvw.dll ImageView_Fullscreen ' + DirectoryListBox1.Directory + Edit1.Text ),SW_SHOW)
Nem kell neki a " és az +'\'+ se... így megy és a szóközös fájloknál se hibázik. előzmény

Látod nem kell ide semmilyen PChar konvertálás. Én c#-ban próbáltam ki és ott meg nincs is ilyen.
Az a \ akkor benne van a DirectoryListBox1.Directory-ban vagy az Edit-ben? előzmény
Oszd meg másokkal is!