|
hi all,
i want to block/unblock application (like MSword,internet explorer etc) using visual basic 6.0.
can anybody guide me or provide some link ?
any help will be appreciated.
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
What do you mean by 'block' ? You can perhaps inject some code into another app and change how it runs using C++, but in VB6, your options are obviously limited.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
hi sir,
What do you mean by 'block' ?
sorry for my bad english
actually i want to that some user(system accout) should not be able to run(or use) some program(like MSword,paint,notepad etc or other exe).
i generate a window which show all user of system & lisst of program. Now i want to probihited some user for some program.
for this i want to block or unblock the application or program.
so how can acheive this thing using visual basic 6 ?
hope u understand my problem. Please guide me
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
Rupesh Kumar Swami wrote: so how can acheive this thing using visual basic 6 ?
You don't. This would require a technique that VB6 alone simply cannot do.
This ability already exists in the system though. It's controlled using Group Policy, no code required. Get the Windows XP or Windows Server 2003 Resource Kit and it's spelled out in there.
|
|
|
|
|
hi sir,
this is the part of my application. so i do not want to use this facility via operating system(XP,2003 etc)
can u explore bit more which technique i include to visual basic 6.0 to accomplish this task.
thanks for your response
Rupesh Kumar Swami
Software Engineer,
Integrated Solution,
Bikaner (India)
|
|
|
|
|
You can't do it in VB6, period. End of story.
This can only be done using C++, and the technique is called "DLL Injection".
|
|
|
|
|
Hi
I am developing a windows application in vb.net.In my application
i want to download all mails from my server to my local machine
like Mozilla Thunderbird.I am passing a valid username,password
email and server name to function but how can i download mails
from my server to my local machine.Please guide me to solve it.
Thanks.
Rahul
|
|
|
|
|
Typically email is retrieved from a remote email server via either POP3 or IMAP.
To test whether either of these are running you can telnet to the server on port 110 (for POP3) or 143 (for IMAP) and see if you can connect.
Codeproject has a simple POP3 implementation article Here[^] in VB.Net, but it lacks MIME support. There are C# solutions on here that do support MIME.
Otherwise there's no shortage of resources on-line:
Google VB.Net IMAP[^]
Google VB.Net POP3[^]
I'm largely language agnostic
After a while they all bug me
|
|
|
|
|
Hi All,
I have developed some methods in VBA.
I am trying to get Dynamic Help using Ctrl+F1 for these methods.
I am not getting how to develop Dymanic Help for these APIs
Can any one help me on this.
Thanks and Regards
Jahnson
|
|
|
|
|
I am trying to connect to a serial port and transmit a string to tell a device that I want to communicate. I can open port fine. The problem is when I send my string. My write does not work everytime. Do you have any suggestions on what could be causing this and how to fix.
If serialPort.IsOpen Then
serialPort.Write("SERIELL")
End If
When my device gets this it sends back as string "OK"
I tried doing a loop to write "SERIELL" until it gets the "OK" but I must be missing something. Please look at my code:
Dim readcollect(1) As Char
Do While readcollect(0).ToString <> "79"
If serialPort.IsOpen Then
serialPort.Write("SERIELL")
End If
serialPort.Read(readcollect, 0, 1).ToString()
Loop
I search for "79" because it is "O" and this worked somewhere else in my program.
serialport.read() seemed like the best way but I don't know.
Thank you.
-- modified at 12:59 Friday 17th August, 2007
|
|
|
|
|
Hi Cory,
I have several remarks:
1.
readcollect(0).ToString <> "79" is terrible code; if you mean character O
then write that, nothing else; if you want to compare characters, then do that,
nothing else. Hence: readcollect(0) <> "O"c
2.
Your serialPort.IsOpen test is inside the while loop, so if it fails, you will
never exit the loop??? Either you know the port is open, so you don't need the
test, or you don't know and you test once, outside the loop, and if the test
fails you take appropriate action (such as return an error code, or throw an
exception, but not hang your thread in an infinite loop).
3.
serialPort.Read(readcollect, 0, 1).ToString()
Read returns an int, why would you convert it to string and then ignore it?
And more importantly, why do you ignore a significant return value, that tells
you how many chars/bytes have been read ?
4.
I don't think it is wise to create a loop that transmits data without any rest;
if it fails the first time, it will very likely continue to fail. At least
include some throttling, such as a Trhead.Sleep(1000) or so (i.e. trying
once per second).
5.
If you send once, the reply will not be there immediately; it takes a while for
the characters to be transmitted, then received on the other side, interpreted,
understood, reacted upon, reply transmitted, then received and be ready for
the Read() method. In the mean time the PC is long past it's first Read
attempt. That's another reason to have a Sleep just after the Write, I would
use 100 msec for starters.
6.
a serial read may fail to return chars/bytes for one of many reasons, such as:
- cable disconnected
- nothing was sent by the other party
- dataflow has disabled communication (XOFF char, control line has wrong polarity)
- all chars received have been rejected (e.g. because they are NULL, or
equal to newline terminator, wrong baudrate/parity/bitcount, ...)
7.
a serial write may fail to transmit chars/bytes for a couple of reasons, they
are fewer as the previous list; the main reason is your side is told not to
transmit, i.e. dataflow control prevents transmission because XOFF was received
or control lines have wrong polarity (depends on SerialPort.HandShake).
My best guess is you are transmitting but you are not receiving. You can check this
by using a null modem cable (which has two female connectors) and connect
either another port of same PC, or another PC, instead of your current target;
then use a terminal emulator (such as HyperTerminal) on that port or PC.
BTW: you'd better have that Sleep included if you want to be able to read
what HyperTerminal receives...
-- modified at 13:28 Friday 17th August, 2007
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
I put the thread.sleep in and it is working better. Thank you. I still have this issue. When my device send a certain data stream (in a packet) like {006 002 051 001 057 001 043 003} 006 starts transmission 002 means start packet, 001 separates segments in the packet and 003 is the end. The first segment tells me what is being sent. How can I capture that and test it.
serialport.read()
serialport.readline()
serialport.char()
serialport.byte()
serialport.readline()
serialport.existing()
In one part of my program I use serialport.existing() but it sends me like 20 006 before I get the 002.
Any suggestions.
Thanks.
|
|
|
|
|
Yep, that is the real problem in communication: several kinds of ports don't know
about packets, SerialPort is one of those. Hence, the data you get from a Read
may not (or not always) correspond to one (or many) complete packets.
There are three ways around that:
1. by collecting all bytes yourself until you get a full packet, then dealing with
that packet, keeping the remainder; adding to it when more arrives, etc.
2. if both parties agree, by having one packet sent for every special action taken.
A special action could be pulsing one of the control lines, or sending a special
character (such as ASCII ENQ).
3. if the "protocol" has a special character (say ASCII ETX) that always
terminates the packet, AND is guaranteed not to appear inside a packet, then
you could do the equivalent of a ReadLine, i.e. let the driver keep its data
until it has seen that ETX, then return the entire packet to the Read() caller.
It seems your inbound packets end on 003, that's ASCII ETX (I assume this is hex,
for some unclear reason printed with 3 digits); so if you can prove ETX does not
occur in the middle of a packet, you could consider the third method.
Now the only support .NET offers for this is by setting SerialPort.NewLine
and then call ReadLine which works fine for text; but yours probably does
not fit, it has those 01 and 02 bytes in between text pieces (and I still
don't know how the checksum looks like).
So my advice is:
A. try setting NewLine to the char whose byte value is hex 03; don't use WriteLine
any more since that will now also emit those 03 chars; try using ReadLine and
check whether hex 01 is accepted as a true character; if it is, this is the
way to go. If it is not:
B. consider the second way (the one with ENQ or handshake toggle).
Your description somewhat fits this: often on an ENQ the reply starts with ACK,
which is hex 06. You could ask for data, wait a while (say 200 msec) then
do a "read all available" (which is ReadExisting for text, or a little Read loop
for binary data).
C. if that fails to, prepare for the most clumsy one, with software repacketing.
Whatever the approach is, you must accomodate for transmission errors, i.e.
a character being mutilated, or a packet being broken off (e.g. by removing/inserting
the cable or starting/stopping the other side); this typically means if you have
some integrity check (like a fixed format, your 03 at the end; and/or a checksum),
and it tells you it does not pass, then you must "resynchronize", i.e. be prepared
for more junk of arbitrary length before a valid packet suddenly pops up.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
How do you get the progress bar to work in vb.net 2005?
jds1207
|
|
|
|
|
By using it properly??
What's the real question behind this? What kind of problem are you having?
|
|
|
|
|
|
I am trying to index with this regex but it does not pick text that's stored in a HTML tag.
Example: Johnson <b>Peter</b> Smith for the keywords "John" and "Peter" returns only "John"
\\b("+keyword+"'?s?)\\b|(^"+keyword+"'?s?)\\b|\\b("+keyword+"'?s?$)
So how do I go about making the regex pick-up Peter, which is in a HTML tag. can this be done by regex, or some other process? :S
Thanks, Anthony, Canada.
|
|
|
|
|
I already replied to this in your other thread.
---
single minded; short sighted; long gone;
|
|
|
|
|
I have a list of database files that I want to open and have access to the data. The original files are stored in .dbf as OEM data, and are used by a Visual Objects 2.0 program.
Right now I open the files with Excel and save them as dbaseIV files to use them.
Is there an easyer way to open / convert these files to use with my VB /(MSAccess back end) database?
-- modified at 10:24 Friday 17th August, 2007
|
|
|
|
|
|
Thanks for the quick reply,
I have looked at that and it works great on a per file bases.
I am looking at doing about 700 small files at any given time and combining them into one large one to do queries and reporting.
Do you know of a mass convert utility? or have any coding help you can extend?
Thanks
|
|
|
|
|
suppose sql server is installed in a network server(or a network attached computer running XP)
and another computer wish to connect to that server through a vb application, what is the connection string
that we need to provide.
Or does it have a different approach????
raamay
|
|
|
|
|
|
hello,
I'm programming app to change the system time, but everytime I run this it only resets the time to "31/12/2007, 00:00"
can anyone take a look at my code and tell me where's my mistake?
Imports System.Runtime.InteropServices<br />
Public Class Form1<br />
Private Structure SYSTEMTIME<br />
Dim wYear As Integer<br />
Dim wMonth As Integer<br />
Dim wDayOfWeek As Integer<br />
Dim wDay As Integer<br />
Dim wHour As Integer<br />
Dim wMinute As Integer<br />
Dim wSecond As Integer<br />
Dim wMilliseconds As Integer<br />
End Structure<br />
<br />
Private Declare Function SetSystemTime Lib "kernel32" _<br />
(ByVal lpSystemTime As SYSTEMTIME) As Boolean<br />
<br />
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />
Dim NewTimeDate As SYSTEMTIME<br />
NewTimeDate.wYear = 2006<br />
NewTimeDate.wMonth = 10<br />
NewTimeDate.wDay = 4<br />
NewTimeDate.wHour = 5<br />
NewTimeDate.wMinute = 5<br />
NewTimeDate.wSecond = 5<br />
NewTimeDate.wMilliseconds = 5<br />
If SetSystemTime(NewTimeDate) = True Then<br />
MsgBox("Done")<br />
End If<br />
End Sub<br />
End Class
thanks.
|
|
|
|
|
Hi,
the SetSystemTime() prototype states:
BOOL SetSystemTime(const SYSTEMTIME *lpSystemTime);
which means it needs a pointer to a SYSTEMTIME structure, hence passing "ByVal"
is wrong.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|