|
Now you have mo choice but to go through the adapters driver. WIthout the docs on the drivers exposed API, you'll find this impossible. You might want to check this[^] out for docs and stuff.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Is there any way to acces printpreview image and convert it to jpeg
file in MS Word?
Shin
|
|
|
|
|
It's going to be a big PITA to do. There is no one call you can make you get an image from the screen. This will require in-depth knowledge of Windows and the Win32 API.
You'll have to write code to find the instance of Word you want, find the window for the print preview image (not the print preview dialog!), get a handle to that window, convert that handle to a Graphics object (assuming VB.NET here, VB6 - forget it), use the Graphics object to save the image in JPEG format, then release your objects and handles.
Do I have any example code? NO! You can Google for pieces of this process, but you more than likely won't find an app written for you.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Is there no way to make list Views bahave to like list boxes in allowing an object to be inserted, and then having the overrided toString() method output the text that is to be displayed in the list. I can't get it to work, and I can't find anything written on it, so I just want to check.
Thanks for the help.
|
|
|
|
|
instead I just inserted all the required data into the list view and set the widths to zero. I am not sure if this is the best way or not, but it works.
|
|
|
|
|
I want to take tabular data from a source that has no .NET provider.
So I want to create a custom datasource for my datagrid,
which will read the data from the source and feed it to the grid.
I have not seen any examples on how to do this.
I won’t know the data elements (column names) in advance, so I **can’t hard code anything**.
The columns, properties, attributes or whatever that the grid is binding to will have to be built at runtime.
If you take the custom data set examples available on the web, you would have to create a new custom datasource object for each "query", because the examples bind the datagrid to properties on a specific object!
Now, the DataAdapter object will fill a DataSet, and I made a custom DataAdapter for my source to do just that.
But it's too slow, doing twice as much work. The data is read into the DataSet, and then into the DataGrid.
I need it to go straight into the grid from the source. It's a speed requirment.
So, to distill this into it's simplist terms, I need something like this (not necessarily this) (forgive syntax errors):
Dim MyDataSource as New MyDataSource()
MyDataSource.Add("Name",New String(){"Jim","Bill","Joe"})
MyDataSource.Add("ID",New String(){"221","321","442"})
MyDataSource.Add("Rank",New String(){"1","3","2"})
grdDataGrid.DataSource = MyDataSource
The result is a grid populated with three columns - Name, ID and Rank, having 3 rows, one for each person.
Actually, the DataGrid will interrogate the datasource for each new row of data, but the columns don't come from properties or attributes, they need to come from items in a collection.
If I can learn how to do that, I can do anything with data binding.
If the solution is Reflection.Emit, I'm fine with that; I was hoping for a more direct way.
Thanks,
Todd
|
|
|
|
|
I have 3 forms in my project, each form has 3 button to call each form.
the main form is form1, when button2 click, I used form2.show, and form1.hide, form3.hide..
my problem is: when I close form2 (that close the project), my form1.exe is still running. how do I code .exe to close when I close the project?
is there someone know how to fix this problem?
Thanks!
-Lisa
|
|
|
|
|
You can create an event handler for the Closing event which occurs when the user clicks the X in the top right corner but before the form is actually closed. The EventArgs for this particular event has a Cancelled property that can be set to true and from then you can implement your own behaviour. If you want to reopen the previous form you may not want to cancel the close event but just reopen the previous form and the application should continue running as there is an open form still.
Does this help?
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
|
|
|
|
|
thanks, it seems so easy to do it. but I don't have any idea to code the event handler. Can you pls show me some example codes? I just want to close the .exe when I click X to close form1 or form2 or form3..and it only shows one form at a time.
I very appreciate your help so much.
-Lisa
|
|
|
|
|
I code this code into my 3 forms..but the .exe still not close in my taskManger processes..do you know why?
here is my code:
Private Sub FormClosing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If MessageBox.Show("Are you sure to exit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
e.Cancel = False
Else
e.Cancel = True
End If
End Sub
Thanks!
-Lisa
|
|
|
|
|
Okay - Looks like you've figured out the event handler bit. In your previous post you mention that you just hide the other forms. Make sure they get closed also.
To do this you can call the Close() method on each of the hidden forms. But this will have the effect of raising the Closing event - so you would end up with multiple dialogs to the user asking "Are you sure you want to exit?".
As you are closing the whole application. You could consider Application.Exit() which will not call the Closing or Closed events on any open forms.
Does this help?
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
|
|
|
|
|
Thanks -- it makes much sense to me now..
But I don't know where I need to call the application.exit()?
so if I use the application.exit(), does that mean I don't need the event handler now?
-Lisa
|
|
|
|
|
By the looks of it you would call the Application.Exit() from within the event handler, as this code is asking the user if they are sure that they want to exit.
Your event handler might look something like this:
Private Sub FormClosing(ByVal sender As System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If MessageBox.Show("Are you sure to exit?", "Exit", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) = DialogResult.Yes Then
Application.Exit()
Else
e.Cancel = True
End If
End Sub
It will ask the user if they are sure they want to exit the application, and if they choose yes the Application will exit. IIRC no further events will be handled and definitely the Closed and Closing events of the other forms will not get raised.
Does this clear everything up?
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
|
|
|
|
|
wow..It works Love you so much! Thank you very much!
this problem drives me crazy everyday when I run the project..
It's all fixed now..I'm so happy...^_^...
I will give you a very big hug if you are here...
|
|
|
|
|
Lisana wrote:
Love you so much! Thank you very much!
I will give you a very big hug if you are here...
Wow! That's more praise than I usually get when helping out... I really appreciate it.
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
|
|
|
|
|
Some of you may have read my postings on this recently
http://www.codeproject.com/script/comments/forums.asp?msg=880420&forumid=1646&XtraIDs=1646&searchkw=environment+variable&sd=5%2F7%2F2004&ed=8%2F5%2F2004#xx880420xx
However, I am still having issues.
If I start my windows application and then define some environment variables, then propagate them up to the system level - then I start a commans prompt window for example and use the SET command I can see the new/changed environment variables.
My applciation then loads an unmanaged DLL (written in C which performs a JNI function). The first function call to this attempts to read environment variables that I have set in the my .NET windows application but they do not seem to be inherited.
What appears to happen is that the unmanaged DLL (even though I load it dynamically only just before using its functions) inherits the environment that was available when the .NET windows application first started.
So if I shut down my applicaiton, manually declare environment variables in Windows, run my .NET app again and this time skip over the code that sets the environment variables, the unmanaged DLL functions are able to read the environment variables no problem!
Does this make sense?
I also found reference to this problem here in some archived usenet stuff, but no solution (
http://usenet.best-buy-online.com/Dir8/File985.html
I am not a C programmer and the unmanaged DLL has been written by someone else. Could there be anything in the compilation of the DLL that affects how the environment is inherited. I believe the DLL is written using Visual Studio C++ v6
Unfortunately I HAVE to set the variables in the .NET windows application. Can anyone think of a way around this or does anyone know of an alternative solution?
thanks
|
|
|
|
|
This shouldn't be a problem if your machine is patched up with current service packs.
What does the code look like where you set the environment variables for YOUR application, not the system. A .DLL loaded by your app will not inherit the environment from anywhere. When loaded, the code from the .DLL becomes part of your app's process space and, thereby using the same copy of the enivorment used by your application. You could call it inheriting, but that's not what is really happening.
If your app, or your .DLL loaded by your app, spawns a child process, this child process will inherit the environment from your app.
We need to see the code your using!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dave, thanks for your help so far.
First of all I'm using Windows 2000 and have SP4 installed.
The code that I use for setting the environment variables is as per my previous posting...
http://www.codeproject.com/script/comments/forums.asp?msg=880420&forumid=1646&XtraIDs=1646&searchkw=environment+variable&sd=5%2F7%2F2004&ed=8%2F5%2F2004#xx880420xx
This sets the environment variables for the windows system AND then for my application via a call to SetEnvronmentVariableA in kernel32.dll
AFTER all the environment variables have been set I can open a command prompt and see them, or I can use Debug.Print Environ("my_var") in the command window of visual studio and see that they are set
Also AFTER the environment variables are set I then load my unmanaged DLL dynamically using the LoadLibrary function of kernel32.dll
I have scoured the net and seen other people state that the environment that the dynamically loaded DLL inherits will be that set when the .NET application is first loaded, but have not seen any solutions to this if this is true.
However, as mentioned before I have an older version of the unmanaged DLL that seems to pick up the environment variables fine even when only using SetEnvironmentVariableA and not propagating them to the Windows system. This is why I was starting to think there may be something in the way the DLL is compiled. Problem is I can't stick with the older version of the DLL and some new stuff has been added to the current version which I am reliant upon.
|
|
|
|
|
I seem to remember that there was a problem in Windows 2000 with Environment Variables, but I can't remember what. It was fixed in Service Pack 3, I think. That could be why it worked for a previous version and not now. I has nothing to do with how your .DLL was compiled.
The changes you're making in the environment are taking effect in everything else, but I don't think they are taking effect in your application before you load your .DLL. To test this, you'll have to make your app make the changes in the System Environment and broadcast the WM_SETTINGCHANGE message. Make sure the changes took by launching a command prompt and dumping the environment strings with the SET command. The next thing your app has to do is dump all of it's environment settings with the System.Environment class:
Imports System
Imports System.Collections
.
.
.
Dim envVars As IDictionary = Environment.GetEnvironmentVariables()
Dim de As DictionaryEntry
For Each de In envVars
Debug.WriteLine(de.Key & " = " & de.Value)
Next
If these two lists match, you're in business. If not, it means that your application isn't picking up the system variables. A work around would have to be devised...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Sorry Dave I think you missed a few things )
1) I'm already using Windows 200 SP4, this has not changed but the DLL has
2) As per the code in my previous postings I am broadcasting the WM_SETTINGCHANGE message and it is working
3) After my app has set the variables I have checked they are set correctly from within visual studio as you have suggested AND from a command prompt (all looks OK)
...but the function called in the unmanaged DLL can't see the variables.
Is it true that the DLL only inherits the environment that is set for the application when it first loads and therefore any env var changes are not seen? Have you heard this before?
anyone else want to chip in?
|
|
|
|
|
madfiddlerchris wrote:
1) I'm already using Windows 200 SP4, this has not changed but the DLL has
2) As per the code in my previous postings I am broadcasting the WM_SETTINGCHANGE message and it is working
All part of the troubleshooting process...I had to ask.
madfiddlerchris wrote:
3) After my app has set the variables I have checked they are set correctly from within visual studio as you have suggested AND from a command prompt (all looks OK)
Now what about inside your own app? Does your own app respond to the WM_SETTINGCHANGE message?
madfiddlerchris wrote:
Is it true that the DLL only inherits the environment that is set for the application when it first loads and therefore any env var changes are not seen? Have you heard this before?
Yes, it's true. This is because the .DLL is loaded into the same process space as your application, and therefore into the same execution environment, security context, environment variables, ... everything. It is not a seperate app, but an extension of your application just like any other part of your app.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
hi,
I m new to vB.Neti have designed an aplication that scrolls an image, as a background of panel control, accross tha desktop but while scrolling it flickers how can u remove that flickeri.e. it dose not scrolls smooth . I have heard something like double buffer but i havent find some thing useful or an example in VB.Net
Please give me some code example how to enabel double buffering for PAnel Control
|
|
|
|
|
You need to create an inherited panel class so you can set the graphics ControlStyle bits like you can with a form. Here is a snippet:
Public Class GraphicsPanel
Inherits System.Windows.Forms.Panel
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
Me.SetStyle(ControlStyles.AllPaintingInWmPaint _
Or ControlStyles.DoubleBuffer _
Or ControlStyles.UserPaint, True)
Me.UpdateStyles()
End Sub
You need to set all three bits for double buffering to work.
Gary S
|
|
|
|
|
I'm getting an "Unspecified Error" message when I try to run the following code using .NET's System.DirectoryServices to enumerate a list of local groups on a machine. The error pops up right at the point of enumeration of the groups. This only happens when I run this program on an NT machine. It works fine on Windows 2000 and XP. If anyone knows a workaround for this on NT, please let me know. Thanks. Anyway, the code that produces this error is as follows:
Public Sub FindAllGroups()
Try
Dim obComputer As DirectoryEntry
Dim obGroups As DirectoryEntries
Dim strComputer As String = Environ("ComputerName")
Dim itmGroup As ListViewItem
Dim obGroup As DirectoryEntry
obComputer = New DirectoryEntry("WinNT://" + strComputer + ",computer")
obComputer.Children.SchemaFilter.Add("group")
obGroups = obComputer.Children()
'This is where the error starts at
For Each obGroup In obGroups
MsgBox(obGroup.Name) 'display group name
Next
Catch ex As Exception
'Error jumps right to this point
MsgBox(ex.Message) ' spits out unspecified error
End Try
End Sub
|
|
|
|
|
Nevermind,
I figured it out. I needed to install DSClient on the computer in order to use all the ADSI stuff.
|
|
|
|
|