?
Solved

Getting my executable name

Posted on 2004-08-25
14
Medium Priority
?
365 Views
Last Modified: 2010-05-18
I used to do VB6.GetEXEName() but .NET says I shouldn't use a reference to VB6. Any ideas how to get it? I tried this:

Dim exe As String = System.Reflection.Assembly.GetExecutingAssembly.GetName

But got:

D:\Class1.vb(18): Value of type 'System.Reflection.AssemblyName' cannot be converted to 'String'.
0
Comment
Question by:drakkarnoir
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 3
  • +2
14 Comments
 
LVL 3

Accepted Solution

by:
DJ_Back-Q earned 2000 total points
ID: 11894803
Just you this.

Application.ExecutablePath

If you don't want the path, just use the string.substring to get your executable name.


You can also use Application.ProductName(), but you will first need to enter the product name into the AssemblyInfo.vb

Andre,
MCSD
0
 
LVL 7

Expert Comment

by:natloz
ID: 11894830
Maybe try

SystemReflection.Assembly.GetExecutingAssembly.GetName.toString()
0
 

Author Comment

by:drakkarnoir
ID: 11894892
Argh, I wanted to edit my question to also include:

How do I see if a value exists in array? Is there a bool return function or key return? So that I can do:

If CBOOL(inarray("test",my_array)) Then
MsgBox("Found it!")
End If
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 3

Expert Comment

by:DJ_Back-Q
ID: 11894947
I don't think there is such a thing in dot not for a normal array.

You should consider replacing your array by and ArrayList. The arraylist is much more efficient. It's collection based, and has a binary search with which you could locate you value.
0
 

Author Comment

by:drakkarnoir
ID: 11895123
Example code?
0
 
LVL 3

Expert Comment

by:imu79
ID: 11895506
You should use a hashtable for lookups or searches.

Dim ohash as new Hashtable

with ohash
  .add("item1", "item1")
  .add("item2", "item3")
  .add("item3", "item3")
end with

if ohash.Contains("item1") then
  MessageBox.Show("Found !")
end if

Imran.
0
 
LVL 3

Assisted Solution

by:DJ_Back-Q
DJ_Back-Q earned 2000 total points
ID: 11895720
       Dim myArray As New System.Collections.ArrayList

        myArray.Add("item1")
        myArray.Add("item2")
        myArray.Add("item3")

        myArray.Sort()

        If myArray.BinarySearch("item1") >= 0 Then
            MessageBox.Show("Fount it")
        End If

' BinarySearch returns the index of the occurence... so if it's less then 0, it hasn't find it. Also, because it's a BinarySearch, you must sort the list first. If not it will not work properly.
0
 
LVL 3

Expert Comment

by:imu79
ID: 11896569
just for the record..
hashtables are much faster since it uses..well..hash tables for storing data. since a unique hashcode (for all practical purposes) is generate from the key for each item stored in the hashtable, searching for an element (the key) is very fast especially if the data structure is going to store a lot of elements.

while the worst case search time for a binary search is O(nLog(n)) that of a search operation in hashtable is O(n) where n is the number of elements in the data structure. In fact, for most practical purposes since the hashcode will be unique for each element in the hashtable, the search time is O(1) which is very fast compared to binary search.

Imran.
0
 
LVL 3

Expert Comment

by:imu79
ID: 11896581
Oh and yes - you don't even need to sort the elements in the hashtable to do a fast search unlike the binarysearch in an arraylist or any other data structure.

Imran.
0
 
LVL 3

Expert Comment

by:DJ_Back-Q
ID: 11896622
imy79 that is true until one point. The bigger the hash table gets, the less efficient it is. There is a point after X number of items that the ArrayList will become faster and more efficient.

Andre
0
 
LVL 3

Expert Comment

by:DJ_Back-Q
ID: 11896636
Forgot to mention, actually whats behing the ArrayList is a hash table.
0
 
LVL 3

Expert Comment

by:imu79
ID: 11896905
No - I believe its the opposite.

look at the bottom where speed of binary search is mentioned:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemCollectionsArrayListClassBinarySearchTopic3.asp

look at the remarks section here for speed of search for the Contains( ) method:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionshashtableclasscontainstopic.asp

The larger the number of elements, the higher the value of log(n) gets in which case O(log(n)) means its going to take longer to search for the binary search. On the other hand, the hashtable has an almost constant time for retrieving an element irrespective of the number of elements since it has a running time of O(1).

Imran.
0
 

Expert Comment

by:Spanxxx
ID: 11897936
Barring you are referring to your array as a whole and not just an item in the array, here is the easy .Net way to check.

If array.length > 0 then
 'array is not empty
Else
 'array is empty
End If


and repeating the first comment, with a little more info
dim exeName as string
exeName = Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf("\") + 1)
0
 

Author Comment

by:drakkarnoir
ID: 11906225
Thanks to all :)
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Suggested Courses
Course of the Month11 days, 14 hours left to enroll

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question