PDA

View Full Version : نصب درايور توسط Delphi



hamedsoft
دوشنبه 23 اردیبهشت 1387, 15:45 عصر
با سلام خدمت تمامي دوستان،

من قصد نوشتن برنامه اي دارم که بتونم توسط اون درايور خاصي رو براي سخت افزار نصب کنم، از دوستاني که در اين زمينه اطلاعات دارند، ممنون ميشم بنده رو براي انجام اين امر راهنمايي کنند :چشمک:

hamedsoft
دوشنبه 23 اردیبهشت 1387, 20:00 عصر
البته مي دونم که دادن اين طور پست ها در انجمن که فقط نشانه تأکيد داره خلاف مقررات هست ولي اين دفعه مجبورم تخلف کنم، چون من کارم خيلي گير اين مورد هست، البته من خودم يه چيزي پيدا کردم که اسمش Driver Package Installer هست منتها کارش رو خوب انجام نميده و اون چيزي که من ميخوم نيست، چند تا Command Line هم واسه اين کار پيدا کردم اما اونا هم زياد جالب نبود، البته فکر کردم از InstallShield براي انجام اين کار رو استفاده کنم، اما اگه با خود دلفي بشه که عالي ميشه.

Inprise
دوشنبه 23 اردیبهشت 1387, 20:26 عصر
http://strcpy.com/tag/ShellExecute

hamedsoft
دوشنبه 23 اردیبهشت 1387, 20:59 عصر
http://strcpy.com/tag/ShellExecute
ممنون، منتها اين شبيه همون Command Line که استفاده کردم منتها فايده اي نداشت هست، عمل نمي کنه

Inprise
سه شنبه 24 اردیبهشت 1387, 01:02 صبح
من ازش استفاده كردم .

hamedsoft
سه شنبه 24 اردیبهشت 1387, 11:47 صبح
من ازش استفاده كردم .
درسته من هم تو خيلي از سايت ها خوندم که اين يه راه حل هست و جواب هم ميده، منتها براي من که هر کاري کردم جواب نداد!

vcldeveloper
سه شنبه 24 اردیبهشت 1387, 12:56 عصر
منتها براي من که هر کاري کردم جواب نداد
فکر نمی کنید اگر بجای گفتن "جواب نمیده"، "جواب نداد" و... اگر نحوه استفاده خودتون از کد مورد نظر را اینجا بنویسید (مثلا چند خط از کدی که برای نصب درایور استفاده کردید)، زودتر به جواب می رسید؟
وقتی میگید خودتون دیدید جاهای دیگه از همین کد استفاده کردند، ولی برای شما جواب نمیده، کسی که اینجا علم غیب نداره که بفهمه چرا برای شما جواب نمیده!

hamedsoft
پنج شنبه 02 خرداد 1387, 15:00 عصر
فکر نمی کنید اگر بجای گفتن "جواب نمیده"، "جواب نداد" و... اگر نحوه استفاده خودتون از کد مورد نظر را اینجا بنویسید (مثلا چند خط از کدی که برای نصب درایور استفاده کردید)، زودتر به جواب می رسید؟
وقتی میگید خودتون دیدید جاهای دیگه از همین کد استفاده کردند، ولی برای شما جواب نمیده، کسی که اینجا علم غیب نداره که بفهمه چرا برای شما جواب نمیده!
حق با شماست، من بايد کدي که استفاده مي کنم رو اينجا بذارم تا راه چاره اي براي حل اون دوستان پيش پاي ما بذارن، هميشه خودم به همه ميگم سؤالاتتون رو کامل و واضح بپرسيد بعد خودم عمل نمي کنم :)

اين يه تابع هست که براي اين کار استفاده کردم و جواب نداد:

function InstallINF(const PathName: string; hParent: HWND): Boolean;
var
instance: HINST;
begin
instance := ShellExecute(hParent,
PChar('open'),
PChar('rundll32.exe'),
PChar('setupapi,InstallHinfSection DefaultInstall 132 ' + PathName),
nil,
SW_HIDE) ;

Result := instance > 32;
end;

B-Vedadian
پنج شنبه 02 خرداد 1387, 17:00 عصر
اين بخش از کد شما، ايرادي نداره. احتمالا يا مشکل تو نحوه استفادست، يا تو انتظاري که داريد(چه اتفاقي بايد بيافته؟)

hamedsoft
پنج شنبه 02 خرداد 1387, 18:12 عصر
اين بخش از کد شما، ايرادي نداره. احتمالا يا مشکل تو نحوه استفادست، يا تو انتظاري که داريد(چه اتفاقي بايد بيافته؟)
من فقط ميخوام درايور نصب بشه و اگه مثلا اون درايور يک کارت شبکه هست وقتي وارد بخش Device Manager ميشم ديگه اون رو بعنوان Ethernet Controller نشناسه بلکه بعنوان يک کارت شبکه که درايور اون نصب شده و در حال حاضر قابل استفاده هست بشناسه اما اين اتفاق نمي افته!

B-Vedadian
شنبه 04 خرداد 1387, 07:00 صبح
ننوشتي چطوري استفاده کردي؟ (مثلا اينکه فايلي که دادي نصب کنه چي بوده، مطمئني درايور کارت شبکه همون Inf همراهشه که نصب ميکني؟)