PwideChar i problem z konwertowaniem;

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
Siemanko
smile.gif
Chciałbym uruchomić 2 pliki pod rząd, i doszłem do tego ze bedzie dobrze wywaołać funkcje z shell32.dll:

Kod:
s:PwideChar;

begin

s:= 'C:\Users\Legalnl\AppData\Local\Temp\dtmp\plik.doc';

s2 := 'C:\Users\Legalnl\AppData\Local\Temp\dtmp\plik2.doc';

ShellExecuteW(handle,'open',s,'SW_NORMAL',s,0);

ShellExecuteW(handle,'open',s2'SW_NORMAL',s2,0);
no i to dziala ladnie
<


ale jak jest podana sciezka odrazu do zmiennej. Aja mam funkcje w DLL ktora po zrobieniu ble ble zwraca mi sciezke do pliku, i tu juz jest problem:/


function wypakuj(nazwapaczki,filename:pchar):pwidechar; // funkcja zwraca sciezke w postaci ?????????????????? (system sie raczej nie domysli xD)

function wypakuj(nazwapaczki,filename:pchar):pchar; // funkcja zwraca sciezke ale zeby użyć jej w ShellExecuteW, to musi być ona typu PwideChar.....

...wiec robie:

Kod:
p:=wypakuj('nazwa.rar','folder\plik.doc');

s:= pwidechar(p);

ShellExecuteW(handle,'open',s,'SW_NORMAL',s,0);
i.. zwraca mi ????????????????????????   :/

Ma ktoś jakis pomysł jak to rozwiązać, bądz jakiś inny sposob na otwarcie pliku poprzez podanie jej sciezki?? dodam ze funkcja juz uruchamia poprzez winexec i problem w tym ze juz nie chce uruchomić drugi raz pod rząd :/

Albo w BAT zapisana sciezka z polskimi znakami nie uruchamia się poniewaz nie ma poprawnego kodowania, czy ktoś mogłby mi tez pomoc w jaki sposob utworzyc poprzez delphi plik, ktory bedzie w kodowaniu DOS ??



Proszę o pomoc
<
Pozdrawiam
smile.gif


                
 

adikx

Użytkownik
Dołączył
Maj 21, 2007
Posty
415
hmm. Może tak:
Kod:
p:=wypakuj('nazwa.rar','folder\plik.doc');
WinExec(p,sw_normal);

WinExec znajduje się chyba w module windows
<
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
No to ja wiem ze istnieje takie cudo jak WinExec
<
Tylko chodzi o te pWideCrah
<
a konkretniej o konwertowanie tego typu zmiennych
<


@Damn3d WinExec znajduje się w module Windows
<
 

Damn3d

Użytkownik
Dołączył
Kwiecień 18, 2009
Posty
88
Nie wiem na jakiej podstawie nazywasz to "modułem". Ale nie ważne.
 

Dark Smark

Były Moderator
Dołączył
Kwiecień 29, 2006
Posty
1953
<div class='quotetop'>CYTAT(Damn3d @ 6.06.2009, 2:29) <{POST_SNAPBACK}></div>
Nie wiem na jakiej podstawie nazywasz to "modułem". Ale nie ważne.[/b]
Bo niejakim odpowiednikiem bibliotek z C/C++ w Pascalu są moduły. Skoro WinExec jest częścią interfejsu dla programistów Windows to trzeba skorzystać z modułu który umożliwia wykorzystanie WinApi czyli modułu Windows.
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
ja wiem
<
Tylko w takim razie po co robili w windowsach takie cosik jak ShellExtudeW ?? i jaki jest sens wykorzystywania PWideChra?? Tylko po to ze ma znaki unicode?? i co z tego??
 
Do góry Bottom