نوشته شده توسط
titans
با سلام!
دوستان من وقتی به نتیجه ای نمیرسم اینجا رو انتخاب میکنم چون همیشه یکی هست که جوابشو اینجا بدونه!
دوستان یه سوال چطوری میشه یک فایلی را در c اجرا کرد منظورم اینه که اجرا بشه نه اینکه برای خواندن باز بشه! مثلا مثل دوبل کلیک عمل بکنه خواهش دوستانی که میدونن راهنمایی کنند!
فایل در واقع اجرا نمیشه، مسیر فایلش به یک برنامه اجرایی ارسال میشه تا اون برنامه اجرایی مسیر فایل رو دریافت کنه و به طریقی که خودش تشخیص میده با اون فایل رفتار کنه.
مثلا یک فایل file.myext داریم. پسوند myext. ناشناخته است و ویندوز نمیدونه با دوبل کلیک کردن روی این فایل باید چه کاری انجام بده.
اما در Registry ویندوز با اضافه کردن چند کلید و مقدار مشخص می کنیم که هر فایل با پسوند myext. باید توسط فایل اجرایی myapp.exe که به زبان C یا هر زبان دیگری نوشته ایم باز بشه.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.myext]
@="myext"
[HKEY_CLASSES_ROOT\myext]
[HKEY_CLASSES_ROOT\myext\shell]
[HKEY_CLASSES_ROOT\myext\shell\open]
[HKEY_CLASSES_ROOT\myext\shell\open\command]
@="\"C:\\MyFolder\\myapp.exe\" \"%1\""
حالا ویندوز میدونه که myapp.exe رو باید برای فایل هایی با پسوند myext. اجرا کنه.
یعنی وقتی روی فایلی مثلا C:\AnyFolder\file.myext دوبل کلیک شد باید با دستور خط فرمان C:\MyFolder\myapp.exe C:\AnyFolder\file.myext اون برنامه myapp.exe رو اجرا کنه.
برنامه myapp.exe که به زبان C نوشته شده میتونه مسیر فایل رو در آرگومان ورودی main اش دریافت کنه و حالا به میل خودش فایل رو باز کنه، بخونه، ویرایش کنه، پاک کنه، کپی کنه و ...
دیگه اینکه برنامه با اون مسیر فایل میخواد چیکار کنه ربطی به دوبل کلیک نداره.
#include <stdio.h>
int main(int argc, char *argv[])
{
if (argc >= 2)
{
char* filePath = argv[1];
printf("File path:\n");
printf(filePath);
printf("\nPress any key to continue.");
getch();
}
return 0;
}
Sample.zip