Kill some processes by .exe file name











up vote
94
down vote

favorite
15












How can I kill some active processes by searching for their .exe filenames in C# .NET or C++?










share|improve this question




















  • 1




    If you need kill process by partial name see stackoverflow.com/questions/14632162/….
    – Alexei Levenkov
    Sep 18 '14 at 15:22















up vote
94
down vote

favorite
15












How can I kill some active processes by searching for their .exe filenames in C# .NET or C++?










share|improve this question




















  • 1




    If you need kill process by partial name see stackoverflow.com/questions/14632162/….
    – Alexei Levenkov
    Sep 18 '14 at 15:22













up vote
94
down vote

favorite
15









up vote
94
down vote

favorite
15






15





How can I kill some active processes by searching for their .exe filenames in C# .NET or C++?










share|improve this question















How can I kill some active processes by searching for their .exe filenames in C# .NET or C++?







c# c++ process exe kill-process






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 13 at 5:39









Banee Ishaque K

328316




328316










asked Jul 27 '10 at 15:42









Aliasghar Yaghoobzadeh

471147




471147








  • 1




    If you need kill process by partial name see stackoverflow.com/questions/14632162/….
    – Alexei Levenkov
    Sep 18 '14 at 15:22














  • 1




    If you need kill process by partial name see stackoverflow.com/questions/14632162/….
    – Alexei Levenkov
    Sep 18 '14 at 15:22








1




1




If you need kill process by partial name see stackoverflow.com/questions/14632162/….
– Alexei Levenkov
Sep 18 '14 at 15:22




If you need kill process by partial name see stackoverflow.com/questions/14632162/….
– Alexei Levenkov
Sep 18 '14 at 15:22












4 Answers
4






active

oldest

votes

















up vote
180
down vote



accepted










Quick Answer:



foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}


(leave off .exe from process name)






share|improve this answer



















  • 3




    Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:00






  • 2




    what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29






  • 35




    Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
    – slater
    Jun 3 '14 at 16:50






  • 1




    @AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
    – jchitel
    Feb 21 '17 at 2:51






  • 1




    I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
    – Leandro Tupone
    Jul 18 '17 at 18:33


















up vote
25
down vote













My solution is:



var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");

foreach (var process in chromeDriverProcesses)
{
process.Kill();
}





share|improve this answer





















  • you could use Contains instead of equal
    – Leandro Tupone
    Jul 18 '17 at 18:33






  • 6




    Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
    – kerl
    Aug 9 '17 at 20:08


















up vote
13
down vote













You can use Process.GetProcesses() to get the currently running processes, then Process.Kill() to kill a process.






share|improve this answer

















  • 6




    Process.GetProcessesByName would simplify this.
    – ConsultUtah
    Jul 27 '10 at 15:50










  • Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:03










  • what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29


















up vote
-3
down vote













public void EndTask(string taskname)
{
string processName = taskname;
string fixstring = taskname.Replace(".exe", "");

if (taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(fixstring))
{
process.Kill();
}
}
else if (!taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
}

//EndTask("notepad");


Summary: No matter if the name contains .exe, the process will end. You don't need to "leave off .exe from process name", It works 100%.






share|improve this answer



















  • 1




    a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
    – AndrewK
    Jan 12 at 22:11










  • The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
    – user7993881
    Mar 9 at 2:40













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3345363%2fkill-some-processes-by-exe-file-name%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























4 Answers
4






active

oldest

votes








4 Answers
4






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
180
down vote



accepted










Quick Answer:



foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}


(leave off .exe from process name)






share|improve this answer



















  • 3




    Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:00






  • 2




    what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29






  • 35




    Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
    – slater
    Jun 3 '14 at 16:50






  • 1




    @AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
    – jchitel
    Feb 21 '17 at 2:51






  • 1




    I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
    – Leandro Tupone
    Jul 18 '17 at 18:33















up vote
180
down vote



accepted










Quick Answer:



foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}


(leave off .exe from process name)






share|improve this answer



















  • 3




    Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:00






  • 2




    what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29






  • 35




    Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
    – slater
    Jun 3 '14 at 16:50






  • 1




    @AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
    – jchitel
    Feb 21 '17 at 2:51






  • 1




    I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
    – Leandro Tupone
    Jul 18 '17 at 18:33













up vote
180
down vote



accepted







up vote
180
down vote



accepted






Quick Answer:



foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}


(leave off .exe from process name)






share|improve this answer














Quick Answer:



foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}


(leave off .exe from process name)







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 12 at 20:02









Valamas

13.9k2286157




13.9k2286157










answered Jul 27 '10 at 15:48









ConsultUtah

4,20032348




4,20032348








  • 3




    Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:00






  • 2




    what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29






  • 35




    Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
    – slater
    Jun 3 '14 at 16:50






  • 1




    @AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
    – jchitel
    Feb 21 '17 at 2:51






  • 1




    I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
    – Leandro Tupone
    Jul 18 '17 at 18:33














  • 3




    Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:00






  • 2




    what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29






  • 35




    Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
    – slater
    Jun 3 '14 at 16:50






  • 1




    @AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
    – jchitel
    Feb 21 '17 at 2:51






  • 1




    I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
    – Leandro Tupone
    Jul 18 '17 at 18:33








3




3




Thanx so much..
– Aliasghar Yaghoobzadeh
Jul 27 '10 at 16:00




Thanx so much..
– Aliasghar Yaghoobzadeh
Jul 27 '10 at 16:00




2




2




what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
– Manish
Aug 31 '13 at 11:29




what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
– Manish
Aug 31 '13 at 11:29




35




35




Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
– slater
Jun 3 '14 at 16:50




Leave off ".exe". From MSDN: "The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path"
– slater
Jun 3 '14 at 16:50




1




1




@AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
– jchitel
Feb 21 '17 at 2:51




@AgainMe Process.Kill() sends a kill signal to a process, which will halt its execution wherever it happens to be. This is different from an interrupt signal in that the process will not have a chance to respond and/or clean up from the signal. No more execution will happen in that process, and any locks on resources used by that process will be released. Environment.Exit() is performed by the currently executing process to kill itself with a success code, which is perfectly safe. Process.Kill() is not nearly as safe as Environment.Exit().
– jchitel
Feb 21 '17 at 2:51




1




1




I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
– Leandro Tupone
Jul 18 '17 at 18:33




I suggest the use of LINQ: var procs = Process.GetProcesses().Where(pr => pr.ProcessName.Contains("Spotify"));
– Leandro Tupone
Jul 18 '17 at 18:33












up vote
25
down vote













My solution is:



var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");

foreach (var process in chromeDriverProcesses)
{
process.Kill();
}





share|improve this answer





















  • you could use Contains instead of equal
    – Leandro Tupone
    Jul 18 '17 at 18:33






  • 6




    Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
    – kerl
    Aug 9 '17 at 20:08















up vote
25
down vote













My solution is:



var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");

foreach (var process in chromeDriverProcesses)
{
process.Kill();
}





share|improve this answer





















  • you could use Contains instead of equal
    – Leandro Tupone
    Jul 18 '17 at 18:33






  • 6




    Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
    – kerl
    Aug 9 '17 at 20:08













up vote
25
down vote










up vote
25
down vote









My solution is:



var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");

foreach (var process in chromeDriverProcesses)
{
process.Kill();
}





share|improve this answer












My solution is:



var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");

foreach (var process in chromeDriverProcesses)
{
process.Kill();
}






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 27 '13 at 12:47









Arsen Khachaturyan

3,14411621




3,14411621












  • you could use Contains instead of equal
    – Leandro Tupone
    Jul 18 '17 at 18:33






  • 6




    Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
    – kerl
    Aug 9 '17 at 20:08


















  • you could use Contains instead of equal
    – Leandro Tupone
    Jul 18 '17 at 18:33






  • 6




    Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
    – kerl
    Aug 9 '17 at 20:08
















you could use Contains instead of equal
– Leandro Tupone
Jul 18 '17 at 18:33




you could use Contains instead of equal
– Leandro Tupone
Jul 18 '17 at 18:33




6




6




Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
– kerl
Aug 9 '17 at 20:08




Funny coincidence is, I was looking in this thread for a solution to killing the chromedriver. Must be a common issue.
– kerl
Aug 9 '17 at 20:08










up vote
13
down vote













You can use Process.GetProcesses() to get the currently running processes, then Process.Kill() to kill a process.






share|improve this answer

















  • 6




    Process.GetProcessesByName would simplify this.
    – ConsultUtah
    Jul 27 '10 at 15:50










  • Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:03










  • what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29















up vote
13
down vote













You can use Process.GetProcesses() to get the currently running processes, then Process.Kill() to kill a process.






share|improve this answer

















  • 6




    Process.GetProcessesByName would simplify this.
    – ConsultUtah
    Jul 27 '10 at 15:50










  • Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:03










  • what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29













up vote
13
down vote










up vote
13
down vote









You can use Process.GetProcesses() to get the currently running processes, then Process.Kill() to kill a process.






share|improve this answer












You can use Process.GetProcesses() to get the currently running processes, then Process.Kill() to kill a process.







share|improve this answer












share|improve this answer



share|improve this answer










answered Jul 27 '10 at 15:45









driis

120k40232315




120k40232315








  • 6




    Process.GetProcessesByName would simplify this.
    – ConsultUtah
    Jul 27 '10 at 15:50










  • Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:03










  • what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29














  • 6




    Process.GetProcessesByName would simplify this.
    – ConsultUtah
    Jul 27 '10 at 15:50










  • Thanx so much..
    – Aliasghar Yaghoobzadeh
    Jul 27 '10 at 16:03










  • what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
    – Manish
    Aug 31 '13 at 11:29








6




6




Process.GetProcessesByName would simplify this.
– ConsultUtah
Jul 27 '10 at 15:50




Process.GetProcessesByName would simplify this.
– ConsultUtah
Jul 27 '10 at 15:50












Thanx so much..
– Aliasghar Yaghoobzadeh
Jul 27 '10 at 16:03




Thanx so much..
– Aliasghar Yaghoobzadeh
Jul 27 '10 at 16:03












what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
– Manish
Aug 31 '13 at 11:29




what should be do if above code return Exception (a 32 bit processes cannot access modules of a 64 bit process) ?
– Manish
Aug 31 '13 at 11:29










up vote
-3
down vote













public void EndTask(string taskname)
{
string processName = taskname;
string fixstring = taskname.Replace(".exe", "");

if (taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(fixstring))
{
process.Kill();
}
}
else if (!taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
}

//EndTask("notepad");


Summary: No matter if the name contains .exe, the process will end. You don't need to "leave off .exe from process name", It works 100%.






share|improve this answer



















  • 1




    a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
    – AndrewK
    Jan 12 at 22:11










  • The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
    – user7993881
    Mar 9 at 2:40

















up vote
-3
down vote













public void EndTask(string taskname)
{
string processName = taskname;
string fixstring = taskname.Replace(".exe", "");

if (taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(fixstring))
{
process.Kill();
}
}
else if (!taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
}

//EndTask("notepad");


Summary: No matter if the name contains .exe, the process will end. You don't need to "leave off .exe from process name", It works 100%.






share|improve this answer



















  • 1




    a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
    – AndrewK
    Jan 12 at 22:11










  • The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
    – user7993881
    Mar 9 at 2:40















up vote
-3
down vote










up vote
-3
down vote









public void EndTask(string taskname)
{
string processName = taskname;
string fixstring = taskname.Replace(".exe", "");

if (taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(fixstring))
{
process.Kill();
}
}
else if (!taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
}

//EndTask("notepad");


Summary: No matter if the name contains .exe, the process will end. You don't need to "leave off .exe from process name", It works 100%.






share|improve this answer














public void EndTask(string taskname)
{
string processName = taskname;
string fixstring = taskname.Replace(".exe", "");

if (taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(fixstring))
{
process.Kill();
}
}
else if (!taskname.Contains(".exe"))
{
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
}

//EndTask("notepad");


Summary: No matter if the name contains .exe, the process will end. You don't need to "leave off .exe from process name", It works 100%.







share|improve this answer














share|improve this answer



share|improve this answer








edited Jun 9 '17 at 21:19

























answered Jun 9 '17 at 20:59









user7993881

111




111








  • 1




    a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
    – AndrewK
    Jan 12 at 22:11










  • The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
    – user7993881
    Mar 9 at 2:40
















  • 1




    a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
    – AndrewK
    Jan 12 at 22:11










  • The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
    – user7993881
    Mar 9 at 2:40










1




1




a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
– AndrewK
Jan 12 at 22:11




a simple .Replace(".exe", "") on the top voted answer would do this with a lot less convoluted and unnecessary code
– AndrewK
Jan 12 at 22:11












The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
– user7993881
Mar 9 at 2:40






The whole idea of it is to see the method with or without .exe so people can see multiple ways of handling it... It's not meant for copy and paste....
– user7993881
Mar 9 at 2:40




















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3345363%2fkill-some-processes-by-exe-file-name%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini