টপিকঃ সি/ভিবি দিয়ে সিডি/ডিভিডি ট্রে কীভাবে খুলবো?

অনেক গুগলিং করেও কিছুই পেলাম না। কেউ যদি জানেন কীভাবে সি অথবা ভিবি দিয়ে অপ্টিকাল ড্রাইভের ট্রে খুলতে/লাগাতে হয়, প্লিজ শেয়ার করুন।

Re: সি/ভিবি দিয়ে সিডি/ডিভিডি ট্রে কীভাবে খুলবো?

আমি তো প্রথম গুগলিং-এই পেয়ে গেলাম:

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Private Sub command1_Click()
Dim LRet As Long
    LRet = mciSendString("set CDAudio door open", returnstring, 127, 0)
End Sub
Private Sub command2_Click()
Dim LRet As Long
    LRet = mciSendString("set CDAudio door closed", returnstring, 127, 0)
End Sub
#include <windows.h>
#include <winuser.h>

int main(void)
{
  char sString[22] = "set cdaudio door open";
  mciSendString(sString,0,0,0);
  return 0;
}

আরো উন্নত ভার্সন:

DWORD dwReturn;
MCI_OPEN_PARMS mciOpenParms;

mciOpenParms.lpstrDeviceType = (LPCSTR) dwDeviceType;
TCHAR szDriveName[4];
strcpy(szDriveName, "X:");
mciOpenParms.lpstrElementName=szDriveName;

DWORD dwFlags = MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT|MCI_WAIT;
if (bShareable) dwFlags |= MCI_OPEN_SHAREABLE;

dwReturn = mciSendCommand(deviceid,MCI_OPEN, dwFlags, (DWORD)(LPVOID) &mciOpenParms);
Calm... like a bomb.

Re: সি/ভিবি দিয়ে সিডি/ডিভিডি ট্রে কীভাবে খুলবো?

অনেক ধন্যবাদ ইনভার ভাই। clap ভিবির কোড টা কাজ করেছে।
সি এর কোডটা এরর দেখাচ্ছে...
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
Linking...
Cpp1.obj : error LNK2001: unresolved external symbol __imp__mciSendStringA@16
Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Cpp1.exe - 2 error(s), 0 warning(s)
এটা ভিজ্যুয়াল সি++ দিয়ে করা। টারবো দিয়ে ট্রাই করতে চেয়েছিলাম, কিন্তু হেডার ফাইল নেই।
অন্য কোন পদ্ধতি আছে কি?  dontsee

সর্বশেষ সম্পাদনা করেছেন invarbrass (৩১-১২-২০০৯ ১৬:৪৫)

Re: সি/ভিবি দিয়ে সিডি/ডিভিডি ট্রে কীভাবে খুলবো?

শুকসারি লিখেছেন:

Linking...
Cpp1.obj : error LNK2001: unresolved external symbol __imp__mciSendStringA@16
Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals

সি প্রোগ্রামটা Winmm.lib রানটাইম লাইব্রেরীর সাথে লিংক করতে হবে। প্রোযেক্টের প্রোপার্টিয-এ গিয়ে Linker > Input > Additional Dependencies অপশনে winmm.lib লাইনটি যোগ করুন।

mci এপিআই-এর ব্যাপারে  এখানে দেখুন: http://msdn.microsoft.com/en-us/library … 85%29.aspx

এছাড়া কোডে mmsystem.h হেডার ফাইলটাও ইনক্লুড করতে পারেন। তবে #include <windows.h> দিয়েই কাজ হয়ে যাবার কথা - আলাদা করে mmsystem.h যোগ করার দরকার নাই।

এটা পুরণো টারবো সি দিয়ে মনে হয় করতে পারবেন বলে মনে হয় না। তবে কোডগিয়ার (প্রাক্তন বোরল্যান্ড) টার্বো সি++ বিল্ডার ২০০৬ ডাউনলোড করতে পারেন। এটা ফ্রী সফটওয়্যার:
http://www.turbomirror.com/

Calm... like a bomb.

Re: সি/ভিবি দিয়ে সিডি/ডিভিডি ট্রে কীভাবে খুলবো?

ধন্যবাদ। কাজ করেছে।  আরো ২ বছর আগে আমি এটা খুজেছিলাম। যাইহোক অন্যভাবে সমাধান করেছিলাম। এখন অবশ্য ভিবি তে কাজ করিনা। আর দেখে একবার টেস্ট করে দেখলাম। ভালোই লাগল।