PDA

View Full Version : استفاده از pchar در دلفی 2009



Mask
سه شنبه 18 خرداد 1389, 14:46 عصر
باسلام
در دلفی 7 از کد زیر استفاده میکردم.

WinExec(pchar(System+'\temp.bat'),HIDE_WINDOW);
اما در دلفی 2009 این کد کار نمیده.
چرا؟
system یه متغیره که مسیر سیستم 32 داخلش ریخته میشه.
از چه کدی باید استفاده کرد؟

جواد ملاولی
سه شنبه 18 خرداد 1389, 19:40 عصر
سلام.

WinExec(PAnsiChar(System+'\temp.bat'),HIDE_WINDOW) ;

vcldeveloper
سه شنبه 18 خرداد 1389, 19:45 عصر
به خاطر اینکه WinExec یک تابع API منسوخ شده، مربوط به Windows 3.1 هست، و از یونیکد پشتیبانی نمیکنه، پس باید پارامتر مربوطه به صورت ANSI بهش ارسال بشه؛ همانطوری که در مثال پست شماره 2 تاپیک نوشته شده.

Mask
چهارشنبه 19 خرداد 1389, 11:59 صبح
ممنون.وقتی از PAnsiChar استفاده میکنم . کد بالا که گذاشتم دیگه کار نمیکنه.به نظرتون چرا؟

BORHAN TEC
چهارشنبه 19 خرداد 1389, 12:09 عصر
چرا از ShellExecute استفاده نمی کنید:

uses
ShellAPI;
procedure TForm2.FormCreate(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'c:\ali.exe', nil, nil, SW_SHOWNORMAL);
end;

جواد ملاولی
چهارشنبه 19 خرداد 1389, 21:06 عصر
ممنون.وقتی از PAnsiChar استفاده میکنم . کد بالا که گذاشتم دیگه کار نمیکنه.به نظرتون چرا؟
کار نمیکنه یعنی error میده یا عمل نمی کنه؟

Mask
پنج شنبه 20 خرداد 1389, 11:59 صبح
کار نمیکنه یعنی error میده یا عمل نمی کنه؟
ممنون.
عمل نمیکنه!!

جواد ملاولی
پنج شنبه 20 خرداد 1389, 19:45 عصر
اون متغیر System که داری، اونو از جنس AnsiString تعریف کن.