কোনও ব্যাচ ফাইল থেকে কোনও বার্তা বাক্স প্রদর্শন করার কোনও উপায় আছে ( xmessage
লিনাক্সে ব্যাশ-স্ক্রিপ্টগুলি কীভাবে ব্যবহার করা যেতে পারে তার সমান )?
কোনও ব্যাচ ফাইল থেকে কোনও বার্তা বাক্স প্রদর্শন করার কোনও উপায় আছে ( xmessage
লিনাক্সে ব্যাশ-স্ক্রিপ্টগুলি কীভাবে ব্যবহার করা যেতে পারে তার সমান )?
উত্তর:
আমি খুব সাধারণ ভিবিএস স্ক্রিপ্ট ফাইল তৈরি করব এবং কমান্ড লাইনের পরামিতিগুলি পার্স করার জন্য এটি CScript ব্যবহার করে কল করব।
নীচে সংরক্ষণ করা কিছু মত MessageBox.vbs
:
Set objArgs = WScript.Arguments
messageText = objArgs(0)
MsgBox messageText
যাকে আপনি পছন্দ করবেন:
cscript MessageBox.vbs "This will be shown in a popup."
MsgBox
আপনি যদি এই রুটে যেতে আগ্রহী হন তবে রেফারেন্স দিন ।
প্রথমত, ডসের এর সাথে কিছু করার নেই, আপনি সম্ভবত একটি উইন্ডোজ কমান্ড লাইন সমাধান চান (আবার: কোনও ডস, খাঁটি উইন্ডোজ, কেবল একটি উইন্ডো নয়, তবে কনসোল)।
হয় আপনি boflynn দ্বারা উপলব্ধ VB স্ক্রিপ্ট পদ্ধতি ব্যবহার করতে পারেন অথবা আপনি ভুল ব্যবহার করতে পারেন net send
বা msg
। net send
উইন্ডোগুলির শুধুমাত্র পুরানো সংস্করণগুলিতে কাজ করে:
net send localhost Some message to display
এটি চালানোর জন্য মেসেঞ্জার পরিষেবাতেও নির্ভর করে।
নতুন সংস্করণগুলির জন্য (এক্সপি এবং সামনের দিকে, স্পষ্টতই):
msg "%username%" Some message to display
এটি লক্ষ করা উচিত যে ব্যবহার করে প্রেরিত একটি বার্তা বাক্স msg.exe
কেবল 60 সেকেন্ডের জন্য স্থায়ী হবে। এটি তবে /time:xx
স্যুইচ দিয়ে ওভাররাইড করা যেতে পারে ।
একটু ফ্ল্যাশ প্রদর্শিত হতে পারে, তবে কোনও টেম্প ফাইলের প্রয়োজন নেই। (আইআইআরসি) আই 5 এর যুগে কোথাও ফিরে যাওয়ার পুরো পথ ব্যবহার করা উচিত।
mshta javascript:alert("Message\n\nMultiple\nLines\ntoo!");close();
আপনি যদি ব্যবহার করছেন তবে আপনার বন্ধনীগুলি পালাতে ভুলবেন না if
:
if 1 == 1 (
mshta javascript:alert^("1 is equal to 1, amazing."^);close^(^);
)
close() was unexpected at this time
।
^
কোনও ব্যাটের ফাইলে সেই পালানো অক্ষরগুলি সরিয়ে ফেলতে হবে
এটি অন্য কমান্ড প্রম্পট উইন্ডোটিকে পপ-আপ করবে:
START CMD /C "ECHO My Popup Message && PAUSE"
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
পরিবর্তন করুন cols=18
। এবং lines=2
লাইনের পরিমাণ যাই হোক না কেন + 1।
cmd /k
চেষ্টা করুন:
Msg * "insert your message here"
আপনি যদি উইন্ডোজ এক্সপির কমান্ড ডট কম ব্যবহার করেন তবে এটি একটি বার্তা বাক্স খুলবে।
একটি নতুন সেন্টিমিডি উইন্ডো খোলার পক্ষে আপনি যা যা চেয়েছিলেন ঠিক তা নয়, আমি সংগ্রহ করি। এছাড়াও আপনি ব্যবহার করতে পারে VB স্ক্রিপ্ট , এবং আপনার .bat ফাইলের সাথে এই ব্যবহার। আপনি এই কমান্ডটি দিয়ে ব্যাট ফাইল থেকে এটি খুলবেন:
cd C:\"location of vbscript"
এটি যা করে তা হ'ল ডিরেক্টরি কমান্ড ডট কম ফাইলগুলি পরবর্তী পংক্তিতে অনুসন্ধান করবে:
"insert name of your vbscript here".vbs
তারপরে আপনি একটি নতুন নোটপ্যাড নথি তৈরি করুন , টাইপ করুন
<script type="text/vbscript">
MsgBox "your text here"
</script>
তারপরে আপনি এটিকে একটি .vbs ফাইল হিসাবে সংরক্ষণ করতে পারেন (ফাইলের শেষে ".vbs" রেখে) ফাইলের নামের নীচে ড্রপ ডাউন বাক্সে "সমস্ত ফাইল" হিসাবে সংরক্ষণ করুন (সুতরাং এটি .txt হিসাবে সংরক্ষণ হয় না) ), তারপরে সংরক্ষণ ক্লিক করুন!
<script/>
ট্যাগ লাগবে না ।
msg *
একটি বার্তা প্রবেশের জন্য অনুরোধ জানানো হবে তারপরে সিটিটিএল -জেড। আপনি এখানে লাইন ব্রেকগুলি প্রবেশ করতে পারেন যা আপনার বার্তায় প্রদর্শিত হবে।
আরও কয়েকটি উপায়।
1) গেইকিয়েস্ট এবং হ্যাকিস্ট - এটি আইএক্সপ্রেসটি ছোট এক্সি তৈরি করতে ব্যবহার করে যা একটি একক বোতামের সাহায্যে একটি পপ-আপ তৈরি করে ( এটি আরও দুটি ধরণের পপ-আপ বার্তা তৈরি করতে পারে )। এক্সপি এবং উপরের প্রতিটি উইন্ডোতে কাজ করে:
;@echo off
;setlocal
;set ppopup_executable=popupe.exe
;set "message2=click OK to continue"
;
;del /q /f %tmp%\yes >nul 2>&1
;
;copy /y "%~f0" "%temp%\popup.sed" >nul 2>&1
;(echo(FinishMessage=%message2%)>>"%temp%\popup.sed";
;(echo(TargetName=%cd%\%ppopup_executable%)>>"%temp%\popup.sed";
;(echo(FriendlyName=%message1_title%)>>"%temp%\popup.sed"
;
;iexpress /n /q /m %temp%\popup.sed
;%ppopup_executable%
;rem del /q /f %ppopup_executable% >nul 2>&1
;pause
;endlocal
;exit /b 0
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
HideExtractAnimation=1
UseLongFileName=0
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[SourceFiles]
SourceFiles0=C:\Windows\System32\
[SourceFiles0]
%FILE0%=
[Strings]
AppLaunched=subst.exe
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="subst.exe"
DisplayLicense=
InstallPrompt=
2) ব্যবহার MSHTA
। এক্সপি এবং উপরের প্রতিটি উইন্ডোজ মেশিনেও কাজ করে (ওপি "বাহ্যিক" ভাষা চায় না তবে জাভাস্ক্রিপ্টটি এখানে ছোট করা হয়)। হিসাবে সংরক্ষণ করা উচিত .bat
:
@if (true == false) @end /*!
@echo off
mshta "about:<script src='file://%~f0'></script><script>close()</script>" %*
goto :EOF */
alert("Hello, world!");
বা এক লাইনে:
mshta "about:<script>alert('Hello, world!');close()</script>"
অথবা
mshta "javascript:alert('message');close()"
অথবা
mshta.exe vbscript:Execute("msgbox ""message"",0,""title"":close")
3) এখানে প্যারামিটারাইজড .bat/jscript
হাইব্রিড (হিসাবে সংরক্ষণ করা উচিত bat
)। ওপি অনুরোধ সত্ত্বেও এটি আবার জাভাস্ক্রিপ্ট ব্যবহার করে তবে এটি ব্যাট হওয়ায় এটিকে কোনও উদ্বেগ ছাড়াই ব্যাট ফাইল বলা যেতে পারে। এটি পপআপ ব্যবহার করে যা আরও জনপ্রিয় এমএসজিবিএক্সের চেয়ে কিছুটা বেশি নিয়ন্ত্রণের অনুমতি দেয় । এটি ডাব্লুএসএইচ ব্যবহার করে তবে উপরের উদাহরণের মতো এমএসএইচটিএ নয়।
@if (@x)==(@y) @end /***** jscript comment ******
@echo off
cscript //E:JScript //nologo "%~f0" "%~nx0" %*
exit /b 0
@if (@x)==(@y) @end ****** end comment *********/
var wshShell = WScript.CreateObject("WScript.Shell");
var args=WScript.Arguments;
var title=args.Item(0);
var timeout=-1;
var pressed_message="button pressed";
var timeout_message="timed out";
var message="";
function printHelp() {
WScript.Echo(title + "[-title Title] [-timeout m] [-tom \"Time-out message\"] [-pbm \"Pressed button message\"] [-message \"pop-up message\"]");
}
if (WScript.Arguments.Length==1){
runPopup();
WScript.Quit(0);
}
if (args.Item(1).toLowerCase() == "-help" || args.Item(1).toLowerCase() == "-h" ) {
printHelp();
WScript.Quit(0);
}
if (WScript.Arguments.Length % 2 == 0 ) {
WScript.Echo("Illegal arguments ");
printHelp();
WScript.Quit(1);
}
for (var arg = 1 ; arg<args.Length;arg=arg+2) {
if (args.Item(arg).toLowerCase() == "-title") {
title = args.Item(arg+1);
}
if (args.Item(arg).toLowerCase() == "-timeout") {
timeout = parseInt(args.Item(arg+1));
if (isNaN(timeout)) {
timeout=-1;
}
}
if (args.Item(arg).toLowerCase() == "-tom") {
timeout_message = args.Item(arg+1);
}
if (args.Item(arg).toLowerCase() == "-pbm") {
pressed_message = args.Item(arg+1);
}
if (args.Item(arg).toLowerCase() == "-message") {
message = args.Item(arg+1);
}
}
function runPopup(){
var btn = wshShell.Popup(message, timeout, title, 0x0 + 0x10);
switch(btn) {
// button pressed.
case 1:
WScript.Echo(pressed_message);
break;
// Timed out.
case -1:
WScript.Echo(timeout_message);
break;
}
}
runPopup();
4) এবং একটি jscript.net/.bat
হাইব্রিড (হিসাবে সংরক্ষণ করা উচিত .bat
) hisএখন এটি মুছে ফেলা যায় এমন .NET
একটি ছোট .exe
ফাইল ব্যবহার করে এবং সংকলন করে :
@if (@X)==(@Y) @end /****** silent jscript comment ******
@echo off
::::::::::::::::::::::::::::::::::::
::: compile the script ::::
::::::::::::::::::::::::::::::::::::
setlocal
::if exist "%~n0.exe" goto :skip_compilation
:: searching the latest installed .net framework
for /f "tokens=* delims=" %%v in ('dir /b /s /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
if exist "%%v\jsc.exe" (
rem :: the javascript.net compiler
set "jsc=%%~dpsnfxv\jsc.exe"
goto :break_loop
)
)
echo jsc.exe not found && exit /b 0
:break_loop
call %jsc% /nologo /out:"%~n0.exe" "%~f0"
::::::::::::::::::::::::::::::::::::
::: end of compilation ::::
::::::::::::::::::::::::::::::::::::
:skip_compilation
::
::::::::::
"%~n0.exe" %*
::::::::
::
endlocal
exit /b 0
****** end of jscript comment ******/
import System;
import System.Windows;
import System.Windows.Forms
var arguments:String[] = Environment.GetCommandLineArgs();
MessageBox.Show(arguments[1],arguments[0]);
5) এবং শেষে পাওয়ারশেলের একটি একক কল যা একটি পপ-আপ তৈরি করে (কমান্ড লাইন থেকে বা পাওয়ারচেল ইনস্টল করা থাকলে ব্যাচ থেকে কল করা যেতে পারে):
powershell [Reflection.Assembly]::LoadWithPartialName("""System.Windows.Forms""");[Windows.Forms.MessageBox]::show("""Hello World""", """My PopUp Message Box""")
6) এবং dbenham এর পদ্ধতির এখানে দেখা
start "" cmd /c "echo(&echo(&echo Hello world! &echo(&pause>nul"
7 ) একটি সিস্টেম ট্রে বিজ্ঞপ্তির জন্য আপনি চেষ্টা করতে পারেন এই :
call SystemTrayNotification.bat -tooltip warning -time 3000 -title "Woow" -text "Boom" -icon question
এইভাবে আপনার ব্যাচ ফাইলটি একটি ভিবিএস স্ক্রিপ্ট তৈরি করবে এবং একটি পপআপ প্রদর্শন করবে। এটি চলার পরে, ব্যাচ ফাইলটি মধ্যবর্তী ফাইলটি মুছবে।
এমএসজিবিএক্স ব্যবহারের সুবিধাটি হ'ল এটি সত্যই প্রচলিত (শিরোনাম, আইকন পরিবর্তন করুন) যখন এমএসজি.এক্সি তেমন কিছু নয়।
echo MSGBOX "YOUR MESSAGE" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
এখানে একটি পাওয়ারশেল বৈকল্পিক যা উইন্ডোটি তৈরি করার আগে লোডিং অ্যাসেমব্লিগুলির প্রয়োজন হয় না, তবে এটি @Npocmaka দ্বারা পোস্ট করা পাওয়ারশেল মেসেজবক্স কমান্ডের চেয়ে লক্ষণীয়ভাবে ধীর (50 + 50%) চালায়:
powershell (New-Object -ComObject Wscript.Shell).Popup("""Operation Completed""",0,"""Done""",0x0)
ডায়লগটিতে আইকনগুলি প্রদর্শন করতে আপনি "0x0" থেকে নীচের মানটিতে শেষ প্যারামিটারটি পরিবর্তন করতে পারেন ( আরও রেফারেন্সের জন্য পপআপ পদ্ধতিটি দেখুন ):
0x10 থামুন
0x20 প্রশ্ন চিহ্ন
0x30 বিস্মৃত চিহ্ন
0x40 তথ্য চিহ্ন Mark
মাইক্রোসফ্ট টেকনেট আর্টিকেল থেকে গৃহীত পাওয়ার পাওয়ার টিপ: পপ-আপ উইন্ডো প্রদর্শনের জন্য পাওয়ারশেল ব্যবহার করুন ।
echo X=MsgBox("Message Description",0+16,"Title") >msg.vbs
আপনি 0 এর পরিবর্তে 0,1,2,3,4 থেকে যে কোনও সংখ্যা লিখতে পারেন ('+' চিহ্নের আগে) এবং এখানে প্রতিটি সংখ্যার অর্থ:
0 = Ok Button
1 = Ok/Cancel Button
2 = Abort/Retry/Ignore button
3 = Yes/No/Cancel
4 = Yes/No
আপনি 16 এর পরিবর্তে 16,32,48,64 থেকে যে কোনও সংখ্যা লিখতে পারবেন ('+' চিহ্নের পরে) এবং প্রতিটি সংখ্যার অর্থ এখানে:
16 – Critical Icon
32 – Warning Icon
48 – Warning Message Icon
64 – Information Icon
Msg * "আপনার বার্তাটি এখানে sertোকান"
ঠিকঠাক কাজ করে, কেবল নোটপ্যাডে .bat ফাইল হিসাবে সংরক্ষণ করুন বা ফর্ম্যাটটি "সমস্ত ফাইল" এ সেট করা আছে তা নিশ্চিত করুন
msg %SESSIONNAME% msg
msg * /time:0 /w Hello everybody!
ঠিক আছে ক্লিক না হওয়া পর্যন্ত এই বার্তাটি চিরকাল অপেক্ষা করে (এটি ডিফল্টভাবে মাত্র এক মিনিট স্থায়ী হয়) এবং উইন্ডোজ 8.1-এ দুর্দান্ত কাজ করে works
msg * /time:0 /w <C:\Somewhere\Message.txt
যেখানে ফাইলটিতে সাধারণ পাঠ্য রয়েছে (সিআরএলএফ সহ)।
এটি করার জন্য, আপনার একটি ছোট প্রোগ্রাম থাকা দরকার যা একটি বার্তা বাক্স প্রদর্শন করে এবং এটি আপনার ব্যাচ ফাইল থেকে চালায়।
আপনি একটি কনসোল উইন্ডোটি খুলতে পারেন যা প্রম্পট প্রদর্শিত হলেও এটি কেবলমাত্র cmd.exe এবং বন্ধুবান্ধব ব্যবহার করে একটি জিইউআই বার্তা বাক্স পাওয়া সম্ভব নয়, এএফাইক।
আমি এখানে থেকে URLbox.exe নামের একটি ইউটিলিটি ব্যবহার করছি: http://www.paulsadowski.com/WSH/cmdprogs.htm
@ ফাউলের উত্তর অনুসরণ করে, আপনি নিম্নলিখিতটি ব্যবহার করে কেবল 10 সেকেন্ডের জন্য উপস্থিত হতে সময়সীমা নিয়ে এটি উন্নত করতে পারেন:
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"
এখানে দেখুন আরো বিস্তারিত জানার জন্য।
আপনি ব্যবহারকারীর থেকে dll ফাংশন শুরু করতে পারেন d
Rundll32.exe user32.dll, মেসেজবক্স (0, "পাঠ্য", "শিরোনাম পাঠ্য, top শীর্ষস্থানীয় মেসেজবক্স ইত্যাদির জন্য অতিরিক্ত পতাকা})
আমার ফোন থেকে এটি টাইপ করা, আমাকে বিচার করবেন না ... অন্যথায় আমি অতিরিক্ত পতাকাগুলি লিঙ্ক করব।
rundll32.exe user32.dll,MessageBoxA X
রান বাক্সে এটি করার সময় শিরোনাম হিসাবে এক্স সহ একটি বার্তাবক্স প্রদর্শন করতে পারি। আমি এক্সকে যা করি তা বিবেচনা করেই আমি এটিকে একাধিক পরামিতি হিসাবে ব্যাখ্যা করতে পারি না - সবকিছু শিরোনামে যায়। সুতরাং rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)
একটি শিরোনাম সহ একটি বার্তাবক্স প্রদর্শন করে (0, "MyTitle", "MyText", 0)
তবে আমি এটি কমান্ড লাইন থেকে সমস্ত কাজ করতে পারি না - কেবল রান বাক্স থেকে। কমান্ড লাইনে এটি কিছুই করে না। এটি কোনও কমান্ড লাইন থেকে বা কোনও ব্যাচ ফাইল থেকে বা কেবল রান বাক্স থেকে নিশ্চিতভাবে কাজ করে?
** * / সার্ভারে १२.২.০.০.১ আপনার বার্তাটি এখানে টাইপ করুন
where msg
ফিরে আসে C:\Windows\System32\msg.exe
। আমার মনে হয় আপনি ভাবছেনnet send
এই অ্যাপ্লিকেশনটি এটি করতে পারে, যদি আপনি আপনার ব্যাচ ফাইলগুলিকে এক্সিকিউটেবল ফাইলগুলিতে রূপান্তর করেন।
সরল মেসেজবক্স
%extd% /messagebox Title Text
ত্রুটি বার্তাবক্স
%extd% /messagebox Error "Error message" 16
আবার চেষ্টা করুন মেসেজবক্স
%extd% /messagebox Title "Try again or Cancel" 5
৪) "আমাকে আর কখনও জিজ্ঞাসা করবেন না" মেসেজবাক্স
%extd% /messageboxcheck Title Message 0 {73E8105A-7AD2-4335-B694-94F837A38E79}
একটি ভাল বিকল্প
set my_message=Hello world
&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"
বর্ণনা:
বার্তাগুলিতে lines=
লাইনগুলির পরিমাণ, যোগফলের cols=
পরিমাণ 1
, এবং আরও 3 (তবে সর্বনিম্ন হতে হবে15
)
cols
সংস্করণ:set my_message=Hello world
&& (echo %my_message%>EMPTY_FILE123 && FOR %? IN (EMPTY_FILE123 ) DO SET strlength=%~z? && del EMPTY_FILE123 ) && start cmd /c "@echo off && mode con lines=2 cols=%strlength% && echo %my_message% && pause>nul"
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
) কাজ করে । আপনার না। এটি বার্তাটি The screen cannot be set to the number of lines and columns specified.
x
বর্তমান ডিরেক্টরিতে কোনও ফাইল নেই বা আপনি এটি হারাতে আপত্তি করবেন না।
x
আপনার কমান্ডটি কেবল ব্যর্থ হবে। আমাকে ধন্যবাদ দেবেন না এবং দয়া করে আপনার কোডটি ঠিক করুন। এমনকি আপনার ওয়ান-লাইনার ব্যবহার করার দরকার নেই। এবং যদি আপনি মনে করেন যে আপনার কোডটি খুব ভাল, দয়া করে কোড পর্যালোচনাতে এটি পোস্ট করুন ।
এখানে আমার ব্যাচের স্ক্রিপ্টটি আমি ভাল উত্তরগুলির উপর ভিত্তি করে এখানে এবং অন্যান্য পোস্টে একসাথে রেখেছি
আপনি শিরোনাম সময়সীমা নির্ধারণ করতে পারেন এবং এমনকি এটির জন্য নতুন লাইনের জন্য সময় নির্ধারণ করতে ঘুমাতে পারেন
এটি পপআপ নাম দিন এবং আপনার পিসিতে বিশ্বব্যাপী কাজ করতে আপনার উইন্ডোজ পাথ ফোল্ডারে রাখুন
উদাহরণস্বরূপ popup Line 1\nLine 2
একটি 2 লাইন পপআপ বক্স উত্পাদন করতে হবে (টাইপ)popup /?
ব্যবহারের জন্য )
কোডটি এখানে
<!-- : Begin CMD
@echo off
cscript //nologo "%~f0?.wsf" %*
set pop.key=[%errorlevel%]
if %pop.key% == [-1] set pop.key=TimedOut
if %pop.key% == [1] set pop.key=Ok
if %pop.key% == [2] set pop.key=Cancel
if %pop.key% == [3] set pop.key=Abort
if %pop.key% == [4] set pop.key=Retry
if %pop.key% == [5] set pop.key=Ignore
if %pop.key% == [6] set pop.key=Yes
if %pop.key% == [7] set pop.key=No
if %pop.key% == [10] set pop.key=TryAgain
if %pop.key% == [11] set pop.key=Continue
if %pop.key% == [99] set pop.key=NoWait
exit /b
-- End CMD -->
<job><script language="VBScript">
'on error resume next
q =""""
qsq =""" """
Set objArgs = WScript.Arguments
Set objShell= WScript.CreateObject("WScript.Shell")
Popup = 0
Title = "Popup"
Timeout = 0
Mode = 0
Message = ""
Sleep = 0
button = 0
If objArgs.Count = 0 Then
Usage()
ElseIf objArgs(0) = "/?" or Lcase(objArgs(0)) = "-h" or Lcase(objArgs(0)) = "--help" Then
Usage()
End If
noWait = Not wait()
For Each arg in objArgs
If (Mid(arg,1,1) = "/") and (InStr(arg,":") <> 0) Then haveSwitch = True
Next
If not haveSwitch Then
Message=joinParam("woq")
Else
For i = 0 To objArgs.Count-1
If IsSwitch(objArgs(i)) Then
S=split(objArgs(i) , ":" , 2)
select case Lcase(S(0))
case "/m","/message"
Message=S(1)
case "/tt","/title"
Title=S(1)
case "/s","/sleep"
If IsNumeric(S(1)) Then Sleep=S(1)*1000
case "/t","/time"
If IsNumeric(S(1)) Then Timeout=S(1)
case "/b","/button"
select case S(1)
case "oc", "1"
button=1
case "ari","2"
button=2
case "ync","3"
button=3
case "yn", "4"
button=4
case "rc", "5"
button=5
case "ctc","6"
button=6
case Else
button=0
end select
case "/i","/icon"
select case S(1)
case "s","x","stop","16"
Mode=16
case "?","q","question","32"
Mode=32
case "!","w","warning","exclamation","48"
Mode=48
case "i","information","info","64"
Mode=64
case Else
Mode=0
end select
end select
End If
Next
End If
Message = Replace(Message,"/\n", "°" )
Message = Replace(Message,"\n",vbCrLf)
Message = Replace(Message, "°" , "\n")
If noWait Then button=0
Wscript.Sleep(sleep)
Popup = objShell.Popup(Message, Timeout, Title, button + Mode + vbSystemModal)
Wscript.Quit Popup
Function IsSwitch(Val)
IsSwitch = False
If Mid(Val,1,1) = "/" Then
For ii = 3 To 9
If Mid(Val,ii,1) = ":" Then IsSwitch = True
Next
End If
End Function
Function joinParam(quotes)
ReDim ArgArr(objArgs.Count-1)
For i = 0 To objArgs.Count-1
If quotes = "wq" Then
ArgArr(i) = q & objArgs(i) & q
Else
ArgArr(i) = objArgs(i)
End If
Next
joinParam = Join(ArgArr)
End Function
Function wait()
wait=True
If objArgs.Named.Exists("NewProcess") Then
wait=False
Exit Function
ElseIf objArgs.Named.Exists("NW") or objArgs.Named.Exists("NoWait") Then
objShell.Exec q & WScript.FullName & qsq & WScript.ScriptFullName & q & " /NewProcess: " & joinParam("wq")
WScript.Quit 99
End If
End Function
Function Usage()
Wscript.Echo _
vbCrLf&"Usage:" _
&vbCrLf&" popup followed by your message. Example: ""popup First line\nescaped /\n\nSecond line"" " _
&vbCrLf&" To triger a new line use ""\n"" within the msg string [to escape enter ""/"" before ""\n""]" _
&vbCrLf&"" _
&vbCrLf&"Advanced user" _
&vbCrLf&" If any Switch is used then you must use the /m: switch for the message " _
&vbCrLf&" No space allowed between the switch & the value " _
&vbCrLf&" The switches are NOT case sensitive " _
&vbCrLf&"" _
&vbCrLf&" popup [/m:""*""] [/t:*] [/tt:*] [/s:*] [/nw] [/i:*]" _
&vbCrLf&"" _
&vbCrLf&" Switch | value |Description" _
&vbCrLf&" -----------------------------------------------------------------------" _
&vbCrLf&" /m: /message:| ""1 2"" |if the message have spaces you need to quote it " _
&vbCrLf&" | |" _
&vbCrLf&" /t: /time: | nn |Duration of the popup for n seconds " _
&vbCrLf&" | |<Default> untill key pressed" _
&vbCrLf&" | |" _
&vbCrLf&" /tt: /title: | ""A B"" |if the title have spaces you need to quote it " _
&vbCrLf&" | | <Default> Popup" _
&vbCrLf&" | |" _
&vbCrLf&" /s: /sleep: | nn |schedule the popup after n seconds " _
&vbCrLf&" | |" _
&vbCrLf&" /nw /NoWait | |Continue script without the user pressing ok - " _
&vbCrLf&" | | botton option will be defaulted to OK button " _
&vbCrLf&" | |" _
&vbCrLf&" /i: /icon: | ?/q |[question mark]" _
&vbCrLf&" | !/w |[exclamation (warning) mark]" _
&vbCrLf&" | i/info|[information mark]" _
&vbCrLf&" | x/stop|[stop\error mark]" _
&vbCrLf&" | n/none|<Default>" _
&vbCrLf&" | |" _
&vbCrLf&" /b: /button: | o |[OK button] <Default>" _
&vbCrLf&" | oc |[OK and Cancel buttons]" _
&vbCrLf&" | ari |[Abort, Retry, and Ignore buttons]" _
&vbCrLf&" | ync |[Yes, No, and Cancel buttons]" _
&vbCrLf&" | yn |[Yes and No buttons]" _
&vbCrLf&" | rc |[Retry and Cancel buttons]" _
&vbCrLf&" | ctc |[Cancel and Try Again and Continue buttons]" _
&vbCrLf&" ---> | ---> |The output will be saved in variable ""pop.key""" _
&vbCrLf&"" _
&vbCrLf&"Example:" _
&vbCrLf&" popup /tt:""My MessageBox"" /t:5 /m:""Line 1\nLine 2\n/\n\nLine 4""" _
&vbCrLf&"" _
&vbCrLf&" v1.9 By RDR @ 2020"
Wscript.Quit
End Function
</script></job>
কোনও ভিএম এর অভ্যন্তরে পপআপ করার জন্য এটি কেবলমাত্র প্রয়োজন, তাই প্রযুক্তিগতভাবে, এখানে কিছু কোড থাকা উচিত:
if %machine_type% == virtual_machine then
echo message box code
else
continue normal installation code