সরাসরি সিএমডি থেকে এমএসজিবক্স কীভাবে প্রদর্শন করবেন


16

আমি সিএমডি ব্যবহার করে ব্যবহারকারীর কাছে একটি বার্তা প্রদর্শন করতে চাই। আমি যেভাবে এটি করতে জানি তা হ'ল একটি .vbs (ভিবিএস স্ক্রিপ্ট) ফাইল তৈরি করা এবং এটি সিএমডি থেকে এভাবে চালানো:

(echo MsgBox "Line 1" ^& vbCrLf ^& "Line 2",262192, "Title")> File.vbs

start File.vbs

তবে আমি যা করতে চাই তা হ'ল সরাসরি সিএমডি থেকে কোনও ফাইল তৈরি না করে বার্তাটি প্রদর্শন করা। হয়তো সিএমডি থেকে ভিবিএস স্ক্রিপ্ট চালানোর জন্য একটি কমান্ড ব্যবহার করে।


দেখুন msgকমান্ড। আপনি যদি উইন্ডোজের হোম সংস্করণটি চালাচ্ছেন তবে এটি আপনার কাছে নাও থাকতে পারে তবে আপনি কোনও প্রো ইনস্টলেশন থেকে এই ছবিটি কেবল অনুলিপি এবং পিক্স করে যোগ করতে পারেন।
wysiwyg

আমি কিছুটা আরও "সার্বজনীন" চাই, যদি কোনও উপায় থাকে তবে সমস্ত উইন্ডোজ 10 সংস্করণের জন্য।
বিটা

সর্বদা পাওয়ারশেলও আছে। মাইক্রোসফ্ট স্পষ্টতই সিএমডি প্রম্পট অপসারণের জন্য রূপান্তর শুরু করে থাকলেও এটিকে উপেক্ষা করা হয়নি।
অ্যাপলড্ডিটি

উত্তর:


9

যেহেতু অন্যেরা বলেছেন যে এটি সিএমডি দিয়ে খাঁটিভাবে করার কোনও উপায় নেই তবে যদিও এটি প্রশ্নের শিরোনাম, এটি আমার কাছে মনে হয় যে ফাইলটি ছাড়া অংশটি আপনার পক্ষে আরও গুরুত্বপূর্ণ এবং নির্দিষ্ট পরিস্থিতিতে এটি সম্ভবত সম্ভব হতে পারে।

পাওয়ারশেলের মাধ্যমে এ জাতীয় কোনও ফাইল ছাড়াই কোড চালানো সম্ভব হবে:

PowerShell -Command "Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Hello World')"

ভিবিএস সিএসক্রিপ্ট বা ডাব্লুএসক্রিপ্টের মাধ্যমে কোডের সরাসরি সম্পাদনের অনুমতি দেয় না তবে এমএসটিএ দেয়। আপনি এটি এর মতো ব্যবহার করতে পারেন (যদি আপনার একাধিক লাইনের প্রয়োজন হয় তবে ':' একটি ডিলিমিটার হিসাবে ব্যবহার করুন):

mshta vbscript:Execute("msgbox ""Hello World"":close")

এটি যেমন ভিত্তিক তাই এটি কিছু জিপিও বিধিনিষেধ দ্বারা প্রভাবিত হতে পারে তাই আপনার যদি পছন্দমত পাওয়ারশেল থাকে তবে সম্ভবত এটি নিরাপদ বাজি


সম্পর্কে উপরোক্ত সতর্কতা ছাড়াও mshta, কিছু অ্যান্টিভাইরাস সফ্টওয়্যার এটিকে একটি সম্ভাব্য অযাচিত প্রক্রিয়া হিসাবে বিবেচনা করে। কর্মক্ষেত্রে, এটি চালানোর জন্য আমার প্রচেষ্টার ফলে আমার সম্পূর্ণ মেশিনকে পৃথক করে এটি নেটওয়ার্ক তৈরি করতে অপসারণকারী একটি উত্সাহী পণ্য (সেন্টিনেলওন) তৈরি হয়েছিল।
জেসন

15

উইন্ডিজের প্রো / বিজনেস ভার্সন * -তে আপনি Msgকমান্ডটি খুঁজছেন বলে @ ওয়াইসিউইগের পরামর্শ অনুসারে । এটি উইন্ডোজের সমস্ত আধুনিক সংস্করণে পাওয়া যায় (কমপক্ষে এক্সপি হিসাবে অনেক পিছনে)। বর্তমানে লগ ইন থাকা ব্যবহারকারীর কাছে একটি বার্তা প্রদর্শন করতে নিম্নলিখিতটি চালান:

msg %username% Your message here

ফলাফলটি এরকম দেখাচ্ছে: এখানে চিত্র বর্ণনা লিখুন

এই আদেশের সাথে একটি বিবেচনা হ'ল আপনি শিরোনামবারের পাঠ্যটি কাস্টমাইজ করতে পারবেন না।

আপনি টেকনেটে এমএসজি সম্পর্কে আরও শিখতে পারেন ।


* আপনার যদি এমন কোনও সমাধানের প্রয়োজন হয় যা উইন্ডোজের সমস্ত সংস্করণে হোম সহ কাজ করে তবে আমার মতে আপনি যে ভিবিএস স্ক্রিপ্ট পদ্ধতিটি সম্পর্কে ইতিমধ্যে অবগত রয়েছেন তা হ'ল এই সমস্যার সহজ সমাধান। এটি তাদের ডিফল্ট কনফিগারেশনে উইন্ডোজের সমস্ত আধুনিক সংস্করণ এবং সংস্করণে কাজ করে এবং ব্যবহার করা সহজ।


1
সম্পূর্ণ সত্য নয়। উইন্ডোজ আসার পর থেকে একটি ডিপিএস বার্তা বক্স কমান্ড ছিল। আমি বিশ্বাস করি এটি উইন্ডোজ 7 বা 8 এ সরিয়ে নেওয়া হয়েছিল কারণ এটি একটি সম্ভাব্য শোষণ হিসাবে দেখা হয়েছিল।
সেল্টারি

2

আমার আজকের মতো কিছু দরকার ছিল। যেহেতু আমি বাহ্যিক নির্ভরতা সমাধানটি পছন্দ করতে পারি নি যেহেতু আমি সত্যই ভিবিএস স্ক্রিপ্ট / পাওয়ারশেলের অনুরাগী নই, তাই আমি এগিয়ে গিয়ে একটি লিখেছিলাম:

https://github.com/cubiclesoft/messagebox-windows

বার্তা বাক্সে এটা উত্পাদন মোডাল বর্তমান কনসোল উইন্ডোতে। অর্থাৎ, ডায়ালগটি বন্ধ না করা পর্যন্ত ব্যবহারকারী কিছুই করতে পারবেন না। এছাড়াও, MessageBox()কলটি থেকে রিটার্ন কোড কলারে ফেরত দেওয়া হয় যাতে কোনও স্ক্রিপ্ট যার যে কোনও বোতাম টিপে টিপে প্রতিক্রিয়া জানাতে পারে। এবং, অবশ্যই, এটি MessageBox()Win32 এপিআইয়ের সম্পূর্ণ পরিসীমা বিকল্পকে সমর্থন করে ।

মিশ্রণে এক্সিকিউটেবল একটি 80 কেবি যোগ করা প্রত্যেকের চা কাপ নাও হতে পারে। এটি স্থিতিশীলভাবে ভিসি ++ রানটাইমের বিপরীতে যুক্ত এবং এটি ইউনিকোডকে সমর্থন করে, যা ব্যাখ্যা করে যে ফাইলটি কেন এটির সামান্যতম প্রকৃতির কারণে এত বড়। এবং একাধিক সমস্যা রয়েছে যে মাল্টলাইন বার্তাগুলি প্রদর্শন করতে কমান্ড-লাইন থেকে সহজেই নতুন লাইনে পাস করতে সক্ষম হবে না। সামান্য উল্টো দিকে, এটি এখন পর্যন্ত উপস্থাপিত অন্য যে কোনও সমাধানের চেয়ে কম ওয়াল ক্লক টাইমে ডায়ালগটি প্রদর্শন করে।

অবশ্যই, যদি ফাইলের আকারটি গুরুত্বপূর্ণ না হয় এবং ডায়লগগুলি একটি "আপনার মুখে" ব্যবহারকারীর অভিজ্ঞতা তৈরি করে এবং / অথবা ব্যবহারকারীর মিথস্ক্রিয়ার প্রয়োজন না হয়, আমিও এই নিফটি প্রকল্পে চলে এসেছি:

https://www.paralint.com/projects/notifu/

যা আইউজারনোটফিকেশন ব্যবহার করে পর্দার স্থিতি বিজ্ঞপ্তি অঞ্চলে একটি পপআপ বেলুন প্রদর্শন করে । অবক্ষয়টি হ'ল নোটিফু এক্সিকিউটেবল 240KB এর সাথে লজ্জাজনকভাবে চলে। আরও একটি দুর্ভাগ্যজনক উদাহরণ যে সিওএম অপ্রয়োজনীয় ফোটা তৈরি করে এবং আমাকে এই ইচ্ছায় ছেড়ে দেয় যে বৈশিষ্ট্যের জন্য একটি সহজ, লাইটওয়েট এপিআই রয়েছে।

ক্রস প্ল্যাটফর্মের জন্য কিছু আছে en এটি বেশিরভাগই লিনাক্সের জন্য তবে ম্যাক এবং উইন্ডোজ পোর্টগুলিও রয়েছে। জেনটির উইন্ডোজ বন্দরটি আকারের 1MB এর বেশি কারণ ভাল, জিটিকে বেশ ফুলে গেছে।


দেশীয় উইন্ডোজ সংস্করণগুলি ইতিমধ্যে উপস্থিত ব্যবহারকারী 32 / কম্যাক্টেল ডিএলএলগুলি বাছাই করার কারণে এটি সমস্ত জিটিকে অভ্যন্তরীণভাবে প্রেরণ করতে হবে না?
user1686

তাই না? দয়া করে প্রশ্নটি পরিষ্কার করুন।
কিউবিকসফট

1

আমার সাথে এটি করার একটি উপায় আছে সিএমডি, তবে এটিতে মূলত কোনও ফাইল অন্তর্ভুক্ত থাকে তবে ভিবিএস কার্যকর হওয়ার পরে ফাইলটি তাত্ক্ষণিকভাবে মোছা হয়। সুতরাং এটি আসলে না। আপনি করতে পারেন :

echo x=msgbox("Hey! Here is a message!",Type+Icon+Action,"Hey! Here is a title!") > %tmp%\tmp.vbs
cscript //nologo %tmp%\tmp.vbs
del %tmp%\tmp.vbs

প্রকারের জন্য + আইকন + ক্রিয়াটি এখানে একটি রেফারেন্সের জন্য কেবলমাত্র প্রাথমিক vbs। https://therevisionist.org/wp-content/uploads/2016/03/vbscript_msgbox_chart-e1458059002411.jpg?x47750 আমি আপনাকে যে কোডটি দেখিয়েছি তাতে একটি ভিবিএস কোড রয়েছে এমন একটি ফাইল তৈরি করে, তারপরে এটি সিসক্রিপ্ট ব্যবহার করে এটি কার্যকর করে, তারপরে এটি ফাইলটি মৃত্যুদন্ড কার্যকর করার পরে মুছে ফেলা হয় যা দেখে মনে হচ্ছে এটি সিএমডি প্রম্পট দ্বারা তলব করা হয়েছে। এটিকে আরও দেখতে দেখতে, কেবল @ ইচ অফ ব্যবহার করুন। আশা করি এটি সাহায্য করেছে!


1

সংযোজন, একটি বহিরাগত (অ-নেটিভ উইন্ডোজ) এক্সিকিউটেবল সহ , রয়েছে

nircmd infobox "msg" "title"

আপনার যদি কোনও ভিবি 6 সংকলক অ্যাক্সেস থাকে তবে এই ওয়ান-লাইনার 5.5 কে এক্সিকিউটেবল উত্পাদন করে:

sub main
  msgbox command
end sub
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.