Beautified, Added Sudo Menu Input Password and Kill Capture either on Sudo for System Level, or User Level
This commit is contained in:
parent
b280bc80b1
commit
0131c7da53
142
main.frm
142
main.frm
|
@ -15837,12 +15837,6 @@ object Form1: TForm1
|
|||
object PopupMenu5: TPopupMenu
|
||||
Left = 208
|
||||
Top = 208
|
||||
object MenuItem35: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem39: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem40: TMenuItem
|
||||
Caption = 'System Camera'
|
||||
Bitmap.Data = {
|
||||
|
@ -17298,10 +17292,7 @@ object Form1: TForm1
|
|||
OnClick = MenuItem33Click
|
||||
end
|
||||
end
|
||||
object MenuItem43: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem30: TMenuItem
|
||||
object MenuItem23: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem44: TMenuItem
|
||||
|
@ -17428,9 +17419,6 @@ object Form1: TForm1
|
|||
}
|
||||
OnClick = MenuItem9Click
|
||||
end
|
||||
object MenuItem23: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem45: TMenuItem
|
||||
Caption = 'Exit'
|
||||
Bitmap.Data = {
|
||||
|
@ -31258,6 +31246,7 @@ object Form1: TForm1
|
|||
55C95D5D5DA76D6D6D707272722A6868680A666766036D6C6D006D6E6D006E6E
|
||||
6E00000000000000000000000000000000000000000000000000
|
||||
}
|
||||
Visible = False
|
||||
OnClick = MenuItem13Click
|
||||
end
|
||||
object MenuItem37: TMenuItem
|
||||
|
@ -31397,10 +31386,137 @@ object Form1: TForm1
|
|||
Visible = False
|
||||
OnClick = MenuItem37Click
|
||||
end
|
||||
object MenuItem38: TMenuItem
|
||||
Caption = 'Input Capture Password (Sudo)'
|
||||
Bitmap.Data = {
|
||||
B60E0000424DB60E0000000000003600000028000000200000001D0000000100
|
||||
200000000000800E000064000000640000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF00FFFFFF02FFFFFF09FFFF
|
||||
FF12FFFFFF16FFFFFF16FFFFFF16FFFFFF16FFFFFF16FFFFFF16FFFFFF16FFFF
|
||||
FF16FFFFFF16FFFFFF16FFFFFF16FFFFFF16FFFFFF15FFFFFF12FFFFFF08FFFF
|
||||
FF01000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF01FFFFFF0FFFFFFF3EFFFF
|
||||
FF6AFFFFFF75FFFFFF76FFFFFF76FFFFFF76FFFFFF76FFFFFF76FFFFFF76FFFF
|
||||
FF76FFFFFF76FFFFFF76FFFFFF76FFFFFF76FFFFFF75FFFFFF67FFFFFF39FFFF
|
||||
FF0DFFFFFF000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF02FEFEFE2CEDEDEDCCF1F1
|
||||
F1E8F1F1F1EAF1F1F1EAF1F1F1EAF1F1F1EAF1F1F1EAF1F1F1EAF1F1F1EAF1F1
|
||||
F1EAF1F1F1EAF1F1F1EAF1F1F1EAF1F1F1EAF2F2F2EAF9F9F9E6FFFFFF84FFFF
|
||||
FF22FFFFFF010000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F6F6F656DBDBDBBAF6F6
|
||||
F680F5F5F580F5F5F580F5F5F580F5F5F580F5F5F580F5F5F580F5F5F580F5F5
|
||||
F580F5F5F580F5F5F580F5F5F580F5F5F580F7F7F781E5E5E5D6FBFBFBAAFFFF
|
||||
FF2FFFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F3F3F35AB0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCFAFAFAACFFFF
|
||||
FF30FFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF03F2F2F257B0B0B0B9F1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF1F1
|
||||
F17CF1F1F17CF1F1F17CF1F1F17CF1F1F17CF2F2F27CE0E0E0CCF9F9F9A7FFFF
|
||||
FF2DFFFFFF020000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF02F2F2F240A9A9A9C9D9D9
|
||||
D98AEFEFEF7DDBDBDB87E6E6E689E5E5E58AE5E5E58AE5E5E58AE5E5E58AE5E5
|
||||
E58AE5E5E58AE7E7E788E5E5E581E8E8E87FCBCBCB94E8E8E8D9FBFBFB80FFFF
|
||||
FF1CFFFFFF010000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFFFF00FFFFFF0AA2A2A26EB1B1
|
||||
B1C2E4E4E483E7E7E7C0CFCFCFD0B7B7B7AEB0B0B0A2AFAFAFA1AFAFAFA1AFAF
|
||||
AFA1B0B0B0A2A6A6A6BEC3C3C3A2F3F3F38EE7E7E7DDF7F7F798FFFFFF2DFFFF
|
||||
FF08FFFFFF000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003F3F3F00FFFFFF01FFFFFF16C0C0
|
||||
C0BFE2E2E286E1E1E1DBFFFFFF9CFFFFFF2FFFFFFF0CFFFFFF0BFFFFFF0BFFFF
|
||||
FF0BFFFFFF0EF1F1F160A6A6A6BBF8F8F898E1E1E1E1FFFFFF5DFFFFFF0EFFFF
|
||||
FF002D2D2D000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF14BFBF
|
||||
BFBEE2E2E286DBDBDBDBFFFFFF98FFFFFF26FFFFFF01ACACAC00ACACAC00ACAC
|
||||
AC00FFFFFF03F0F0F059A5A5A5BBF9F9F995E1E1E1E2FFFFFF5DFFFFFF0DF5F5
|
||||
F500000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF14BFBF
|
||||
BFBEE2E2E286DBDBDBDBFFFFFF98FFFFFF26FFFFFF01FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF03F0F0F059A5A5A5BBF9F9F993DEDEDEE4FFFFFF5EFFFFFF0EF5F5
|
||||
F500000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF14BFBF
|
||||
BFBEE1E1E186DBDBDBDBFFFFFF99FFFFFF27FFFFFF01FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF03F0F0F05AA5A5A5BBF9F9F992E2E2E2E2FFFFFF5AFFFFFF0CF3F3
|
||||
F300000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF12BFBF
|
||||
BFBCE1E1E186DBDBDBDAFFFFFFA1FFFFFF2EFFFFFF02FFFFFF00FFFFFF002B2B
|
||||
2B00FFFFFF06F1F1F161ADADADB8FAFAFA98EAEAEADAFFFFFF4FFFFFFF098E8E
|
||||
8E00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00DCDCDC00FFFFFF0CCBCB
|
||||
CBA9D7D7D78CE3E3E3CEFDFDFDC0FFFFFF4DFFFFFF0DFFFFFF01FFFFFF00FFFF
|
||||
FF02FFFFFF15F2F2F28AD1D1D1A3FBFBFBA8F3F3F3C5FFFFFF3BFFFFFF058B8B
|
||||
8B00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FAFAFA00FFFFFF05E0E0
|
||||
E07ACFCFCF9CF6F6F6A7F7F7F7EAFFFFFF92FFFFFF42FFFFFF1AFFFFFF12FFFF
|
||||
FF1FFFFFFF52F9F9F9CAF7F7F783FCFCFCC9FDFDFD96FFFFFF24FFFFFF028B8B
|
||||
8B00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF01F7F7
|
||||
F726A7A7A7C5E6E6E686F6F6F6CEFAFAFAE5FFFFFFA8FFFFFF79FFFFFF6CFDFD
|
||||
FD87F7F7F7D2FCFCFCA2F4F4F48CFDFDFDD9FFFFFF55FFFFFF0EFFFFFF008B8B
|
||||
8B00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF00FFFF
|
||||
FF06A5A5A56AA6A6A6BCEAEAEA86F7F7F7B9F4F4F4E8F5F5F5EAF2F2F2E7E8E8
|
||||
E8DAFAFAFA9BDCDCDC8AF9F9F9CDFDFDFD82FFFFFF21FFFFFF03BCBCBC008B8B
|
||||
8B00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF0A94949476959595C6D6D6D68FEEEEEE83F8F8F88BF7F7F787E2E2
|
||||
E285A9A9A9A9CFCFCFD5FCFCFC83FFFFFF26FFFFFF06FFFFFF00FFFFFF008B8B
|
||||
8B00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF01FFFFFF08BABABA3E878787A6979797CAAAAAAACBC2C2C2C8D4D4
|
||||
D4C4DFDFDFA5FCFCFC4EFFFFFF1AFFFFFF05FFFFFF00FFFFFF00FFFFFF008B8B
|
||||
8B00000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000AFAFAF00FCFCFC00D5D5D500D6D6
|
||||
D600D6D6D600FFFFFF00FFFFFF02FFFFFF0AFFFFFF17FFFFFF27FFFFFF29FFFF
|
||||
FF20FFFFFF14FFFFFF08FFFFFF01FFFFFF00D6D6D600D6D6D600D6D6D6007474
|
||||
7400000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000006A6A6A0099999900000000000000
|
||||
0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000
|
||||
}
|
||||
Visible = False
|
||||
OnClick = MenuItem38Click
|
||||
end
|
||||
end
|
||||
object UniqueInstance1: TUniqueInstance
|
||||
Enabled = True
|
||||
Identifier = 'CameraControl'
|
||||
UpdateInterval = 500
|
||||
OnOtherInstance = UniqueInstance1OtherInstance
|
||||
Left = 832
|
||||
Top = 664
|
||||
end
|
||||
|
|
3
main.lrj
3
main.lrj
|
@ -31,5 +31,6 @@
|
|||
{"hash":4691652,"name":"tform1.menuitem44.caption","sourcebytes":[65,98,111,117,116],"value":"About"},
|
||||
{"hash":315140,"name":"tform1.menuitem45.caption","sourcebytes":[69,120,105,116],"value":"Exit"},
|
||||
{"hash":185423705,"name":"tform1.menuitem13.caption","sourcebytes":[75,105,108,108,32,67,97,112,116,117,114,105,110,103,32,40,85,115,101,114,32,77,111,100,101,41],"value":"Kill Capturing (User Mode)"},
|
||||
{"hash":200734201,"name":"tform1.menuitem37.caption","sourcebytes":[75,105,108,108,32,67,97,112,116,117,114,105,110,103,32,40,83,117,100,111,41],"value":"Kill Capturing (Sudo)"}
|
||||
{"hash":200734201,"name":"tform1.menuitem37.caption","sourcebytes":[75,105,108,108,32,67,97,112,116,117,114,105,110,103,32,40,83,117,100,111,41],"value":"Kill Capturing (Sudo)"},
|
||||
{"hash":49173897,"name":"tform1.menuitem38.caption","sourcebytes":[73,110,112,117,116,32,67,97,112,116,117,114,101,32,80,97,115,115,119,111,114,100,32,40,83,117,100,111,41],"value":"Input Capture Password (Sudo)"}
|
||||
]}
|
||||
|
|
204
main.pas
204
main.pas
|
@ -49,7 +49,7 @@ type
|
|||
MenuItem20 : TMenuItem;
|
||||
MenuItem21 : TMenuItem;
|
||||
MenuItem22 : TMenuItem;
|
||||
MenuItem23 : TMenuItem;
|
||||
MenuItem23: TMenuItem;
|
||||
MenuItem24 : TMenuItem;
|
||||
MenuItem25 : TMenuItem;
|
||||
MenuItem26 : TMenuItem;
|
||||
|
@ -57,20 +57,17 @@ type
|
|||
MenuItem28 : TMenuItem;
|
||||
MenuItem29 : TMenuItem;
|
||||
MenuItem3 : TMenuItem;
|
||||
MenuItem30 : TMenuItem;
|
||||
MenuItem31 : TMenuItem;
|
||||
MenuItem32 : TMenuItem;
|
||||
MenuItem33 : TMenuItem;
|
||||
MenuItem34 : TMenuItem;
|
||||
MenuItem35 : TMenuItem;
|
||||
MenuItem36 : TMenuItem;
|
||||
MenuItem37 : TMenuItem;
|
||||
MenuItem39 : TMenuItem;
|
||||
MenuItem38: TMenuItem;
|
||||
MenuItem4 : TMenuItem;
|
||||
MenuItem40 : TMenuItem;
|
||||
MenuItem41 : TMenuItem;
|
||||
MenuItem42 : TMenuItem;
|
||||
MenuItem43 : TMenuItem;
|
||||
MenuItem44 : TMenuItem;
|
||||
MenuItem45 : TMenuItem;
|
||||
MenuItem5 : TMenuItem;
|
||||
|
@ -115,6 +112,7 @@ type
|
|||
procedure MenuItem34Click(Sender: TObject);
|
||||
procedure MenuItem36Click(Sender: TObject);
|
||||
procedure MenuItem37Click(Sender: TObject);
|
||||
procedure MenuItem38Click(Sender: TObject);
|
||||
procedure MenuItem3Click(Sender: TObject);
|
||||
procedure MenuItem4Click(Sender: TObject);
|
||||
procedure MenuItem6Click(Sender: TObject);
|
||||
|
@ -129,6 +127,8 @@ type
|
|||
procedure TrayIcon3Click(Sender: TObject);
|
||||
procedure TrayIcon4Click(Sender: TObject);
|
||||
procedure TrayIcon5Click(Sender: TObject);
|
||||
procedure UniqueInstance1OtherInstance(Sender: TObject;
|
||||
ParamCount: Integer; const Parameters: array of String);
|
||||
procedure VpClock1SecondChange(Sender: TObject);
|
||||
|
||||
private
|
||||
|
@ -221,14 +221,14 @@ end;
|
|||
procedure PopUpWebcamOn;
|
||||
begin
|
||||
Form1.PopupNotifier2.Text := 'Camera is On' + LineEnding + 'Video Device: /dev/video' + IntToStr(CountNumber)+ '/';
|
||||
Form1.PopupNotifier2.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 550);
|
||||
Form1.PopupNotifier2.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 550);
|
||||
Form1.TrayIcon5.Hint := 'Camera Status' + LineEnding + 'Camera is On';
|
||||
end;
|
||||
|
||||
procedure PopUpWebcamOff;
|
||||
begin
|
||||
Form1.PopupNotifier1.Text := 'No Camera' + LineEnding + 'Video Device: /dev/video' + IntToStr(CountNumber)+ '/';
|
||||
Form1.PopupNotifier1.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 550);
|
||||
Form1.PopupNotifier1.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 550);
|
||||
Form1.TrayIcon5.Hint := 'Camera Status' + LineEnding + 'Camera is Disabled';
|
||||
end;
|
||||
|
||||
|
@ -236,21 +236,21 @@ procedure PopUpWebcamCaptures;
|
|||
begin
|
||||
Form1.PopupNotifier7.Text := 'Camera is Capturing' + LineEnding + 'Video Device: /dev/video'
|
||||
+ IntToStr(CountNumber)+ '/' + LineEnding + 'Application Name: ' + CaptureAppName;
|
||||
Form1.PopupNotifier7.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 550);
|
||||
Form1.PopupNotifier7.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 550);
|
||||
Form1.TrayIcon5.Hint := 'Camera Status' + LineEnding + 'Camera is Capturing' + LineEnding + CaptureAppName;
|
||||
end;
|
||||
|
||||
procedure PopUpWebcamHacked;
|
||||
begin
|
||||
Form1.PopupNotifier8.Text := 'Camera is Hacked' + LineEnding + 'Video Device: /dev/video' + IntToStr(CountNumber)+ '/' + LineEnding + 'Check Logs';
|
||||
Form1.PopupNotifier8.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 550);
|
||||
Form1.PopupNotifier8.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 550);
|
||||
Form1.TrayIcon5.Hint := 'Camera Status' + LineEnding + 'Camera is Hacked' + LineEnding + 'Check Logs';
|
||||
end;
|
||||
|
||||
procedure PopUpMicHacked;
|
||||
begin
|
||||
Form1.PopupNotifier9.Text := 'Microphone is Hacked' + LineEnding + 'Alsa Driver Changed Status';
|
||||
Form1.PopupNotifier9.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 375);
|
||||
Form1.PopupNotifier9.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 375);
|
||||
Form1.TrayIcon5.Hint := 'Microphone Status' + LineEnding + 'Microphone is Hacked' + LineEnding + 'Check Logs';
|
||||
end;
|
||||
|
||||
|
@ -267,7 +267,7 @@ end;
|
|||
procedure PopUpWebcamNotCapturing;
|
||||
begin
|
||||
Form1.PopupNotifier6.Text := 'Camera is not Capturing' + LineEnding + 'Video Device: /dev/video' + IntToStr(CountNumber)+ '/';
|
||||
Form1.PopupNotifier6.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 550);
|
||||
Form1.PopupNotifier6.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 550);
|
||||
Form1.TrayIcon5.Hint := 'Camera On' + LineEnding + 'Camera is Enabled, but is not Capturing';
|
||||
end;
|
||||
|
||||
|
@ -279,14 +279,14 @@ end;
|
|||
procedure PopUpMicOn;
|
||||
begin
|
||||
Form1.PopupNotifier3.Text := 'Microphone is Unmuted' + LineEnding + 'Alsa Driver Status: cap';
|
||||
Form1.PopupNotifier3.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 375);
|
||||
Form1.PopupNotifier3.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 375);
|
||||
Form1.TrayIcon2.Hint := 'Microphone Status & Menu' + LineEnding + 'Microphone is Unmuted';
|
||||
end;
|
||||
|
||||
procedure PopUpMicOff;
|
||||
begin
|
||||
Form1.PopupNotifier4.Text := 'Microphone is Muted' + LineEnding + 'Alsa Driver Status: nocap';
|
||||
Form1.PopupNotifier4.ShowAtPos(NewWidth - 100 , NewHeight div 2 - 375);
|
||||
Form1.PopupNotifier4.ShowAtPos(NewWidth - 200 , NewHeight div 2 - 375);
|
||||
Form1.TrayIcon2.Hint := 'Microphone Status & Menu' + LineEnding + 'Microphone is Muted';
|
||||
end;
|
||||
|
||||
|
@ -351,7 +351,8 @@ begin
|
|||
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
|
||||
AProcess.Execute;
|
||||
AStringList.LoadFromStream(AProcess.Output);
|
||||
ShowMessage('Pids List of ' + CaptureAppName + ':' + sLineBreak + AStringList.Text);
|
||||
ShowMessage( 'Pids List of ' + CaptureAppName + ':' + sLineBreak +
|
||||
'---------------------------' + sLineBreak + AStringList.Text);
|
||||
|
||||
j := 0;
|
||||
while j <= AStringList.Count - 1 do
|
||||
|
@ -566,40 +567,84 @@ begin
|
|||
end
|
||||
else
|
||||
begin
|
||||
Form1.MenuItem13.Visible := true;
|
||||
if Length(Password2) > 0 then
|
||||
Form1.MenuItem37.Visible := true;
|
||||
if HasPassword = false then
|
||||
begin
|
||||
Form1.MenuItem13.Visible := true;
|
||||
Form1.MenuItem37.Visible := false;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Form1.MenuItem13.Visible := false;
|
||||
Form1.MenuItem37.Visible := true;
|
||||
end;
|
||||
|
||||
//if Length(Password2) > 0 then
|
||||
// Form1.MenuItem37.Visible := true;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure NoCapturePassword;
|
||||
var
|
||||
MessageStr : string;
|
||||
BoxStyle : integer;
|
||||
Reply : integer;
|
||||
|
||||
begin
|
||||
BoxStyle := MB_ICONEXCLAMATION + MB_OK;
|
||||
Reply := Application.MessageBox ( 'The Application will catch and will' + sLineBreak +
|
||||
'be able to kill, only Users Events.' + sLineBreak + ' ' + sLineBreak +
|
||||
'For Better Protection, please provide' + sLineBreak +
|
||||
'the sudo password, on the Menu at' + sLineBreak +
|
||||
'Camera''s Indicator Menu', 'Camera Control for Linux', BoxStyle);
|
||||
Form1.MenuItem38.Visible := true;
|
||||
end;
|
||||
|
||||
procedure PasswordInputQuery;
|
||||
var
|
||||
UserString : string;
|
||||
|
||||
begin
|
||||
if InputQuery('Camera Control for Linux', 'For better functioning, please provide your sudo password', TRUE, UserString) then
|
||||
begin
|
||||
HasPassword := true;
|
||||
Password := UserString;
|
||||
end
|
||||
else
|
||||
begin
|
||||
//NoCapturePassword;
|
||||
WantsPassword := false;
|
||||
Form1.MenuItem38.Visible := true;
|
||||
HasPassword := false;
|
||||
Password := '';
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure GetCapturePassword;
|
||||
begin
|
||||
if (HasPassword = true) and (WantsPassword = true) then
|
||||
if (HasPassword = false) and (WantsPassword = true) then
|
||||
begin
|
||||
PasswordInputQuery;
|
||||
S := FpSystem(Concat('echo ', Password, ' | sudo -S sh -c "ls /root"'));
|
||||
if S <> 0 then
|
||||
AskPassword
|
||||
begin
|
||||
WantsPassword := false;
|
||||
Form1.MenuItem38.Visible := true;
|
||||
HasPassword := false;
|
||||
Password2 := '';
|
||||
NoCapturePassword;
|
||||
end
|
||||
else
|
||||
Password2 := Password;
|
||||
|
||||
WantsPassword := true;
|
||||
end
|
||||
else
|
||||
if (HasPassword = false) and (WantsPassword = true) then
|
||||
begin
|
||||
AskPassword;
|
||||
S := FpSystem(Concat('echo ', Password, ' | sudo -S sh -c "ls /root"'));
|
||||
if S <> 0 then
|
||||
begin
|
||||
ShowMessage('The Application will cath and will be able to kill, only Users Events.' + sLineBreak + 'For Better Protection, please Exit, re-run this application and provide sudo password');
|
||||
WantsPassword := false;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Password2 := Password;
|
||||
WantsPassword := false;
|
||||
end;
|
||||
end;
|
||||
begin
|
||||
Password2 := Password;
|
||||
WantsPassword := false;
|
||||
Form1.MenuItem38.Visible := false;
|
||||
HasPassword := true;
|
||||
ShowMessage( 'Password is Correct' + sLineBreak +
|
||||
'Now Kill Capturing (Sudo) is available' + sLineBreak +
|
||||
'on the Camera Indicator Menu');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
|
@ -632,6 +677,7 @@ begin
|
|||
MenuItem37.Visible := false;
|
||||
Password2 := '';
|
||||
WantsPassword := true;
|
||||
MenuItem38.Visible := false;
|
||||
|
||||
LogsStringList.Clear;
|
||||
//Logs.Form3.StringGrid1.Clean;
|
||||
|
@ -656,7 +702,7 @@ begin
|
|||
if CamStatus = 0 then // -> Camera is off
|
||||
begin
|
||||
//ImageListCam.GetIcon(1, TrayIcon1.Icon);
|
||||
PopUpWebcamOff;
|
||||
//PopUpWebcamOff;
|
||||
ImageListCam1.GetIcon(0, TrayIcon5.Icon);
|
||||
CameraIcon := 0;
|
||||
//ShowMessage('Camera is Off or No Camera exists');
|
||||
|
@ -668,7 +714,7 @@ begin
|
|||
if CamStatus = 1 then // -> Camera is On
|
||||
begin
|
||||
//ImageListCam.GetIcon(0, TrayIcon1.Icon);
|
||||
PopUpWebcamOn;
|
||||
//PopUpWebcamOn;
|
||||
ImageListCam1.GetIcon(2, TrayIcon5.Icon);
|
||||
CameraIcon := 2;
|
||||
//ShowMessage('Camera is On');
|
||||
|
@ -680,8 +726,8 @@ begin
|
|||
if CamStatus = 2 then // -> Camera is Capturing
|
||||
begin
|
||||
ActionTime := now;
|
||||
PopUpWebcamCaptures;
|
||||
PopUpWebcamCaptStatus := true;
|
||||
//PopUpWebcamCaptures;
|
||||
//PopUpWebcamCaptStatus := true;
|
||||
ImageListCam1.GetIcon(1, TrayIcon5.Icon);
|
||||
CameraIcon := 1;
|
||||
VideoCapt := true;
|
||||
|
@ -698,7 +744,7 @@ begin
|
|||
MicStatus := true;
|
||||
MicClicked := false;
|
||||
MicClicksCounter:= 0;
|
||||
PopUpMicOn;
|
||||
//PopUpMicOn;
|
||||
MicIcon := 0;
|
||||
end;
|
||||
|
||||
|
@ -708,7 +754,7 @@ begin
|
|||
MicStatus := false;
|
||||
MicClicked := false;
|
||||
MicClicksCounter:= 0;
|
||||
PopUpMicOff;
|
||||
//PopUpMicOff;
|
||||
MicIcon := 1;
|
||||
PopUpMenu6.Close;
|
||||
end;
|
||||
|
@ -779,6 +825,8 @@ procedure AskPassword;
|
|||
begin
|
||||
Password := PasswordBox('Authorization Needed / User Input','Please Enter Password');
|
||||
HasPassword := True;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
procedure TForm1.MenuItem10Click(Sender: TObject); // Exit
|
||||
|
@ -820,6 +868,57 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure MenuPasswordInputQuery;
|
||||
var
|
||||
UserString2 : string;
|
||||
|
||||
begin
|
||||
if InputQuery('Camera Control for Linux', 'For better functioning, please provide your sudo password', TRUE, UserString2) then
|
||||
begin
|
||||
HasPassword := true;
|
||||
Password := UserString2;
|
||||
end
|
||||
else
|
||||
begin
|
||||
//NoCapturePassword;
|
||||
Form1.MenuItem38.Visible := true;
|
||||
Password := '';
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure MenuGetCapturePassword;
|
||||
begin
|
||||
if (HasPassword = false) then
|
||||
begin
|
||||
MenuPasswordInputQuery;
|
||||
S := FpSystem(Concat('echo ', Password, ' | sudo -S sh -c "ls /root"'));
|
||||
if S <> 0 then
|
||||
begin
|
||||
Form1.MenuItem38.Visible := true;
|
||||
HasPassword := false;
|
||||
Password2 := '';
|
||||
NoCapturePassword;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Password2 := Password;
|
||||
Form1.MenuItem38.Visible := false;
|
||||
HasPassword := true;
|
||||
ShowMessage( 'Password is Correct' + sLineBreak +
|
||||
'Now Kill Capturing (Sudo) is available' + sLineBreak +
|
||||
'on the Camera Indicator Menu');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.MenuItem38Click(Sender: TObject);
|
||||
begin
|
||||
if (HasPassword = false) then
|
||||
MenuGetCapturePassword;
|
||||
|
||||
end;
|
||||
|
||||
procedure DeleteOldLogs; // Deletes old Log files
|
||||
var
|
||||
SearchResult : TSearchRec;
|
||||
|
@ -1351,6 +1450,15 @@ begin
|
|||
PopUpMenu6.PopUp;
|
||||
end;
|
||||
|
||||
procedure TForm1.UniqueInstance1OtherInstance(Sender: TObject;
|
||||
ParamCount: Integer;
|
||||
const Parameters: array of String);
|
||||
begin
|
||||
ShowMessage ( 'Another instance of Camera Control is running' + sLineBreak +
|
||||
'Please close it and then run me again' );
|
||||
Halt(0);
|
||||
end;
|
||||
|
||||
procedure CheckEvents; // Check Statuses and External Events Notifications and Logs
|
||||
var
|
||||
HackedTime : TDateTime;
|
||||
|
@ -1381,6 +1489,7 @@ begin
|
|||
+ RightStr(DateTimeToStr(ActionTime), 8), 'Camera is Off', IntToStr(VideoDevicesNumber)]);
|
||||
AppendLogs;
|
||||
Inc(GridLine);
|
||||
PopUpWebcamOff;
|
||||
end;
|
||||
|
||||
if CamStatus = 1 then
|
||||
|
@ -1390,6 +1499,7 @@ begin
|
|||
+ RightStr(DateTimeToStr(ActionTime), 8), 'Camera is On', IntToStr(VideoDevicesNumber)]);
|
||||
AppendLogs;
|
||||
Inc(GridLine);
|
||||
PopUpWebcamOn;
|
||||
end;
|
||||
|
||||
if CamStatus = 2 then
|
||||
|
@ -1399,6 +1509,8 @@ begin
|
|||
+ RightStr(DateTimeToStr(ActionTime), 8), 'Camera is Captuting, by ' + CaptureAppName, IntToStr(VideoDevicesNumber)]);
|
||||
AppendLogs;
|
||||
Inc(GridLine);
|
||||
PopUpWebcamCaptures;
|
||||
PopUpWebcamCaptStatus := true;
|
||||
end;
|
||||
|
||||
If MicStatus = true then
|
||||
|
@ -1408,6 +1520,7 @@ begin
|
|||
+ RightStr(DateTimeToStr(ActionTime), 8), 'Microphone is Unmuted', IntToStr(VideoDevicesNumber)]);
|
||||
AppendLogs;
|
||||
Inc(GridLine);
|
||||
PopUpMicOn;
|
||||
end;
|
||||
|
||||
If MicStatus = false then
|
||||
|
@ -1417,6 +1530,7 @@ begin
|
|||
+ RightStr(DateTimeToStr(ActionTime), 8), 'Microphone is Muted', IntToStr(VideoDevicesNumber)]);
|
||||
AppendLogs;
|
||||
Inc(GridLine);
|
||||
PopUpMicOff;
|
||||
end;
|
||||
|
||||
FromMain := false;
|
||||
|
|
Loading…
Reference in New Issue